sufia 0.0.5 → 0.0.6
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.
- data/Gemfile +2 -1
- data/README.md +6 -2
- data/app/assets/javascripts/sufia.js +1 -0
- data/app/assets/javascripts/sufia/trophy.js +26 -0
- data/app/assets/stylesheets/sufia.css.scss +1 -0
- data/app/assets/stylesheets/trophy.css +7 -0
- data/app/controllers/batch_controller.rb +1 -1
- data/app/controllers/batch_edits_controller.rb +3 -3
- data/app/controllers/single_use_link_controller.rb +9 -17
- data/app/controllers/users_controller.rb +33 -4
- data/app/helpers/generic_file_helper.rb +57 -5
- data/{lib/devise/models/http_header_authenticatable.rb → app/helpers/trophy_helper.rb} +11 -13
- data/app/models/datastreams/batch_rdf_datastream.rb +0 -1
- data/app/models/datastreams/generic_file_rdf_datastream.rb +0 -1
- data/app/models/trophy.rb +12 -0
- data/app/views/_user_util_links.html.erb +1 -1
- data/app/views/batch/edit.html.erb +2 -2
- data/app/views/batch_edits/{_delete_selected → _delete_selected.html.erb} +1 -1
- data/app/views/batch_edits/_metadata.html.erb +16 -15
- data/app/views/batch_edits/edit.html.erb +15 -23
- data/app/views/catalog/_recent_document.html.erb +2 -5
- data/app/views/dashboard/_index_partials/_default_group.html.erb +1 -1
- data/app/views/dashboard/_index_partials/_list_files.html.erb +7 -3
- data/app/views/dashboard/index.html.erb +7 -7
- data/app/views/error/404.html.erb +1 -1
- data/app/views/error/500.html.erb +1 -1
- data/app/views/generic_files/_descriptions.html.erb +3 -18
- data/app/views/generic_files/_field_form.html.erb +17 -0
- data/app/views/generic_files/_rights_modal.html.erb +1 -1
- data/app/views/generic_files/edit_fields/_default.html.erb +7 -0
- data/app/views/generic_files/edit_fields/_description.html.erb +6 -0
- data/app/views/generic_files/edit_fields/_rights.html.erb +8 -0
- data/app/views/generic_files/edit_fields/_suffix.html.erb +9 -0
- data/app/views/generic_files/edit_fields/_type.html.erb +9 -0
- data/app/views/single_use_link/show.html.erb +5 -11
- data/app/views/static/versions.html.erb +14 -0
- data/app/views/users/_trophy_edit.html.erb +21 -0
- data/app/views/users/edit.html.erb +3 -0
- data/app/views/users/index.html.erb +1 -1
- data/app/views/users/show.html.erb +9 -2
- data/config/locales/sufia.en.yml +24 -0
- data/config/routes.rb +8 -6
- data/features/support/cleanup.rb +2 -2
- data/lib/generators/sufia/sufia_generator.rb +1 -1
- data/lib/generators/sufia/templates/config/sufia.rb +0 -37
- data/lib/generators/sufia/templates/migrations/create_trophies.rb +10 -0
- data/lib/sufia/downloads_controller_behavior.rb +7 -9
- data/lib/sufia/files_controller_behavior.rb +4 -4
- data/lib/sufia/generic_file.rb +21 -27
- data/lib/sufia/jobs/batch_update_job.rb +1 -1
- data/lib/sufia/user.rb +23 -1
- data/lib/sufia/version.rb +1 -1
- data/lib/tasks/fixtures.rake +2 -3
- data/spec/controllers/generic_files_controller_spec.rb +7 -0
- data/spec/controllers/single_use_link_controller_spec.rb +0 -2
- data/spec/controllers/users_controller_spec.rb +28 -2
- data/spec/helpers/generic_file_helper_spec.rb +21 -0
- data/spec/models/generic_file_spec.rb +21 -5
- data/spec/models/trophy_spec.rb +26 -0
- data/spec/models/user_spec.rb +2 -2
- data/spec/routing/route_spec.rb +11 -11
- data/spec/support/Gemfile +2 -4
- data/sufia.gemspec +1 -0
- metadata +35 -15
- data/app/controllers/sessions_controller.rb +0 -30
- data/app/views/batch/_metadata.html.erb +0 -195
- data/app/views/generic_files/_field_form +0 -46
- data/lib/devise/strategies/http_header_authenticatable.rb +0 -43
- data/lib/generators/sufia/templates/config/devise.rb +0 -222
- data/lib/redirect_to_web_access_failure.rb +0 -27
- data/lib/sufia/http_header_auth.rb +0 -60
- data/spec/config/host_to_vhost_spec.rb +0 -38
- data/spec/controllers/sessions_controller_spec.rb +0 -44
data/Gemfile
CHANGED
@@ -16,7 +16,8 @@ group :development, :test do
|
|
16
16
|
gem 'ruby-prof'
|
17
17
|
gem 'cucumber-rails', '~> 1.0', :require => false
|
18
18
|
gem 'database_cleaner'
|
19
|
-
gem '
|
19
|
+
gem 'devise'
|
20
|
+
gem 'capybara', '~>1.1.3'
|
20
21
|
gem 'bcrypt-ruby'
|
21
22
|
gem "jettywrapper"
|
22
23
|
gem "factory_girl_rails", "~> 4.1.0"
|
data/README.md
CHANGED
@@ -8,6 +8,7 @@ gem 'blacklight'
|
|
8
8
|
gem 'hydra-head'
|
9
9
|
gem 'sufia'
|
10
10
|
gem 'jettywrapper'
|
11
|
+
gem 'font-awesome-sass-rails'
|
11
12
|
```
|
12
13
|
Then `bundle install`
|
13
14
|
|
@@ -46,13 +47,16 @@ COUNT=4 QUEUE=* rake environment resque:work
|
|
46
47
|
```
|
47
48
|
See https://github.com/defunkt/resque for more options
|
48
49
|
|
49
|
-
### If you want to enable transcoding of video
|
50
|
-
####
|
50
|
+
### If you want to enable transcoding of video, instal ffmpeg version 1.0+
|
51
|
+
#### On a mac
|
51
52
|
Use homebrew:
|
52
53
|
```
|
53
54
|
brew install ffmpeg --with-libvpx --with-libvorbis
|
54
55
|
```
|
55
56
|
|
57
|
+
#### On Ubuntu Linux
|
58
|
+
See https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide
|
59
|
+
|
56
60
|
## Developers:
|
57
61
|
This information is for people who want to modify the engine itself, not an application that uses the engine:
|
58
62
|
### Create fixtures
|
@@ -0,0 +1,26 @@
|
|
1
|
+
// short hand for $(document).ready();
|
2
|
+
$(function() {
|
3
|
+
|
4
|
+
$('.trophy-class').click(function(){
|
5
|
+
var uid=$("#current_user").html();
|
6
|
+
$.ajax({
|
7
|
+
url:"/users/"+uid+"/trophy",
|
8
|
+
type:"post",
|
9
|
+
data: "file_id="+this.id,
|
10
|
+
success:function(data) {
|
11
|
+
var oldclass = $('#'+data.trophy.generic_file_id).find('i').attr("class");
|
12
|
+
if (oldclass.indexOf("trophy-on") != -1){
|
13
|
+
$('#'+data.trophy.generic_file_id).find('i').attr("title", "Highlight work");
|
14
|
+
} else {
|
15
|
+
$('#'+data.trophy.generic_file_id).find('i').attr("title", "Unhighlight work");
|
16
|
+
}
|
17
|
+
|
18
|
+
$('#'+data.trophy.generic_file_id).find('i').toggleClass("trophy-on");
|
19
|
+
$('#'+data.trophy.generic_file_id).find('i').toggleClass("trophy-off");
|
20
|
+
}
|
21
|
+
})
|
22
|
+
});
|
23
|
+
|
24
|
+
}); //closing function at the top of the page
|
25
|
+
|
26
|
+
|
@@ -38,7 +38,7 @@ class BatchController < ApplicationController
|
|
38
38
|
@batch.status="processing"
|
39
39
|
@batch.save
|
40
40
|
Sufia.queue.push(BatchUpdateJob.new(current_user.user_key, params))
|
41
|
-
flash[:notice] = 'Your files are being processed by
|
41
|
+
flash[:notice] = 'Your files are being processed by ' + t('sufia.product_name') + ' in the background. The metadata and access controls you specified are being applied. Files will be marked <span class="label label-important" title="Private">Private</span> until this process is complete (shouldn\'t take too long, hang in there!). You may need to refresh your dashboard to see these updates.'
|
42
42
|
redirect_to sufia.dashboard_index_path
|
43
43
|
end
|
44
44
|
end
|
@@ -5,13 +5,13 @@ class BatchEditsController < ApplicationController
|
|
5
5
|
def edit
|
6
6
|
super
|
7
7
|
@generic_file = GenericFile.new
|
8
|
-
@generic_file.depositor = current_user.
|
8
|
+
@generic_file.depositor = current_user.user_key
|
9
9
|
@groups = current_user.groups
|
10
|
-
@terms = @generic_file.
|
10
|
+
@terms = @generic_file.editable_terms - [:title] # +:format, :resource_type
|
11
11
|
|
12
12
|
# do we want to show the original values for anything...
|
13
13
|
@show_file = GenericFile.new
|
14
|
-
@show_file.depositor = current_user.
|
14
|
+
@show_file.depositor = current_user.user_key
|
15
15
|
h = {}
|
16
16
|
@names = []
|
17
17
|
permissions = []
|
@@ -4,10 +4,10 @@ class SingleUseLinkController < DownloadsController
|
|
4
4
|
prepend_before_filter :normalize_identifier, :except => [:download, :show]
|
5
5
|
|
6
6
|
def generate_download
|
7
|
-
|
8
|
-
@
|
7
|
+
@generic_file = GenericFile.find(params[:id])
|
8
|
+
authorize! :read, @generic_file
|
9
|
+
@su = SingleUseLink.create_download(params[:id])
|
9
10
|
@link = sufia.download_single_use_link_path(@su.downloadKey)
|
10
|
-
@generic_file = GenericFile.find(id)
|
11
11
|
respond_to do |format|
|
12
12
|
format.html
|
13
13
|
format.js {render :js => @link}
|
@@ -16,10 +16,10 @@ class SingleUseLinkController < DownloadsController
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def generate_show
|
19
|
-
|
20
|
-
|
19
|
+
@generic_file = GenericFile.find(params[:id])
|
20
|
+
authorize! :read, @generic_file
|
21
|
+
@su = SingleUseLink.create_show(params[:id])
|
21
22
|
@link = sufia.show_single_use_link_path(@su.downloadKey)
|
22
|
-
@generic_file = GenericFile.find(id)
|
23
23
|
respond_to do |format|
|
24
24
|
format.html
|
25
25
|
format.js {render :js => @link}
|
@@ -38,7 +38,8 @@ class SingleUseLinkController < DownloadsController
|
|
38
38
|
not_found if link.path != sufia.download_path(id)
|
39
39
|
|
40
40
|
# send the data content
|
41
|
-
|
41
|
+
asset = ActiveFedora::Base.find(id, :cast=>true)
|
42
|
+
send_content(asset)
|
42
43
|
end
|
43
44
|
|
44
45
|
def show
|
@@ -52,8 +53,7 @@ class SingleUseLinkController < DownloadsController
|
|
52
53
|
|
53
54
|
#show the file
|
54
55
|
@generic_file = GenericFile.find(id)
|
55
|
-
@terms = @generic_file.
|
56
|
-
#render 'generic_files/show'
|
56
|
+
@terms = @generic_file.terms_for_display
|
57
57
|
|
58
58
|
# create a dowload link that is single use for the user since we do not just want to show metadata we want to access it too
|
59
59
|
@su = SingleUseLink.create_download(id)
|
@@ -62,14 +62,6 @@ class SingleUseLinkController < DownloadsController
|
|
62
62
|
|
63
63
|
protected
|
64
64
|
|
65
|
-
def check_single_use_link
|
66
|
-
id = params[:id]
|
67
|
-
# make sure the user is allowed to read the document before they generate the link
|
68
|
-
perms = permissions_solr_doc_for_id(id)
|
69
|
-
@can_read = can? :read, perms
|
70
|
-
return id
|
71
|
-
end
|
72
|
-
|
73
65
|
def lookup_hash
|
74
66
|
id = params[:id]
|
75
67
|
# invalid hash send not found
|
@@ -14,8 +14,9 @@
|
|
14
14
|
|
15
15
|
class UsersController < ApplicationController
|
16
16
|
prepend_before_filter :find_user, :except => [:index, :search, :notifications_number]
|
17
|
-
before_filter :authenticate_user!, only: [:edit, :update, :follow, :unfollow]
|
18
|
-
before_filter :user_is_current_user, only: [:edit, :update]
|
17
|
+
before_filter :authenticate_user!, only: [:edit, :update, :follow, :unfollow, :toggle_trophy]
|
18
|
+
before_filter :user_is_current_user, only: [:edit, :update, :toggle_trophy]
|
19
|
+
|
19
20
|
before_filter :user_not_current_user, only: [:follow, :unfollow]
|
20
21
|
|
21
22
|
def index
|
@@ -35,6 +36,7 @@ class UsersController < ApplicationController
|
|
35
36
|
else
|
36
37
|
@events = []
|
37
38
|
end
|
39
|
+
@trophies = @user.trophy_ids
|
38
40
|
@followers = @user.followers
|
39
41
|
@following = @user.all_following
|
40
42
|
end
|
@@ -43,6 +45,7 @@ class UsersController < ApplicationController
|
|
43
45
|
def edit
|
44
46
|
@user = current_user
|
45
47
|
@groups = @user.groups
|
48
|
+
@trophies = @user.trophy_ids
|
46
49
|
end
|
47
50
|
|
48
51
|
# Process changes from profile form
|
@@ -57,7 +60,33 @@ class UsersController < ApplicationController
|
|
57
60
|
end
|
58
61
|
Sufia.queue.push(UserEditProfileEventJob.new(@user.user_key))
|
59
62
|
redirect_to sufia.profile_path(URI.escape(@user.to_s,'@.')), notice: "Your profile has been updated"
|
63
|
+
delete_trophy = params.keys.reject{|k,v|k.slice(0,'remove_trophy'.length)!='remove_trophy'}
|
64
|
+
delete_trophy = delete_trophy.map{|v| v.slice('remove_trophy_'.length..-1)}
|
65
|
+
delete_trophy.each do | smash_trophy |
|
66
|
+
Trophy.where(user_id: current_user.id, generic_file_id: smash_trophy.slice("#{Sufia::Engine.config.id_namespace}:".length..-1)).each.map(&:delete)
|
67
|
+
#Trophy.where(user_id: current_user.id, generic_file_id: smash_trophy.slice("#{Sufia::Engine.config.id_namespace}:".length..-1)).each.map(&:delete)
|
68
|
+
end
|
60
69
|
end
|
70
|
+
def toggle_trophy
|
71
|
+
id = params[:file_id]
|
72
|
+
id = "#{Sufia::Engine.config.id_namespace}:#{id}" unless id.include?(":")
|
73
|
+
unless current_user.can? :edit, permissions_solr_doc_for_id(id)
|
74
|
+
redirect_to root_path, alert: "You do not have permissions to the file"
|
75
|
+
return false
|
76
|
+
end
|
77
|
+
# TO DO make sure current user has access to file
|
78
|
+
t = Trophy.where(:generic_file_id => params[:file_id], :user_id => current_user.id).first
|
79
|
+
if t.blank?
|
80
|
+
t = Trophy.create(:generic_file_id => params[:file_id], :user_id => current_user.id)
|
81
|
+
return false unless t.persisted?
|
82
|
+
else
|
83
|
+
t.delete
|
84
|
+
#TODO do this better says Mike
|
85
|
+
return false if t.persisted?
|
86
|
+
end
|
87
|
+
render :json => t
|
88
|
+
end
|
89
|
+
|
61
90
|
|
62
91
|
# Follow a user
|
63
92
|
def follow
|
@@ -79,12 +108,12 @@ class UsersController < ApplicationController
|
|
79
108
|
|
80
109
|
private
|
81
110
|
def find_user
|
82
|
-
@user = User.
|
111
|
+
@user = User.from_url_component(params[:uid])
|
83
112
|
redirect_to root_path, alert: "User '#{params[:uid]}' does not exist" if @user.nil?
|
84
113
|
end
|
85
114
|
|
86
115
|
def user_is_current_user
|
87
|
-
redirect_to sufia.profile_path(URI.escape(@user.to_s,'@.')), alert: "
|
116
|
+
redirect_to sufia.profile_path(URI.escape(@user.to_s,'@.')), alert: "Permission denied: cannot access this page." unless @user == current_user
|
88
117
|
end
|
89
118
|
|
90
119
|
def user_not_current_user
|
@@ -14,10 +14,62 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
|
16
16
|
module GenericFileHelper
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
def display_title(gf)
|
18
|
+
title = gf.title.join(' | ')
|
19
|
+
title = gf.label if title.blank?
|
20
|
+
title = 'No Title' if title.blank?
|
21
|
+
title
|
22
|
+
end
|
23
|
+
|
24
|
+
def add_field (key)
|
25
|
+
more_or_less_button(key, 'adder', '+')
|
26
|
+
end
|
27
|
+
|
28
|
+
def subtract_field (key)
|
29
|
+
more_or_less_button(key, 'remover', '-')
|
30
|
+
end
|
31
|
+
|
32
|
+
def help_icon(key)
|
33
|
+
link_to '#', id: "generic_file_#{key.to_s}_help", rel: 'popover',
|
34
|
+
'data-content' => metadata_help(key),
|
35
|
+
'data-original-title' => get_label(key) do
|
36
|
+
content_tag 'i', '', class: "icon-question-sign icon-large"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def metadata_help(key)
|
41
|
+
I18n.t("sufia.metadata_help.#{key}", default: key.to_s.humanize)
|
42
|
+
end
|
43
|
+
|
44
|
+
def get_label(key)
|
45
|
+
I18n.t("sufia.field_label.#{key}", default: key.to_s.humanize)
|
46
|
+
end
|
47
|
+
|
48
|
+
def required?(key)
|
49
|
+
[:title, :creator, :tag, :rights].include?(key)
|
50
|
+
end
|
51
|
+
|
52
|
+
def render_edit_field_partial(key, locals)
|
53
|
+
["generic_files/edit_fields/#{key}", "generic_files/edit_fields/default"].each do |str|
|
54
|
+
# XXX rather than handling this logic through exceptions, maybe there's a Rails internals method
|
55
|
+
# for determining if a partial template exists..
|
56
|
+
begin
|
57
|
+
return render :partial => str, :locals=>locals.merge({key: key})
|
58
|
+
rescue ActionView::MissingTemplate
|
59
|
+
nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def more_or_less_button(key, html_class, symbol)
|
67
|
+
# TODO, there could be more than one element with this id on the page, but the fuctionality doesn't work without it.
|
68
|
+
content_tag('button', class: "#{html_class} btn", id: "additional_#{key}_submit", name: "additional_#{key}") do
|
69
|
+
(symbol +
|
70
|
+
content_tag('span', class: 'accessible-hidden') do
|
71
|
+
"add another #{key.to_s}"
|
72
|
+
end).html_safe
|
73
|
+
end
|
22
74
|
end
|
23
75
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
1
2
|
# Copyright © 2012 The Pennsylvania State University
|
2
3
|
#
|
3
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -12,18 +13,15 @@
|
|
12
13
|
# See the License for the specific language governing permissions and
|
13
14
|
# limitations under the License.
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
module TrophyHelper
|
17
|
+
def display_trophy_link(user, noid)
|
18
|
+
trophyclass = "trophy-off"
|
19
|
+
trophytitle= "Highlight work "
|
20
|
+
if user.trophies.map(&:generic_file_id).include? noid
|
21
|
+
trophyclass = "trophy-on"
|
22
|
+
trophytitle= "Unhighlight work"
|
23
|
+
end
|
20
24
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
protected
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
25
|
+
return link_to raw("<i class='#{trophyclass} icon-trophy icon-large'></i>"),"", :class=> 'trophy-class', :title => trophytitle, :id => noid, :remote=>true # link to trophy
|
26
|
+
end
|
29
27
|
end
|
@@ -13,7 +13,6 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
class GenericFileRdfDatastream < ActiveFedora::NtriplesRDFDatastream
|
16
|
-
register_vocabularies RDF::DC, RDF::FOAF, RDF::RDFS
|
17
16
|
map_predicates do |map|
|
18
17
|
map.part_of(:to => "isPartOf", :in => RDF::DC)
|
19
18
|
map.contributor(:in => RDF::DC) do |index|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class Trophy < ActiveRecord::Base
|
2
|
+
attr_accessible :generic_file_id, :user_id
|
3
|
+
|
4
|
+
validate :count_within_limit, :on => :create
|
5
|
+
|
6
|
+
def count_within_limit
|
7
|
+
if Trophy.where(user_id:self.user_id).count >= 5
|
8
|
+
errors.add(:base, "Exceeded trophy limit")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
@@ -15,7 +15,7 @@ limitations under the License.
|
|
15
15
|
%>
|
16
16
|
<% if current_user %>
|
17
17
|
<%= render :partial => 'users/notify_link' %>
|
18
|
-
<a href="<%= sufia.profile_path(
|
18
|
+
<a href="<%= sufia.profile_path(current_user) %>" class="btn btn-small " title="click for User Profile"><i class="icon-user"> </i><%= current_user.name %></a>
|
19
19
|
<a class="btn btn-small dropdown-toggle" data-toggle="dropdown" href="#"><span class="icon-caret-down" title="click for additional menu options"></span></a>
|
20
20
|
<ul class="dropdown-menu">
|
21
21
|
<li><%= link_to raw('<i class="icon-dashboard"></i> my dashboard'), sufia.dashboard_index_path, :id => 'dashboard_nav_link' %></li>
|
@@ -46,13 +46,13 @@ function confirmExit(){
|
|
46
46
|
<h1>Apply Metadata</h1>
|
47
47
|
<br />
|
48
48
|
<div class="alert">The information you provide for Title will be applied to the corresponding file only; however all other
|
49
|
-
information you provide will be applied <em>to the entire batch of files</em> you have just deposited into
|
49
|
+
information you provide will be applied <em>to the entire batch of files</em> you have just deposited into <%= t('sufia.product_name') %>.
|
50
50
|
You may edit individual files from <%= link_to '<i class="icon-dashboard"></i> my dashboard'.html_safe, sufia.dashboard_index_path %> once
|
51
51
|
this step is finished.
|
52
52
|
</div>
|
53
53
|
<%= form_for([@batch, @generic_file], :url => sufia.batch_generic_files_path, :html => {:multipart => true, :class => 'form-horizontal'}) do |f| %>
|
54
54
|
|
55
|
-
<%= render :partial => 'metadata', :formats => [:html], :locals => {:f => f, :gf => @generic_file} %>
|
55
|
+
<%= render :partial => 'batch_edits/metadata', :formats => [:html], :locals => {:f => f, :gf => @generic_file} %>
|
56
56
|
|
57
57
|
<%= render :partial => 'generic_files/permission', :formats => [:html], :locals => { :gf => @generic_file, :batch => @batch } %>
|
58
58
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%= form_tag(batch_edits_path, :method => :put, :class=> "batch-select-all hidden", "data-behavior" => 'batch-select-all') do -%>
|
2
2
|
<%= hidden_field_tag('update_type', 'delete_all') %>
|
3
|
-
<%= submit_tag("Delete Selected", :class=>'batch-all-button btn btn-primary', :data => { :confirm =>
|
3
|
+
<%= submit_tag("Delete Selected", :class=>'batch-all-button btn btn-primary', :data => { :confirm => "Deleting a file from #{t('sufia.product_name')} is permanent. Click OK to delete this file from #{t('sufia.product_name')}, or Cancel to cancel this operation"}) %>
|
4
4
|
<% end %>
|
5
5
|
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<%= f.label :title, "<span class='error'>*</span> Title #{index+1}".html_safe, :class=>"control-label" %>
|
11
11
|
<div class="controls" id="additional_title_clone">
|
12
12
|
<%= f.text_field :title, :name=>"title[#{gen_f.id}][]", :value=>gen_f.label, :required=> true %>
|
13
|
-
|
13
|
+
<%= help_icon(:title) %>
|
14
14
|
</div>
|
15
15
|
</div>
|
16
16
|
<% end %>
|
@@ -27,11 +27,12 @@
|
|
27
27
|
<h2 class="non lower">Bulk Descriptions <small>(applied to all files just uploaded)</small> <small class="pull-right"><span class="error">*</span> indicates required fields</small></h2>
|
28
28
|
<div class="well">
|
29
29
|
<div class="control-group" id="resources">
|
30
|
-
|
30
|
+
<%# See if this works: render_edit_field_partial(:type, f:f) %>
|
31
|
+
<%= f.label :resource_type, "Resource Types", :class=>"control-label", :for=>"resource_type" %>
|
31
32
|
<div class="controls">
|
32
33
|
<p class="help-block">You may select multiple types to apply to all files<p>
|
33
34
|
<%= f.select "resource_type", Sufia::Engine::config.resource_types, {}, {:multiple=>true, :size=>7} %>
|
34
|
-
|
35
|
+
<%= help_icon(:resource_type) %>
|
35
36
|
</div>
|
36
37
|
</div>
|
37
38
|
|
@@ -41,7 +42,7 @@
|
|
41
42
|
<%= f.text_field :tag, :name=>"generic_file[tag][]", :value=>"", :required=> true %>
|
42
43
|
<button class="adder btn" name="additional_tag" id="additional_tag_submit">+<span class="accessible-hidden">add another Tag</span></button>
|
43
44
|
|
44
|
-
|
45
|
+
<%= help_icon(:tag) %>
|
45
46
|
</div>
|
46
47
|
<div id="additional_tag_elements"></div>
|
47
48
|
</div>
|
@@ -52,7 +53,7 @@
|
|
52
53
|
<%= f.text_field :creator, :name=>"generic_file[creator][]", :value=>"", :required=> true %>
|
53
54
|
<button class="adder btn" name="additional_creator" id="additional_creator_submit">+<span class="accessible-hidden">add another Creator</span></button>
|
54
55
|
|
55
|
-
|
56
|
+
<%= help_icon(:creator) %>
|
56
57
|
</div>
|
57
58
|
<div id="additional_creator_elements"></div>
|
58
59
|
</div>
|
@@ -63,7 +64,7 @@
|
|
63
64
|
<%= f.select "rights", options_for_select(Sufia::Engine::config.cc_licenses, 'http://creativecommons.org/licenses/by-nc-nd/3.0/us/'), :required => true %>
|
64
65
|
<button class="adder btn" name="additional_rights" id="additional_rights_submit">+<span class="accessible-hidden">add another Rights</span></button>
|
65
66
|
|
66
|
-
|
67
|
+
<%= help_icon(:rights) %>
|
67
68
|
<%= render :partial => "generic_files/rights_modal" %>
|
68
69
|
|
69
70
|
</div>
|
@@ -82,7 +83,7 @@
|
|
82
83
|
<%= f.text_field :related_url, :name=>"generic_file[related_url][]", :value=>"" %>
|
83
84
|
<button class="adder btn" name="additional_related_url" id="additional_related_url_submit">+<span class="accessible-hidden">add another Related URL</span></button>
|
84
85
|
|
85
|
-
|
86
|
+
<%= help_icon(:related_url) %>
|
86
87
|
</div>
|
87
88
|
<div id="additional_related_url_elements"></div>
|
88
89
|
</div>
|
@@ -93,7 +94,7 @@
|
|
93
94
|
<%= f.text_field :based_near, :name=>"generic_file[based_near][]", :value=>"" %>
|
94
95
|
<button class="adder btn" name="additional_based_near" id="additional_based_near_submit">+<span class="accessible-hidden">add another Location</span></button>
|
95
96
|
|
96
|
-
|
97
|
+
<%= help_icon(:based_near) %>
|
97
98
|
</div>
|
98
99
|
<div id="additional_based_near_elements"></div>
|
99
100
|
</div>
|
@@ -104,7 +105,7 @@
|
|
104
105
|
<%= f.text_field :contributor, :name=>"generic_file[contributor][]", :value=>gf.contributor[0] %>
|
105
106
|
<button class="adder btn" name="additional_contributor" id="additional_contributor_submit">+<span class="accessible-hidden">add another Contributor</span></button>
|
106
107
|
|
107
|
-
|
108
|
+
<%= help_icon(:contributor) %>
|
108
109
|
</div>
|
109
110
|
<div id="additional_contributor_elements"></div>
|
110
111
|
</div>
|
@@ -115,7 +116,7 @@
|
|
115
116
|
<%= f.text_field :date_created, :name=>"generic_file[date_created][]", :value=>"" %>
|
116
117
|
<button class="adder btn" name="additional_date_created" id="additional_date_created_submit">+<span class="accessible-hidden">add another Date Created</span></button>
|
117
118
|
|
118
|
-
|
119
|
+
<%= help_icon(:date_created) %>
|
119
120
|
</div>
|
120
121
|
<div id="additional_date_created_elements"></div>
|
121
122
|
</div>
|
@@ -126,7 +127,7 @@
|
|
126
127
|
<%= f.text_area :description, :name=>"generic_file[description][]", :value=>"" %>
|
127
128
|
<button class="adder btn" name="additional_description" id="additional_description_submit">+<span class="accessible-hidden">add another Abstract or Summary</span></button>
|
128
129
|
|
129
|
-
|
130
|
+
<%= help_icon(:description) %>
|
130
131
|
</div>
|
131
132
|
<div id="additional_description_elements"></div>
|
132
133
|
</div>
|
@@ -137,7 +138,7 @@
|
|
137
138
|
<%= f.text_field :identifier, :name=>"generic_file[identifier][]", :value=>"" %>
|
138
139
|
<button class="adder btn" name="additional_identifier" id="additional_identifier_submit">+<span class="accessible-hidden">add another Identifier</span></button>
|
139
140
|
|
140
|
-
|
141
|
+
<%= help_icon(:identifier) %>
|
141
142
|
</div>
|
142
143
|
<div id="additional_identifier_elements"></div>
|
143
144
|
</div>
|
@@ -148,7 +149,7 @@
|
|
148
149
|
<%= f.text_field :language, :name=>"generic_file[language][]", :value=>"" %>
|
149
150
|
<button class="adder btn" name="additional_language" id="additional_language_submit">+<span class="accessible-hidden">add another Language</span></button>
|
150
151
|
|
151
|
-
|
152
|
+
<%= help_icon(:language) %>
|
152
153
|
</div>
|
153
154
|
<div id="additional_language_elements"></div>
|
154
155
|
</div>
|
@@ -159,7 +160,7 @@
|
|
159
160
|
<%= f.text_field :publisher, :name=>"generic_file[publisher][]", :value=>"" %>
|
160
161
|
<button class="adder btn" name="additional_publisher" id="additional_publisher_submit">+<span class="accessible-hidden">add another Publisher</span></button>
|
161
162
|
|
162
|
-
|
163
|
+
<%= help_icon(:publisher) %>
|
163
164
|
</div>
|
164
165
|
<div id="additional_publisher_elements"></div>
|
165
166
|
</div>
|
@@ -170,7 +171,7 @@
|
|
170
171
|
<%= f.text_field :subject, :name=>"generic_file[subject][]", :value=>"" %>
|
171
172
|
<button class="adder btn" name="additional_subject" id="additional_subject_submit">+<span class="accessible-hidden">add another Subject</span></button>
|
172
173
|
|
173
|
-
|
174
|
+
<%= help_icon(:subject) %>
|
174
175
|
</div>
|
175
176
|
<div id="additional_subject_elements"></div>
|
176
177
|
</div>
|