sufia 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -4
  3. data/SUFIA_VERSION +1 -1
  4. data/app/assets/javascripts/sufia.js +1 -9
  5. data/app/assets/javascripts/sufia/batch_edit.js +3 -3
  6. data/app/assets/javascripts/sufia/multiForm.js +4 -2
  7. data/app/assets/javascripts/sufia/{single_use_link.js → single_use_link.js.erb} +1 -1
  8. data/app/assets/javascripts/sufia/tagcloud.js +12 -0
  9. data/app/assets/stylesheets/sufia.css.scss +3 -12
  10. data/app/assets/stylesheets/{batch-edit.css.scss → sufia/_batch-edit.scss} +0 -0
  11. data/app/assets/stylesheets/sufia/_buttons.scss +8 -0
  12. data/app/assets/stylesheets/{catalog.css.scss → sufia/_catalog.scss} +0 -0
  13. data/app/assets/stylesheets/{collections.css.scss → sufia/_collections.scss} +0 -0
  14. data/app/assets/stylesheets/sufia/_dashboard.scss +112 -0
  15. data/app/assets/stylesheets/{featured.css.scss → sufia/_featured.scss} +0 -0
  16. data/app/assets/stylesheets/{file-listing.css.scss → sufia/_file-listing.scss} +0 -0
  17. data/app/assets/stylesheets/{header.css.scss → sufia/_header.scss} +0 -0
  18. data/app/assets/stylesheets/{home-page.css.scss → sufia/_home-page.scss} +0 -0
  19. data/app/assets/stylesheets/sufia/_settings.scss +37 -0
  20. data/app/assets/stylesheets/{styles.css.scss → sufia/_styles.scss} +1 -1
  21. data/app/assets/stylesheets/{tagcloud.css → sufia/_tagcloud.scss} +0 -0
  22. data/app/assets/stylesheets/{usage-stats.css → sufia/_usage-stats.scss} +0 -0
  23. data/app/controllers/concerns/sufia/controller.rb +1 -1
  24. data/app/controllers/concerns/sufia/dashboard_controller_behavior.rb +1 -1
  25. data/app/helpers/sufia/records_helper_behavior.rb +13 -7
  26. data/app/views/batch/_metadata.html.erb +3 -3
  27. data/app/views/collections/_form_for_select_collection.html.erb +7 -7
  28. data/app/views/dashboard/_index_partials/_contents.html.erb +10 -6
  29. data/app/views/dashboard/_index_partials/_heading_actions.html.erb +16 -8
  30. data/app/views/dashboard/_index_partials/_heading_greetings.html.erb +3 -3
  31. data/app/views/dashboard/_index_partials/_stats.html.erb +22 -20
  32. data/app/views/dashboard/_index_partials/_user_info.html.erb +15 -15
  33. data/app/views/dashboard/index.html.erb +6 -10
  34. data/app/views/error/401.html.erb +1 -1
  35. data/app/views/error/404.html.erb +1 -1
  36. data/app/views/error/single_use_error.html.erb +1 -1
  37. data/app/views/generic_files/_permission_form.html.erb +2 -2
  38. data/app/views/homepage/_home_content.html.erb +3 -3
  39. data/app/views/layouts/error.html.erb +1 -1
  40. data/app/views/layouts/homepage.html.erb +1 -1
  41. data/app/views/layouts/sufia-dashboard.html.erb +9 -11
  42. data/app/views/layouts/sufia-one-column.html.erb +1 -1
  43. data/app/views/layouts/sufia-two-column.html.erb +1 -1
  44. data/app/views/mailbox/_notifications.html.erb +5 -4
  45. data/app/views/my/_facets.html.erb +1 -1
  46. data/config/locales/sufia.en.yml +24 -1
  47. data/fedora_conf/conf/development/fedora.fcfg +1 -1
  48. data/fedora_conf/conf/test/fedora.fcfg +1 -1
  49. data/lib/sufia.rb +4 -0
  50. data/lib/sufia/version.rb +1 -1
  51. data/spec/controllers/downloads_controller_spec.rb +1 -1
  52. data/spec/controllers/my/files_controller_spec.rb +26 -5
  53. data/spec/helpers/records_helper_spec.rb +2 -2
  54. data/spec/jobs/import_url_job_spec.rb +5 -2
  55. data/spec/models/file_usage_spec.rb +53 -1
  56. data/spec/views/dashboard/index_spec.rb +8 -8
  57. data/sufia-models/app/actors/sufia/generic_file/actor.rb +8 -1
  58. data/sufia-models/app/jobs/import_url_job.rb +1 -1
  59. data/sufia-models/app/models/concerns/sufia/generic_file/audit.rb +16 -12
  60. data/sufia-models/app/models/file_usage.rb +4 -2
  61. data/sufia-models/lib/generators/sufia/models/install_generator.rb +1 -0
  62. data/sufia-models/lib/generators/sufia/models/templates/config/resque-pool.yml +1 -0
  63. data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +8 -0
  64. data/sufia-models/lib/sufia/models/engine.rb +4 -0
  65. data/sufia-models/lib/sufia/models/version.rb +1 -1
  66. data/tasks/sufia-dev.rake +1 -0
  67. metadata +20 -16
  68. data/app/assets/stylesheets/settings.css.scss +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e25d6a2061799097aceb639c5c6a2cb2b441a9d
