sufia 6.0.0.rc2 → 6.0.0.rc3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +5 -5
- data/History.md +14 -0
- data/LICENSE +15 -0
- data/SUFIA_VERSION +1 -1
- data/app/assets/javascripts/sufia/batch_edit.js +1 -1
- data/app/assets/javascripts/sufia/permissions.js +8 -12
- data/app/assets/stylesheets/sufia.css.scss +1 -1
- data/app/assets/stylesheets/sufia/_multi_value_fields.css.scss +67 -0
- data/app/assets/stylesheets/sufia/_settings.scss +1 -0
- data/app/assets/stylesheets/sufia/_styles.scss +4 -0
- data/app/assets/stylesheets/sufia/_tinymce.scss +14 -0
- data/app/controllers/batch_controller.rb +11 -2
- data/app/controllers/concerns/sufia/breadcrumbs.rb +2 -3
- data/app/controllers/concerns/sufia/collections_controller_behavior.rb +0 -1
- data/app/controllers/concerns/sufia/contact_form_controller_behavior.rb +1 -2
- data/app/controllers/concerns/sufia/controller.rb +1 -7
- data/app/controllers/concerns/sufia/downloads_controller_behavior.rb +3 -8
- data/app/controllers/concerns/sufia/files_controller/local_ingest_behavior.rb +2 -3
- data/app/controllers/concerns/sufia/files_controller/upload_complete_behavior.rb +1 -2
- data/app/controllers/concerns/sufia/files_controller_behavior.rb +27 -14
- data/app/controllers/concerns/sufia/homepage_controller.rb +3 -2
- data/app/controllers/content_blocks_controller.rb +17 -1
- data/app/controllers/downloads_controller.rb +0 -1
- data/app/controllers/my/shares_controller.rb +1 -0
- data/app/controllers/single_use_links_controller.rb +0 -1
- data/app/controllers/single_use_links_viewer_controller.rb +3 -8
- data/app/forms/sufia/forms/generic_file_edit_form.rb +1 -8
- data/app/helpers/content_block_helper.rb +30 -10
- data/app/helpers/generic_file_helper.rb +4 -4
- data/app/helpers/sufia/dashboard_helper_behavior.rb +2 -2
- data/app/helpers/sufia/sufia_helper_behavior.rb +4 -4
- data/app/helpers/trophy_helper.rb +3 -3
- data/app/jobs/content_delete_event_job.rb +1 -2
- data/app/jobs/content_deposit_event_job.rb +1 -1
- data/app/jobs/content_depositor_change_event_job.rb +1 -1
- data/app/jobs/content_new_version_event_job.rb +1 -1
- data/app/jobs/content_restored_version_event_job.rb +1 -1
- data/app/jobs/content_update_event_job.rb +1 -1
- data/app/models/concerns/sufia/solr_document_behavior.rb +5 -9
- data/app/models/content_block.rb +20 -0
- data/app/models/featured_work_list.rb +4 -0
- data/app/presenters/sufia/collection_presenter.rb +14 -2
- data/app/presenters/sufia/generic_file_presenter.rb +16 -0
- data/app/presenters/sufia/version_list_presenter.rb +1 -1
- data/app/views/batch/_metadata.html.erb +4 -4
- data/app/views/batch_edits/edit.html.erb +1 -1
- data/app/views/collections/_action_menu.html.erb +4 -5
- data/app/views/collections/_show_descriptions.html.erb +1 -5
- data/app/views/collections/_show_document_list.html.erb +0 -2
- data/app/views/collections/_show_document_list_menu.html.erb +5 -6
- data/app/views/collections/_show_document_list_row.html.erb +9 -9
- data/app/views/collections/_sort_and_per_page.html.erb +1 -1
- data/app/views/collections/_view_type_group.html.erb +1 -1
- data/app/views/collections/show.html.erb +3 -3
- data/app/views/generic_files/_asset_permissions_denial_flash.html.erb +1 -1
- data/app/views/generic_files/_asset_saved_flash.html.erb +1 -1
- data/app/views/generic_files/_asset_updated_flash.html.erb +1 -1
- data/app/views/generic_files/_browse_everything.html.erb +4 -4
- data/app/views/generic_files/_media_display.html.erb +9 -9
- data/app/views/generic_files/_permission_form.html.erb +1 -1
- data/app/views/generic_files/_show_actions.html.erb +1 -1
- data/app/views/generic_files/_show_collections.html.erb +2 -2
- data/app/views/generic_files/_show_details.html.erb +1 -1
- data/app/views/generic_files/_versioning.html.erb +9 -5
- data/app/views/generic_files/jq_upload.json.jbuilder +1 -1
- data/app/views/generic_files/new.html.erb +2 -3
- data/app/views/generic_files/show.html.erb +13 -16
- data/app/views/generic_files/upload/_alerts.html.erb +2 -2
- data/app/views/generic_files/upload/_form_fields.html.erb +1 -1
- data/app/views/generic_files/upload/_local_file_import_chooser.html.erb +1 -1
- data/app/views/generic_files/upload/_script_templates.html.erb +2 -2
- data/app/views/homepage/_featured.html.erb +2 -4
- data/app/views/homepage/_featured_researcher.html.erb +1 -1
- data/app/views/homepage/_featured_works.html.erb +5 -3
- data/app/views/homepage/_home_content.html.erb +1 -1
- data/app/views/homepage/_recent_document.html.erb +2 -2
- data/app/views/homepage/_sortable_featured.html.erb +1 -2
- data/app/views/my/_action_menu.html.erb +8 -8
- data/app/views/my/_collection_action_menu.html.erb +4 -4
- data/app/views/my/_index_partials/_list_collections.html.erb +9 -12
- data/app/views/my/_index_partials/_list_files.html.erb +9 -9
- data/app/views/my/index.html.erb +0 -1
- data/app/views/records/_rights_modal.html.erb +1 -0
- data/app/views/users/_contributions.html.erb +2 -3
- data/app/views/users/_edit_primary.html.erb +68 -0
- data/app/views/users/_edit_secondary.html.erb +1 -0
- data/app/views/users/_trophy_edit.html.erb +1 -3
- data/app/views/users/edit.html.erb +4 -78
- data/config/initializers/simple_form.rb +167 -0
- data/config/initializers/simple_form_bootstrap.rb +137 -0
- data/config/locales/simple_form.en.yml +31 -0
- data/config/locales/sufia.en.yml +7 -4
- data/config/routes.rb +1 -1
- data/lib/generators/sufia/templates/catalog_controller.rb +1 -1
- data/lib/sufia/single_use_error.rb +1 -1
- data/lib/sufia/version.rb +1 -1
- data/spec/actors/generic_file/actor_spec.rb +5 -5
- data/spec/controllers/batch_controller_spec.rb +15 -0
- data/spec/controllers/collections_controller_spec.rb +1 -1
- data/spec/controllers/content_blocks_controller_spec.rb +23 -3
- data/spec/controllers/downloads_controller_spec.rb +5 -5
- data/spec/controllers/generic_files_controller_spec.rb +12 -12
- data/spec/controllers/homepage_controller_spec.rb +19 -6
- data/spec/controllers/my/files_controller_spec.rb +8 -10
- data/spec/controllers/my/shares_controller_spec.rb +34 -23
- data/spec/controllers/single_use_links_controller_spec.rb +2 -3
- data/spec/controllers/single_use_links_viewer_controller_spec.rb +19 -20
- data/spec/controllers/users_controller_spec.rb +8 -8
- data/spec/factories/generic_files.rb +4 -4
- data/spec/factories/users.rb +2 -3
- data/spec/features/browse_dashboard_files_spec.rb +8 -8
- data/spec/features/collection_spec.rb +15 -8
- data/spec/features/edit_file_spec.rb +26 -0
- data/spec/features/single_use_links_spec.rb +3 -3
- data/spec/forms/generic_file_edit_form_spec.rb +8 -1
- data/spec/helpers/content_block_helper_spec.rb +10 -0
- data/spec/helpers/dashboard_helper_spec.rb +42 -0
- data/spec/helpers/sufia_helper_spec.rb +34 -7
- data/spec/helpers/trophy_helper_spec.rb +6 -6
- data/spec/inputs/select_with_help_input_spec.rb +16 -0
- data/spec/jobs/audit_job_spec.rb +1 -1
- data/spec/jobs/characterize_job_spec.rb +2 -7
- data/spec/jobs/create_derivatives_job_spec.rb +27 -38
- data/spec/jobs/import_url_job_spec.rb +2 -2
- data/spec/jobs/ingest_local_file_job_spec.rb +6 -8
- data/spec/lib/sufia/id_service_spec.rb +0 -7
- data/spec/lib/sufia/messages_spec.rb +16 -13
- data/spec/models/ability_spec.rb +3 -0
- data/spec/models/checksum_audit_log_spec.rb +1 -1
- data/spec/models/content_block_spec.rb +41 -0
- data/spec/models/featured_work_list_spec.rb +23 -9
- data/spec/models/file_content_datastream_spec.rb +4 -4
- data/spec/models/file_usage_spec.rb +1 -1
- data/spec/models/fits_datastream_spec.rb +4 -4
- data/spec/models/generic_file_spec.rb +31 -15
- data/spec/models/single_use_link_spec.rb +2 -2
- data/spec/models/solr_document_spec.rb +8 -5
- data/spec/models/user_spec.rb +3 -3
- data/spec/presenters/sufia/collection_presenter_spec.rb +34 -0
- data/spec/presenters/sufia/generic_file_presenter_spec.rb +41 -1
- data/spec/presenters/sufia/version_list_presenter_spec.rb +12 -2
- data/spec/services/generic_file_audit_service_spec.rb +3 -3
- data/spec/services/noid_spec.rb +4 -11
- data/spec/services/repository_audit_service_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/support/fixture_helpers.rb +2 -3
- data/spec/support/selectors.rb +7 -7
- data/spec/test_app_templates/Gemfile.extra +1 -0
- data/spec/views/batch/edit.html.erb_spec.rb +14 -17
- data/spec/views/collections/_show_descriptions.html.erb_spec.rb +1 -1
- data/spec/views/generic_file/_permission_form.html.erb_spec.rb +29 -7
- data/spec/views/generic_file/edit.html.erb_spec.rb +1 -1
- data/spec/views/generic_file/show.html.erb_spec.rb +69 -151
- data/spec/views/generic_file/stats.html.erb_spec.rb +1 -1
- data/spec/views/homepage/_featured_works.html.erb_spec.rb +29 -0
- data/spec/views/users/show.html.erb_spec.rb +1 -1
- data/sufia-models/app/actors/sufia/generic_file/actor.rb +12 -8
- data/sufia-models/app/jobs/batch_update_job.rb +2 -2
- data/sufia-models/app/jobs/import_url_job.rb +5 -3
- data/sufia-models/app/jobs/ingest_local_file_job.rb +46 -0
- data/sufia-models/app/jobs/resolrize_job.rb +1 -8
- data/sufia-models/app/models/batch.rb +0 -7
- data/sufia-models/app/models/concerns/sufia/ability.rb +1 -1
- data/sufia-models/app/models/concerns/sufia/{collection.rb → collection_behavior.rb} +1 -13
- data/sufia-models/app/models/concerns/sufia/generic_file/batches.rb +3 -4
- data/sufia-models/app/models/concerns/sufia/generic_file/export.rb +1 -1
- data/sufia-models/app/models/concerns/sufia/generic_file/featured.rb +1 -4
- data/sufia-models/app/models/concerns/sufia/generic_file/metadata.rb +7 -7
- data/sufia-models/app/models/concerns/sufia/generic_file/trophies.rb +1 -2
- data/sufia-models/app/models/concerns/sufia/generic_file/virus_check.rb +16 -11
- data/sufia-models/app/models/concerns/sufia/model_methods.rb +1 -14
- data/sufia-models/app/models/concerns/sufia/user.rb +5 -0
- data/sufia-models/app/models/file_usage.rb +1 -1
- data/sufia-models/app/models/file_view_stat.rb +1 -1
- data/sufia-models/app/models/sufia/collection.rb +5 -0
- data/sufia-models/app/services/sufia/generic_file_indexing_service.rb +1 -1
- data/sufia-models/app/services/sufia/id_service.rb +1 -2
- data/sufia-models/app/services/sufia/noid.rb +4 -24
- data/sufia-models/lib/generators/sufia/models/install_generator.rb +6 -1
- data/sufia-models/lib/generators/sufia/models/templates/app/models/collection.rb +2 -0
- data/sufia-models/lib/generators/sufia/models/templates/config/resque_config.rb +1 -1
- data/sufia-models/lib/generators/sufia/models/templates/config/solrconfig.xml +46 -0
- data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +9 -5
- data/sufia-models/lib/generators/sufia/models/templates/migrations/add_external_key_to_content_blocks.rb +6 -0
- data/sufia-models/lib/generators/sufia/models/update_content_blocks_generator.rb +18 -0
- data/sufia-models/lib/sufia/messages.rb +11 -12
- data/sufia-models/lib/sufia/models/engine.rb +2 -1
- data/sufia-models/lib/sufia/models/stats/user_stat_importer.rb +9 -5
- data/sufia-models/lib/sufia/models/version.rb +1 -1
- data/sufia-models/sufia-models.gemspec +5 -5
- data/sufia.gemspec +15 -15
- data/tasks/sufia-dev.rake +0 -16
- metadata +86 -64
- data/LICENSE.md +0 -14
- data/app/jobs/ingest_local_file_job.rb +0 -39
- data/sufia-models/app/models/collection.rb +0 -3
- data/sufia-models/app/services/sufia/indexing_service.rb +0 -15
@@ -13,8 +13,9 @@ module Sufia::HomepageController
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def index
|
16
|
-
@featured_researcher = ContentBlock.
|
17
|
-
@
|
16
|
+
@featured_researcher = ContentBlock.featured_researcher
|
17
|
+
@featured_researcher ||= ContentBlock.create(name: ContentBlock::RESEARCHER)
|
18
|
+
@marketing_text = ContentBlock.find_or_create_by(name: ContentBlock::MARKETING)
|
18
19
|
@featured_work_list = FeaturedWorkList.new
|
19
20
|
recent
|
20
21
|
end
|
@@ -1,8 +1,24 @@
|
|
1
1
|
class ContentBlocksController < ApplicationController
|
2
2
|
load_and_authorize_resource
|
3
3
|
|
4
|
+
def create
|
5
|
+
@content_block.save
|
6
|
+
redirect_to :back
|
7
|
+
end
|
8
|
+
|
4
9
|
def update
|
5
|
-
@content_block.update(
|
10
|
+
@content_block.update(update_params)
|
6
11
|
redirect_to :back
|
7
12
|
end
|
13
|
+
|
14
|
+
protected
|
15
|
+
|
16
|
+
def create_params
|
17
|
+
params.require(:content_block).permit([:name, :value, :external_key])
|
18
|
+
end
|
19
|
+
|
20
|
+
def update_params
|
21
|
+
params.require(:content_block).permit([:value, :external_key])
|
22
|
+
end
|
23
|
+
|
8
24
|
end
|
@@ -1,11 +1,9 @@
|
|
1
1
|
require 'sufia/single_use_error'
|
2
2
|
|
3
3
|
class SingleUseLinksViewerController < ApplicationController
|
4
|
-
|
5
4
|
include Sufia::DownloadsControllerBehavior
|
6
5
|
|
7
|
-
|
8
|
-
skip_before_filter :load_datastream, except: :download
|
6
|
+
skip_before_filter :load_file, except: :download
|
9
7
|
|
10
8
|
class Ability
|
11
9
|
include CanCan::Ability
|
@@ -18,10 +16,8 @@ class SingleUseLinksViewerController < ApplicationController
|
|
18
16
|
@single_use_link = single_use_link
|
19
17
|
|
20
18
|
can :read, ActiveFedora::Base do |obj|
|
21
|
-
single_use_link.valid?
|
22
|
-
single_use_link.itemId == obj.id and single_use_link.destroy!
|
19
|
+
single_use_link.valid? && single_use_link.itemId == obj.id && single_use_link.destroy!
|
23
20
|
end if single_use_link
|
24
|
-
|
25
21
|
end
|
26
22
|
end
|
27
23
|
|
@@ -30,7 +26,6 @@ class SingleUseLinksViewerController < ApplicationController
|
|
30
26
|
rescue_from ActiveRecord::RecordNotFound, with: :render_single_use_error
|
31
27
|
|
32
28
|
def download
|
33
|
-
# send the data content
|
34
29
|
raise not_found_exception unless single_use_link.path == sufia.download_path(id: @asset)
|
35
30
|
send_content
|
36
31
|
end
|
@@ -57,7 +52,7 @@ class SingleUseLinksViewerController < ApplicationController
|
|
57
52
|
end
|
58
53
|
|
59
54
|
def single_use_link
|
60
|
-
@single_use_link ||= SingleUseLink.find_by_downloadKey!
|
55
|
+
@single_use_link ||= SingleUseLink.find_by_downloadKey!(params[:id])
|
61
56
|
end
|
62
57
|
|
63
58
|
def not_found_exception
|
@@ -2,15 +2,8 @@ module Sufia
|
|
2
2
|
module Forms
|
3
3
|
class GenericFileEditForm < GenericFilePresenter
|
4
4
|
include HydraEditor::Form
|
5
|
+
include HydraEditor::Form::Permissions
|
5
6
|
self.required_fields = [:title, :creator, :tag, :rights]
|
6
|
-
|
7
|
-
# This is required so that fields_for will draw a nested form.
|
8
|
-
# See ActionView::Helpers#nested_attributes_association?
|
9
|
-
# https://github.com/rails/rails/blob/a04c0619617118433db6e01b67d5d082eaaa0189/actionview/lib/action_view/helpers/form_helper.rb#L1890
|
10
|
-
def permissions_attributes= attributes
|
11
|
-
model.permissions_attributes= attributes
|
12
|
-
end
|
13
|
-
|
14
7
|
end
|
15
8
|
end
|
16
9
|
end
|
@@ -1,22 +1,42 @@
|
|
1
1
|
module ContentBlockHelper
|
2
2
|
|
3
|
-
def editable_content_block(content_block)
|
3
|
+
def editable_content_block(content_block, show_new=false)
|
4
4
|
return raw(content_block.value) unless can? :update, content_block
|
5
5
|
capture do
|
6
|
-
concat content_tag(:div, id: dom_id(content_block, 'preview')) {
|
6
|
+
concat content_tag(:div, id: dom_id(content_block, 'preview'), class: 'content_block_preview') {
|
7
7
|
concat raw(content_block.value)
|
8
|
-
concat
|
9
|
-
|
10
|
-
}
|
8
|
+
concat edit_button(content_block)
|
9
|
+
concat new_button(content_block) if show_new
|
11
10
|
}
|
12
|
-
concat
|
13
|
-
|
14
|
-
concat f.submit 'Save', class: "btn btn-primary"
|
15
|
-
}
|
16
|
-
|
11
|
+
concat edit_form(content_block)
|
12
|
+
concat new_form(content_block.name) if show_new
|
17
13
|
end
|
18
14
|
end
|
19
15
|
|
16
|
+
def edit_button(content_block)
|
17
|
+
button_tag "Edit", class: 'btn btn-primary', data: { behavior: 'reveal-editor', target: '#' + dom_id(content_block, 'edit') }
|
18
|
+
end
|
19
|
+
|
20
|
+
def new_button(content_block)
|
21
|
+
button_tag "New", class: 'btn btn-primary', data: { behavior: 'reveal-editor', target: '#' + 'new_content_block' }
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit_form(content_block, editing_field_id=nil)
|
25
|
+
editing_field_id ||= "text_area_#{content_block.name}"
|
26
|
+
form_for([sufia, content_block], html: { class: 'tinymce-form' }) { |f|
|
27
|
+
concat hidden_field_tag 'content_block[name]', content_block.name
|
28
|
+
concat f.text_area :value, id: editing_field_id, class: "tinymce", rows: 20, cols: 120
|
29
|
+
concat f.label :external_key, content_block.external_key_name
|
30
|
+
concat f.text_field :external_key
|
31
|
+
concat content_tag(:div) { f.submit 'Save', class: "btn btn-primary" }
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
def new_form(name)
|
36
|
+
content_block = ContentBlock.new(name: name)
|
37
|
+
edit_form(content_block, "new_#{name}_text_area")
|
38
|
+
end
|
39
|
+
|
20
40
|
def tiny_mce_stuff
|
21
41
|
capture do
|
22
42
|
concat tinymce_assets
|
@@ -11,19 +11,19 @@ module GenericFileHelper
|
|
11
11
|
|
12
12
|
def render_download_icon title = nil
|
13
13
|
if title.nil?
|
14
|
-
link_to download_image_tag, sufia.download_path(@generic_file
|
14
|
+
link_to download_image_tag, sufia.download_path(@generic_file), { target: "_blank", title: "Download the document", id: "file_download", data: { label: @generic_file.id } }
|
15
15
|
else
|
16
16
|
link_to (download_image_tag(title) + title), sufia.download_path(@generic_file), { target: "_blank", title: title, id: "file_download", data: { label: @generic_file.id } }
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def render_download_link text = nil
|
21
|
-
link_to (text || "Download"), sufia.download_path(@generic_file
|
21
|
+
link_to (text || "Download"), sufia.download_path(@generic_file), { id: "file_download", target: "_new", data: { label: @generic_file.id } }
|
22
22
|
end
|
23
23
|
|
24
24
|
def render_collection_list gf
|
25
25
|
unless gf.collections.empty?
|
26
|
-
("Is part of: " + gf.collections.map { |c| link_to(c.title, collections.collection_path(c
|
26
|
+
("Is part of: " + gf.collections.map { |c| link_to(c.title, collections.collection_path(c)) }.join(", ")).html_safe
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -33,7 +33,7 @@ module GenericFileHelper
|
|
33
33
|
if title.nil?
|
34
34
|
image_tag "default.png", { alt: "No preview available", class: "img-responsive" }
|
35
35
|
else
|
36
|
-
image_tag sufia.download_path(@generic_file,
|
36
|
+
image_tag sufia.download_path(@generic_file, file: 'thumbnail'), { class: "img-responsive", alt: "#{title} of #{@generic_file.title.first}" }
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -41,11 +41,11 @@ module Sufia
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def number_of_files user=current_user
|
44
|
-
::GenericFile.where(Solrizer.solr_name('depositor', :
|
44
|
+
::GenericFile.where(Solrizer.solr_name('depositor', :symbol) => user.user_key).count
|
45
45
|
end
|
46
46
|
|
47
47
|
def number_of_collections user=current_user
|
48
|
-
::Collection.where(Solrizer.solr_name('depositor', :
|
48
|
+
::Collection.where(Solrizer.solr_name('depositor', :symbol) => user.user_key).count
|
49
49
|
end
|
50
50
|
|
51
51
|
def notifications_for_dashboard
|
@@ -38,7 +38,7 @@ module Sufia
|
|
38
38
|
# file
|
39
39
|
else
|
40
40
|
path = if document.image? || document.pdf? || document.video? || document.office_document?
|
41
|
-
sufia.download_path document
|
41
|
+
sufia.download_path document, file: 'thumbnail'
|
42
42
|
elsif document.audio?
|
43
43
|
"audio.png"
|
44
44
|
else
|
@@ -76,7 +76,7 @@ module Sufia
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def number_of_deposits(user)
|
79
|
-
ActiveFedora::Base.where(Solrizer.solr_name('depositor', :
|
79
|
+
ActiveFedora::Base.where(Solrizer.solr_name('depositor', :symbol) => user.user_key).count
|
80
80
|
end
|
81
81
|
|
82
82
|
def link_to_facet(field, field_string)
|
@@ -154,8 +154,8 @@ module Sufia
|
|
154
154
|
end
|
155
155
|
|
156
156
|
def render_visibility_link document
|
157
|
-
link_to render_visibility_label(document), sufia.edit_generic_file_path(document
|
158
|
-
id: "permission_"+document.
|
157
|
+
link_to render_visibility_label(document), sufia.edit_generic_file_path(document, {anchor: "permissions_display"}),
|
158
|
+
id: "permission_"+document.id, class: "visibility-link"
|
159
159
|
end
|
160
160
|
|
161
161
|
def render_visibility_label document
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module TrophyHelper
|
3
|
-
def display_trophy_link(user,
|
4
|
-
trophy = user.trophies.where(generic_file_id:
|
3
|
+
def display_trophy_link(user, id, args={}, &block)
|
4
|
+
trophy = user.trophies.where(generic_file_id: id).first
|
5
5
|
trophyclass = trophy ? "trophy-on" : "trophy-off"
|
6
6
|
|
7
7
|
args[:add_text] ||= "Highlight File on Profile"
|
@@ -12,7 +12,7 @@ module TrophyHelper
|
|
12
12
|
args[:data]['add-text'] = args[:add_text]
|
13
13
|
args[:data]['remove-text'] = args[:remove_text]
|
14
14
|
|
15
|
-
args[:data][:url] = sufia.trophy_profile_path(user, file_id:
|
15
|
+
args[:data][:url] = sufia.trophy_profile_path(user, file_id: id)
|
16
16
|
link_to '#', class: args[:class], data: args[:data] do
|
17
17
|
yield(text)
|
18
18
|
end
|
@@ -1,8 +1,7 @@
|
|
1
1
|
class ContentDeleteEventJob < EventJob
|
2
2
|
|
3
3
|
def run
|
4
|
-
|
5
|
-
action = "User #{link_to_profile depositor_id} has deleted file '#{noid}'"
|
4
|
+
action = "User #{link_to_profile depositor_id} has deleted file '#{generic_file_id}'"
|
6
5
|
timestamp = Time.now.to_i
|
7
6
|
depositor = User.find_by_user_key(depositor_id)
|
8
7
|
# Create the event
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class ContentDepositEventJob < EventJob
|
2
2
|
def run
|
3
3
|
gf = GenericFile.find(generic_file_id)
|
4
|
-
action = "User #{link_to_profile depositor_id} has deposited #{link_to gf.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(gf
|
4
|
+
action = "User #{link_to_profile depositor_id} has deposited #{link_to gf.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(gf)}"
|
5
5
|
timestamp = Time.now.to_i
|
6
6
|
depositor = User.find_by_user_key(depositor_id)
|
7
7
|
# Create the event
|
@@ -23,7 +23,7 @@ class ContentDepositorChangeEventJob < EventJob
|
|
23
23
|
file.apply_depositor_metadata(login)
|
24
24
|
file.save!
|
25
25
|
|
26
|
-
action = "User #{link_to_profile file.proxy_depositor} has transferred #{link_to file.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(file
|
26
|
+
action = "User #{link_to_profile file.proxy_depositor} has transferred #{link_to file.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(file)} to user #{link_to_profile login}"
|
27
27
|
timestamp = Time.now.to_i
|
28
28
|
depositor = ::User.find_by_user_key(file.depositor)
|
29
29
|
proxy_depositor = ::User.find_by_user_key(file.proxy_depositor)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class ContentNewVersionEventJob < EventJob
|
2
2
|
def run
|
3
3
|
gf = GenericFile.find(generic_file_id)
|
4
|
-
action = "User #{link_to_profile depositor_id} has added a new version of #{link_to gf.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(gf
|
4
|
+
action = "User #{link_to_profile depositor_id} has added a new version of #{link_to gf.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(gf)}"
|
5
5
|
timestamp = Time.now.to_i
|
6
6
|
depositor = User.find_by_user_key(depositor_id)
|
7
7
|
# Create the event
|
@@ -9,7 +9,7 @@ class ContentRestoredVersionEventJob < EventJob
|
|
9
9
|
|
10
10
|
def run
|
11
11
|
gf = GenericFile.find(generic_file_id)
|
12
|
-
action = "User #{link_to_profile depositor_id} has restored a version '#{revision_id}' of #{link_to gf.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(gf
|
12
|
+
action = "User #{link_to_profile depositor_id} has restored a version '#{revision_id}' of #{link_to gf.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(gf)}"
|
13
13
|
timestamp = Time.now.to_i
|
14
14
|
depositor = User.find_by_user_key(depositor_id)
|
15
15
|
# Create the event
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class ContentUpdateEventJob < EventJob
|
2
2
|
def run
|
3
3
|
gf = GenericFile.find(generic_file_id)
|
4
|
-
action = "User #{link_to_profile depositor_id} has updated #{link_to gf.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(gf
|
4
|
+
action = "User #{link_to_profile depositor_id} has updated #{link_to gf.title.first, Sufia::Engine.routes.url_helpers.generic_file_path(gf)}"
|
5
5
|
timestamp = Time.now.to_i
|
6
6
|
depositor = User.find_by_user_key(depositor_id)
|
7
7
|
# Create the event
|
@@ -4,12 +4,16 @@ module Sufia
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
include Sufia::GenericFile::MimeTypes
|
6
6
|
include Sufia::Permissions::Readable
|
7
|
-
|
7
|
+
|
8
8
|
# Add a schema.org itemtype
|
9
9
|
def itemtype
|
10
10
|
Sufia.config.resource_types_to_schema[resource_type.first] || 'http://schema.org/CreativeWork'
|
11
11
|
end
|
12
12
|
|
13
|
+
def to_param
|
14
|
+
self[:id]
|
15
|
+
end
|
16
|
+
|
13
17
|
def title_or_label
|
14
18
|
title || label
|
15
19
|
end
|
@@ -20,10 +24,6 @@ module Sufia
|
|
20
24
|
get(Solrizer.solr_name('has_model', :symbol)).split(':').last.downcase
|
21
25
|
end
|
22
26
|
|
23
|
-
def to_param
|
24
|
-
noid
|
25
|
-
end
|
26
|
-
|
27
27
|
##
|
28
28
|
# Offer the source (ActiveFedora-based) model to Rails for some of the
|
29
29
|
# Rails methods (e.g. link_to).
|
@@ -40,10 +40,6 @@ module Sufia
|
|
40
40
|
self[Solrizer.solr_name('active_fedora_model', Solrizer::Descriptor.new(:string, :stored, :indexed))]
|
41
41
|
end
|
42
42
|
|
43
|
-
def noid
|
44
|
-
self[Solrizer.solr_name('noid', Sufia::IndexingService.noid_indexer)]
|
45
|
-
end
|
46
|
-
|
47
43
|
def date_uploaded
|
48
44
|
field = self[Solrizer.solr_name("date_uploaded", :stored_sortable, type: :date)]
|
49
45
|
return unless field.present?
|
data/app/models/content_block.rb
CHANGED
@@ -1,2 +1,22 @@
|
|
1
1
|
class ContentBlock < ActiveRecord::Base
|
2
|
+
|
3
|
+
MARKETING = 'marketing_text'
|
4
|
+
RESEARCHER = 'featured_researcher'
|
5
|
+
|
6
|
+
def self.recent_researchers
|
7
|
+
where(name: RESEARCHER).order('created_at DESC')
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.featured_researcher
|
11
|
+
recent_researchers.first
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.external_keys
|
15
|
+
{ RESEARCHER => 'User' }
|
16
|
+
end
|
17
|
+
|
18
|
+
def external_key_name
|
19
|
+
self.class.external_keys.fetch(name) { 'External Key' }
|
20
|
+
end
|
21
|
+
|
2
22
|
end
|
@@ -5,8 +5,9 @@ module Sufia
|
|
5
5
|
|
6
6
|
self.model_class = ::Collection
|
7
7
|
# Terms is the list of fields displayed by app/views/collections/_show_descriptions.html.erb
|
8
|
-
self.terms = [:
|
9
|
-
:
|
8
|
+
self.terms = [:title, :total_items, :size, :resource_type, :description, :creator, :contributor,
|
9
|
+
:tag, :rights, :publisher, :date_created, :subject, :language, :identifier,
|
10
|
+
:based_near, :related_url]
|
10
11
|
|
11
12
|
# Depositor and permissions are not displayed in app/views/collections/_show_descriptions.html.erb
|
12
13
|
# so don't include them in `terms'.
|
@@ -16,6 +17,17 @@ module Sufia
|
|
16
17
|
terms.select { |t| self[t].present? }
|
17
18
|
end
|
18
19
|
|
20
|
+
def [](key)
|
21
|
+
case key
|
22
|
+
when :size
|
23
|
+
size
|
24
|
+
when :total_items
|
25
|
+
total_items
|
26
|
+
else
|
27
|
+
super
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
19
31
|
def size
|
20
32
|
number_to_human_size(model.bytes)
|
21
33
|
end
|
@@ -10,5 +10,21 @@ module Sufia
|
|
10
10
|
# so don't include them in `terms'.
|
11
11
|
delegate :depositor, :permissions, to: :model
|
12
12
|
|
13
|
+
def tweeter
|
14
|
+
user = ::User.find_by_user_key(model.depositor)
|
15
|
+
if user.try(:twitter_handle).present?
|
16
|
+
"@#{user.twitter_handle}"
|
17
|
+
else
|
18
|
+
I18n.translate('sufia.product_twitter_handle')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# Add a schema.org itemtype
|
23
|
+
def itemtype
|
24
|
+
# Look up the first non-empty resource type value in a hash from the config
|
25
|
+
Sufia.config.resource_types_to_schema[resource_type.to_a.reject { |type| type.empty? }.first] || 'http://schema.org/CreativeWork'
|
26
|
+
rescue
|
27
|
+
'http://schema.org/CreativeWork'
|
28
|
+
end
|
13
29
|
end
|
14
30
|
end
|