4
- data.tar.gz: b85a69100f5df8ab5e5feaebcdd13b1e1d128e4c
3
+ metadata.gz: 94cde4a9af3ac74adc4d40c93d00ac09089e722a
4
+ data.tar.gz: b7e76559cbb876f120f28298fa5c5da6066d7f45
5
5
  SHA512:
6
- metadata.gz: 71e4fd203970d9dac7cacdba50650a85dced73234304f8f413ce27efc27d3795a0ec2b3b9e4a113209dc75bb5f5ba497ff2371d02e6764b820a6f1e86be2482a
7
- data.tar.gz: 1100a5c6297ee9bf8a00fef6a7c7cc8d8adc18007521f3b0286041e1297af65e567b4332c32301144bd4ca14f4234723c4d092919baa128f7a21f95db83a4c21
6
+ metadata.gz: 48198ddc422d252123001f9298356fcd40a73c9417edc4df8852cfc1fa3beafb12c16422a5e7958e9918f9977e85fd1b00418864d585dda20337fb12ed8a84ad
7
+ data.tar.gz: b9c83e7291e8a25a7621d884bb69ae3b8efd849b21a9318c292e43fc6d13b30c4d3c0a8c368670a1b0f9e4d8a23e62557c621f78eb4dc107f06fff2db6bebacb
data/README.md CHANGED
@@ -57,16 +57,19 @@ We'd love to accept your contributions. Please see our guide to [contributing t
57
57
  If you have questions or need help, please email [the Hydra community development list](mailto:hydra-tech@googlegroups.com).
58
58
 
59
59
  ## Creating an application
60
+
60
61
  ### Generate base Rails install
62
+
61
63
  ```rails new my_app```
64
+
62
65
  ### Add gems to Gemfile
66
+
63
67
  ```
64
- gem 'sufia'
68
+ gem 'sufia', '~> 4.0.0'
65
69
  gem 'kaminari', github: 'harai/kaminari', branch: 'route_prefix_prototype' # required to handle pagination properly in dashboard. See https://github.com/amatsuda/kaminari/pull/322
66
70
  ```
67
- Then `bundle install`
68
71
 
69
- Note the line with kaminari listed as a dependency. This is a temporary fix to address a problem in the current release of kaminari. Technically you should not have to list kaminari, which is a dependency of blacklight and sufia.
72
+ Then `bundle install`
70
73
 
71
74
  ### Run the sufia generator
72
75
  ```
@@ -112,6 +115,30 @@ Add this line at the bottom of the file:
112
115
 
113
116
  Turbolinks does not mix well with Blacklight.
114
117
 
118
+ ### Install Notes
119
+
120
+ #### Kaminari
121
+
122
+ The line with kaminari listed as a dependency in Gemfile is a temporary fix to address a
123
+ [problem](https://github.com/amatsuda/kaminari/pull/322) in the current release of kaminari.
124
+ Technically you should not have to list kaminari, which is a dependency of blacklight and sufia.
125
+
126
+ #### Bundler
127
+
128
+ Users have reported problems with the initial `bundle install` command, seeing an error such as:
129
+
130
+ ```
131
+ Bundler could not find compatible versions for gem "bootstrap-sass":
132
+ In Gemfile:
133
+ sufia (~> 4.0.0) ruby depends on
134
+ bootstrap-sass (< 3.2) ruby
135
+
136
+ sufia (~> 4.0.0) ruby depends on
137
+ bootstrap-sass (3.2.0.2)
138
+ ```
139
+
140
+ The solution is to update your bundler gem to the latest version.
141
+
115
142
  ### Analytics
116
143
 
117
144
  Sufia provides support for capturing usage information via Google Analytics and for displaying usage stats in the UI.
@@ -184,7 +211,7 @@ config.browse_everything = BrowseEverything.config
184
211
  * OR
185
212
  1. By adding/changing config/initializers/sufia.rb to point to your fits location: `config.fits_path = "/<your full path>/fits.sh"`
186
213
  1. You may additionally need to chmod the fits.sh (chmod a+x fits.sh)
187
- 1. You may need to restart your shell to pick up the changes to you path
214
+ 1. You may need to restart your shell to pick up the changes to your path
188
215
  1. You should be able to run "fits.sh" from the command line and see a help message
189
216
 
190
217
  ### Start background workers
@@ -1 +1 @@
1
- 4.0.0
1
+ 4.0.1
@@ -48,6 +48,7 @@
48
48
  //= require hydra_collections
49
49
  //= require browse_everything
50
50
  //= require jquery.blacklightTagCloud
51
+ //= require sufia/tagcloud
51
52
  //= require nestable
52
53
 
53
54
  // this needs to be after batch_select so that the form ids get setup correctly
@@ -100,15 +101,6 @@ Blacklight.onLoad(function() {
100
101
 
101
102
  $("a[rel=popover]").click(function() { return false;});
102
103
 
103
- /*
104
- * Tag cloud(s)
105
- */
106
- $(".tagcloud").blacklightTagCloud({
107
- size: {start: 0.9, end: 2.5, unit: 'em'},
108
- cssHooks: {granularity: 15},
109
- color: {start: '#0F0', end: '#F00'}
110
- });
111
-
112
104
 
113
105
  /*
114
106
  * facets lists
@@ -39,7 +39,7 @@ function batch_edit_init () {
39
39
  requests.splice($.inArray(opt, requests), 1);
40
40
  },
41
41
  runNow: function () {
42
- clearTimeout(self.tid);
42
+ clearTimeout(this.tid);
43
43
  if (!running) {
44
44
  this.run();
45
45
  }
@@ -104,7 +104,7 @@ function batch_edit_init () {
104
104
  function after_ajax(form_id) {
105
105
  var key = form_id.replace("form_", "");
106
106
  var save_button = "#" + key + "_save";
107
- var outer_div = "#collapse_" + key;
107
+ var outer_div = "#detail_" + key;
108
108
  $("#status_" + key).html("Changes Saved");
109
109
  $(save_button).removeAttr("disabled");
110
110
  $(outer_div).removeClass("loading");
@@ -114,7 +114,7 @@ function batch_edit_init () {
114
114
  function before_ajax(form_id) {
115
115
  var key = form_id.replace("form_", "");
116
116
  var save_button = "#" + key + "_save";
117
- var outer_div = "#collapse_" + key;
117
+ var outer_div = "#detail_" + key;
118
118
  $(save_button).attr("disabled", "disabled");
119
119
  $(outer_div).addClass("loading");
120
120
  $('#' + form_id).children([".form-group"]).addClass('hidden')
@@ -12,13 +12,15 @@
12
12
  var cloneElem = $('#'+cloneId).clone();
13
13
  // change the add button to a remove button
14
14
  var plusbttn = cloneElem.find('#'+this.id);
15
- plusbttn.html('-<span class="sr-only">remove this '+ this.name.replace("_", " ") +'</span>');
15
+ var sr_hidden = '<span aria-hidden="true"><i class="glyphicon glyphicon-remove"></i></span>';
16
+ var sr_only = '<span class="sr-only">remove this ' + this.name.replace("_", " ") + '</span>';
17
+ var remove_button = sr_hidden + sr_only;
18
+ plusbttn.html(remove_button);
16
19
  plusbttn.on('click',removeField);
17
20
 
18
21
 
19
22
  // remove the help tag on subsequent added fields
20
23
  cloneElem.find('.formHelp').remove();
21
- cloneElem.find('i').remove();
22
24
  cloneElem.find('.modal-div').remove();
23
25
 
24
26
  //clear out the value for the element being appended
@@ -10,7 +10,7 @@ function getSingleUse(id) {
10
10
  }
11
11
 
12
12
  Blacklight.onLoad(function() {
13
- ZeroClipboard.setDefaults({ moviePath: "/assets/ZeroClipboard.swf" });
13
+ ZeroClipboard.setDefaults({ moviePath: "<%= asset_path 'ZeroClipboard.swf' %>" });
14
14
  $.each($(".copypaste"), function(idx, item) {
15
15
  var clip = new ZeroClipboard();
16
16
  clip.on("dataRequested", function(client, args) {
@@ -0,0 +1,12 @@
1
+ Blacklight.onLoad(function () {
2
+ /*
3
+ * Tag cloud(s)
4
+ */
5
+ $(".tagcloud").blacklightTagCloud({
6
+ size: {start: 0.9, end: 2.5, unit: 'em'},
7
+ cssHooks: {granularity: 15},
8
+ color: {start: '#0F0', end: '#F00'}
9
+ });
10
+
11
+
12
+ });
@@ -4,12 +4,7 @@
4
4
  *= require video-js
5
5
  *= require jquery-ui
6
6
  *= require sufia-audio-overrides
7
- *= require home-page
8
- *= require tagcloud
9
- *= require featured
10
- *= require usage-stats
11
7
  *= require nestable
12
- *= require catalog
13
8
  */
14
9
 
15
10
  @import 'bootstrap';
@@ -18,12 +13,8 @@
18
13
 
19
14
  // Use import here instead of require so we can use the Sass variables defined in Bootstrap and Blacklight
20
15
  // TODO: Probably should use import throughout and move all of Sufia's stylesheets into a single named directory.
21
- @import 'settings';
22
- @import 'header';
23
- @import 'styles';
24
- @import 'file-listing';
25
- @import 'collections';
26
- @import 'batch-edit';
16
+ @import 'sufia/settings','sufia/header','sufia/styles','sufia/file-listing','sufia/collections','sufia/batch-edit',
17
+ 'sufia/dashboard','sufia/home-page','sufia/featured','sufia/tagcloud','sufia/usage-stats','sufia/catalog','sufia/buttons';
27
18
 
28
19
  #browse-everything {
29
20
  top:10%;
@@ -57,4 +48,4 @@
57
48
 
58
49
  .button_to-inline {
59
50
  display: inline-block;
60
- }
51
+ }
@@ -0,0 +1,8 @@
1
+ .btn-raised {
2
+ box-shadow: 1px 2px 2px 0 rgba(0, 0, 0, 0.15);
3
+ }
4
+
5
+ .btn-raised:active {
6
+ box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.1);
7
+ transition-delay: 0s;
8
+ }
@@ -0,0 +1,112 @@
1
+ .dashboard {
2
+ background-color: $content-wrapper-background-color;
3
+ padding-bottom: 2em;
4
+ #content-header {
5
+ padding-top: 0;
6
+ }
7
+ #content {
8
+ padding-top: 1em;
9
+ }
10
+ h1 {
11
+ font-size: 1.65em;
12
+ }
13
+ h2 {
14
+ font-size: 1.35em;
15
+ padding-top: .15em;
16
+ }
17
+ .badge {
18
+ background-color: $badge-background-color;
19
+ color: $badge-font-color;
20
+ }
21
+ .panel-default > .panel-heading {
22
+ background-color: $panel-background-color;
23
+ }
24
+ .panel-default > .dashboard-panel {
25
+ background-color: $panel-dashboard-background-color;
26
+ color: $panel-dashboard-font-color;
27
+ }
28
+ .user-info {
29
+ padding-left: 0;
30
+ word-break: break-word;
31
+ }
32
+ .sort-toggle, #documents, .batch-toggle {
33
+ border-left: 1px solid $dashboard-border-color;
34
+ border-right: 1px solid $dashboard-border-color;
35
+ }
36
+ }
37
+
38
+ .heading-tile {
39
+ border: none;
40
+ }
41
+ .heading-row {
42
+ border: none;
43
+ }
44
+
45
+ #content-header .heading-row:nth-child(2) {
46
+ padding-top: .5em;
47
+ a:link, a:visited {
48
+ color: $icon-link-color;
49
+ }
50
+ a:hover {
51
+ color: $icon-link-hover-color;
52
+ text-decoration: none;
53
+ }
54
+ }
55
+
56
+ div.heading-tile .glyphicon {
57
+ background: $icon-background-color;
58
+ color: $icon-font-color;
59
+ display: block;
60
+ width: 2em;
61
+ height: 2em;
62
+ line-height: 1.75em;
63
+ margin: 0 auto;
64
+ border-radius: 50%;
65
+ border: 2px solid $icon-border-color;
66
+ overflow: hidden;
67
+ }
68
+
69
+ .proxy-search h3 {
70
+ margin-bottom: 20px;
71
+ }
72
+
73
+ .batch-info, #documents {
74
+ background-color: $dashboard-background-color;
75
+ }
76
+
77
+ #my_nav {
78
+ margin-bottom: 0;
79
+ }
80
+
81
+ .sort-toggle, .batch-toggle {
82
+ padding: 1.5em 0 1.5em 1em;
83
+ }
84
+
85
+ #footer {
86
+ margin-top: 0;
87
+ }
88
+
89
+ .transfer_link {
90
+ margin-top: 8px;
91
+ }
92
+
93
+ // making sure the tables that still exist in the system do not overflow thier bounds
94
+ #notifications_table {
95
+ table-layout:fixed;
96
+ column-width: auto;
97
+ word-wrap:break-word
98
+ }
99
+ #notifications_table th:nth-child(1){
100
+ width: 10%
101
+ }
102
+ #notifications_table th:nth-child(2){
103
+ width: 20%
104
+ }
105
+ #notifications_table th:nth-child(3){
106
+ width: 60%
107
+ }
108
+
109
+ #activity .panel-body{
110
+ overflow: scroll;
111
+ max-height: 20em;
112
+ }
@@ -0,0 +1,37 @@
1
+ // Settings
2
+ //
3
+ // Variables, colors, etc. that are used in Sufia.
4
+ // Some are unique or override other variables from Bootstrap.
5
+
6
+ $basic-black: #000;
7
+ $blue-dark: #036;
8
+ $blue-medium: #1C5798;
9
+ $blue-medium-bright: #2674CA;
10
+ $brown-dark: #7D5D55;
11
+ $brown-medium-dark: #A78352;
12
+ $brown-medium: #B89972;
13
+ $brown-light: #D2B48C;
14
+ $classic-white: #FFF;
15
+ $cream-light: #FCFBF7;
16
+ $gray-dark: #333;
17
+ $gray-medium: #CECDCD;
18
+ $gray-light: #DDD;
19
+ $gray-lighter: #E1E1E1;
20
+ $gray-lightish: #bbb;
21
+ $highlight-yellow: #F0CA00;
22
+ $teal: #2CAEB7;
23
+ $vermilion: #F30;
24
+
25
+ $badge-background-color: $highlight-yellow;
26
+ $badge-font-color: $classic-white;
27
+ $content-wrapper-background-color: $cream-light;
28
+ $dashboard-background-color: $classic-white;
29
+ $dashboard-border-color: $gray-light;
30
+ $icon-background-color: $vermilion;
31
+ $icon-border-color: $classic-white;
32
+ $icon-font-color: $classic-white;
33
+ $icon-link-color: $basic-black;
34
+ $icon-link-hover-color: $blue-medium-bright;
35
+ $panel-background-color: $classic-white;
36
+ $panel-dashboard-background-color: $teal;
37
+ $panel-dashboard-font-color: $classic-white;
@@ -1,6 +1,6 @@
1
1
  body {
2
2
  margin: 0;
3
- padding: 0;
3
+ padding: 0 !important;
4
4
  }
5
5
 
6
6
  #wrapper {
@@ -37,7 +37,7 @@ module Sufia::Controller
37
37
  return if action_name == "index" && controller_name == "mailbox"
38
38
  if user_signed_in?
39
39
  @notify_number = current_user.mailbox.inbox(unread: true).count
40
- @batches = current_user.mailbox.inbox.map { |msg| msg.last_message.body[/<span class="batchid ui-helper-hidden">(.*)<\/span>The file(.*)/,1] }.select{ |val| !val.blank? }
40
+ @batches = current_user.mailbox.inbox.map { |msg| msg.last_message.body[/<span id="(.*)"><a (href=|data-content=)(.*)/,1] }.select{ |val| !val.blank? }
41
41
  end
42
42
  end
43
43
 
@@ -32,7 +32,7 @@ module Sufia
32
32
  # in your dashboard view. You'll need to alter dashboard/index.html.erb accordingly.
33
33
  def gather_dashboard_information
34
34
  @user = current_user
35
- @activity = current_user.get_all_user_activity(params[:since].blank? ? DateTime.now.to_i - 8640 : params[:since].to_i)
35
+ @activity = current_user.get_all_user_activity(params[:since].blank? ? DateTime.now.to_i - Sufia.config.activity_to_show_default_seconds_since_now : params[:since].to_i)
36
36
  @notifications = current_user.mailbox.inbox
37
37
  end
38
38
 
@@ -41,16 +41,22 @@ module Sufia
41
41
  private
42
42
 
43
43
  def more_or_less_button(key, html_class, symbol)
44
- # TODO, there could be more than one element with this id on the page, but the fuctionality doesn't work without it.
45
- content_tag('button', class: "#{html_class} btn", id: "additional_#{key}_submit", name: "additional_#{key}") do
46
- (sr_hidden(symbol) + content_tag('span', class: 'sr-only') do
47
- "add another #{key.to_s}"
48
- end).html_safe
44
+ icon = (symbol == "-") ? "remove" : "plus"
45
+ content_tag "button", class: "#{html_class} btn", id: "additional_#{key}_submit", name: "additional_#{key}" do
46
+ sr_hidden(icon) + sr_only(key.to_s)
49
47
  end
50
48
  end
51
49
 
52
- def sr_hidden text
53
- content_tag :span, text, "aria-hidden" => true
50
+ def sr_hidden icon
51
+ content_tag "span", "aria-hidden" => true do
52
+ content_tag "i", "", class: "glyphicon glyphicon-#{icon}"
53
+ end
54
+ end
55
+
56
+ def sr_only text
57
+ content_tag "span", class: "sr-only" do
58
+ "add another #{text}"
59
+ end
54
60
  end
55
61
 
56
62
  def default_aria_label text
@@ -39,7 +39,7 @@
39
39
  <%= help_icon(:tag) %>
40
40
  <div id="additional_tag_clone">
41
41
  <%= f.text_field :tag, name: "generic_file[tag][]", value: "", required: true %>
42
- <button class="adder btn" name="additional_tag" id="additional_tag_submit"><span aria-hidden="true">+</span><span class="sr-only">add another Keyword</span></button>
42
+ <button class="adder btn" name="additional_tag" id="additional_tag_submit"><span aria-hidden="true"><i class="glyphicon glyphicon-plus"></i></span><span class="sr-only"><%= t('sufia.batch.metadata.add_another_keyword') %></span></button>
43
43
  </div>
44
44
  <div id="additional_tag_elements"></div>
45
45
  </div>
@@ -49,7 +49,7 @@
49
49
  <%= help_icon(:creator) %>
50
50
  <div id="additional_creator_clone">
51
51
  <%= f.text_field :creator, name: "generic_file[creator][]", value: "", required: true %>
52
- <button class="adder btn" name="additional_creator" id="additional_creator_submit"><span aria-hidden="true">+</span><span class="sr-only">add another Creator</span></button>
52
+ <button class="adder btn" name="additional_creator" id="additional_creator_submit"><span aria-hidden="true"><i class="glyphicon glyphicon-plus"></i></span><span class="sr-only"><%= t('sufia.batch.metadata.add_another_creator') %></span></button>
53
53
  </div>
54
54
  <div id="additional_creator_elements"></div>
55
55
  </div>
@@ -59,7 +59,7 @@
59
59
  <%= help_icon_modal('rightsModal') %>
60
60
  <div id="additional_rights_clone">
61
61
  <%= f.select "rights", options_for_select(Sufia::Engine::config.cc_licenses, 'http://creativecommons.org/licenses/by-nc-nd/3.0/us/'), required: true %>
62
- <button class="adder btn" name="additional_rights" id="additional_rights_submit"><span aria-hidden="true">+</span><span class="sr-only">add another Rights</span></button>
62
+ <button class="adder btn" name="additional_rights" id="additional_rights_submit"><span aria-hidden="true"><i class="glyphicon glyphicon-plus"></i></span><span class="sr-only"><%= t('sufia.batch.metadata.add_another_rights') %></span></button>
63
63
  <%= render partial: "generic_files/rights_modal" %>
64
64
  </div>
65
65
  <div id="additional_rights_elements"></div>