sufia 6.0.0.rc3 → 6.0.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -3
- data/README.md +2 -18
- data/SUFIA_VERSION +1 -1
- data/app/assets/javascripts/sufia.js +1 -0
- data/app/assets/javascripts/sufia/featured_researcher.js +14 -0
- data/app/assets/javascripts/sufia/user_search.js +5 -2
- data/app/assets/stylesheets/sufia/_buttons.scss +68 -8
- data/app/assets/stylesheets/sufia/_dashboard.scss +20 -2
- data/app/assets/stylesheets/sufia/_featured.scss +4 -0
- data/app/assets/stylesheets/sufia/_file-listing.scss +4 -0
- data/app/assets/stylesheets/sufia/_header.scss +31 -35
- data/app/assets/stylesheets/sufia/_settings.scss +40 -3
- data/app/assets/stylesheets/sufia/_styles.scss +2 -14
- data/app/controllers/batch_controller.rb +1 -44
- data/app/controllers/concerns/sufia/batch_controller_behavior.rb +55 -0
- data/app/controllers/concerns/sufia/files_controller_behavior.rb +7 -3
- data/app/controllers/concerns/sufia/single_use_links_controller_behavior.rb +51 -0
- data/app/controllers/concerns/sufia/single_use_links_viewer_controller_behavior.rb +58 -0
- data/app/controllers/content_blocks_controller.rb +10 -1
- data/app/controllers/single_use_links_controller.rb +2 -41
- data/app/controllers/single_use_links_viewer_controller.rb +1 -50
- data/app/helpers/content_block_helper.rb +5 -1
- data/app/views/batch/edit.html.erb +1 -1
- data/app/views/batch_edits/_delete_selected.html.erb +2 -2
- data/app/views/collections/_sort_and_per_page.html.erb +1 -1
- data/app/views/content_blocks/_featured_researcher.html.erb +3 -0
- data/app/views/content_blocks/index.html.erb +7 -0
- data/app/views/dashboard/_index_partials/_user_info.html.erb +2 -2
- data/app/views/generic_files/_permission.html.erb +1 -1
- data/app/views/generic_files/show.html.erb +1 -1
- data/app/views/generic_files/upload/_form_fields.html.erb +3 -3
- data/app/views/homepage/_featured_researcher.html.erb +1 -0
- data/app/views/my/_sort_and_per_page.html.erb +1 -1
- data/config/routes.rb +1 -0
- data/lib/generators/sufia/install_generator.rb +16 -0
- data/lib/sufia/version.rb +1 -1
- data/spec/controllers/content_blocks_controller_spec.rb +14 -0
- data/spec/jobs/sufia_resque_queue_spec.rb +49 -0
- data/spec/models/ability_spec.rb +3 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -10
- data/spec/views/dashboard/index_spec.rb +2 -2
- data/spec/views/generic_file/show.html.erb_spec.rb +14 -2
- data/sufia-models/app/models/concerns/sufia/ability.rb +1 -0
- data/sufia-models/lib/generators/sufia/models/install_generator.rb +5 -10
- data/sufia-models/lib/sufia/models/resque.rb +8 -0
- data/sufia-models/lib/sufia/models/version.rb +1 -1
- metadata +13 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e0e2744f7b799d2b4a2d090e260e66c6ed2cc5d
|
4
|
+
data.tar.gz: 142e115791a129a7b013773cd20993909f4e3f86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15e992259c723cf8cd267b89e1a3a1008650a009165cf8490d0cdb7c86bd577e6db0c298e7b7ea99301af325a7f76925e4339724ee015c2fda6c1457ba51b2c2
|
7
|
+
data.tar.gz: 12b7cbf716a772af91f4740064cf148f6aac7726d4d6ac3f5fdb4d01aad12f30c378bd4393834f55d0f63e9407755a3395a26ba6f1b82b412ae6d468c68da849
|
data/Gemfile
CHANGED
@@ -20,10 +20,10 @@ if File.exists?(file)
|
|
20
20
|
else
|
21
21
|
gem 'rails', ENV['RAILS_VERSION'] if ENV['RAILS_VERSION']
|
22
22
|
|
23
|
-
if ENV['RAILS_VERSION'] and ENV['RAILS_VERSION']
|
23
|
+
if ENV['RAILS_VERSION'] and ENV['RAILS_VERSION'] !~ /^4.2/
|
24
|
+
gem 'sass-rails', "< 5.0"
|
25
|
+
else
|
24
26
|
gem 'responders', "~> 2.0"
|
25
27
|
gem 'sass-rails', ">= 5.0"
|
26
|
-
else
|
27
|
-
gem 'sass-rails', "< 5.0"
|
28
28
|
end
|
29
29
|
end
|
data/README.md
CHANGED
@@ -96,28 +96,12 @@ rake jetty:start
|
|
96
96
|
### To use the CSS and JavaScript and other assets that ship with Sufia...
|
97
97
|
|
98
98
|
#### Modify app/assets/stylesheets/application.css
|
99
|
-
|
100
|
-
```
|
101
|
-
*= require sufia
|
102
|
-
```
|
103
|
-
**Remove** this line:
|
104
|
-
```*= require_tree .```
|
105
|
-
|
106
|
-
_Removing the require_tree from application.css will ensure you're not loading the blacklight.css. This is because blacklight's css styling does not mix well with sufia's default styling._
|
107
|
-
|
108
|
-
#### Modify app/assets/javascripts/application.js
|
109
|
-
|
110
|
-
Add this line at the bottom of the file:
|
111
|
-
```
|
112
|
-
//= require sufia
|
113
|
-
```
|
114
|
-
|
115
|
-
**Remove** this line, if present (typically, when using Rails 4):
|
99
|
+
**Remove** this line, if present:
|
116
100
|
```
|
117
101
|
//= require turbolinks
|
118
102
|
```
|
119
103
|
|
120
|
-
Turbolinks
|
104
|
+
Turbolinks causes the TinyMCE editor to not load.
|
121
105
|
|
122
106
|
### Install Notes
|
123
107
|
|
data/SUFIA_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
6.0.0.
|
1
|
+
6.0.0.rc4
|
@@ -0,0 +1,14 @@
|
|
1
|
+
|
2
|
+
// The selector for the User field (external_key field) on the
|
3
|
+
// featured researcher form
|
4
|
+
|
5
|
+
(function( $ ){
|
6
|
+
$.fn.userSelector = function( options ) {
|
7
|
+
$(".select2-user").userSearch();
|
8
|
+
};
|
9
|
+
})( jQuery );
|
10
|
+
|
11
|
+
Blacklight.onLoad(function() {
|
12
|
+
$('.select2-user').userSelector();
|
13
|
+
});
|
14
|
+
|
@@ -8,9 +8,12 @@
|
|
8
8
|
|
9
9
|
return this.each(function() {
|
10
10
|
$(this).select2( {
|
11
|
-
placeholder: "Search for a user",
|
11
|
+
placeholder: $(this).attr('value') || "Search for a user",
|
12
12
|
minimumInputLength: 2,
|
13
|
-
initSelection: function(element, callback) {
|
13
|
+
initSelection : function (element, callback) {
|
14
|
+
var data = {id: element.val(), text: element.val()};
|
15
|
+
callback(data);
|
16
|
+
},
|
14
17
|
ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
|
15
18
|
url: "/users.json",
|
16
19
|
dataType: 'json',
|
@@ -1,13 +1,73 @@
|
|
1
|
-
.
|
2
|
-
|
1
|
+
.action-button {
|
2
|
+
padding-top: 1em;
|
3
|
+
padding-bottom: 1em;
|
3
4
|
}
|
4
5
|
|
5
|
-
.
|
6
|
-
|
7
|
-
transition-delay: 0s;
|
6
|
+
.multi_value .listing .input-group {
|
7
|
+
margin-bottom: .35em;
|
8
8
|
}
|
9
9
|
|
10
|
-
.
|
11
|
-
|
12
|
-
|
10
|
+
.input-group-btn:last-child > .btn {
|
11
|
+
margin-left: 0;
|
12
|
+
}
|
13
|
+
|
14
|
+
ul.listing .add, ul.listing .remove {
|
15
|
+
width: 7em;
|
16
|
+
text-align: center;
|
17
|
+
}
|
18
|
+
|
19
|
+
.add, .btn-primary {
|
20
|
+
background-color: $add-background-color;
|
21
|
+
border-color: $add-border-color;
|
22
|
+
color: $add-text-color;
|
23
|
+
}
|
24
|
+
.add:hover, .add:focus,
|
25
|
+
.btn-primary:hover, .btn-primary:focus {
|
26
|
+
background-color: $add-background-hover;
|
27
|
+
border-color: $add-border-color;
|
28
|
+
color: $add-text-hover;
|
29
|
+
}
|
30
|
+
|
31
|
+
#search-form-header {
|
32
|
+
.btn-primary:hover, .btn-primary:focus {
|
33
|
+
background-color: $gray-light !important;
|
34
|
+
color: $basic-black;
|
35
|
+
}
|
13
36
|
}
|
37
|
+
|
38
|
+
.remove, .btn-danger {
|
39
|
+
background-color: $remove-background-color;
|
40
|
+
border-color: $remove-border-color;
|
41
|
+
color: $remove-text-color;
|
42
|
+
}
|
43
|
+
.remove:hover, .remove:focus,
|
44
|
+
.btn-danger:hover, .btn-danger:focus {
|
45
|
+
background-color: $remove-background-hover;
|
46
|
+
border-color: $remove-border-color;
|
47
|
+
color: $remove-text-hover;
|
48
|
+
}
|
49
|
+
|
50
|
+
.btn-warning {
|
51
|
+
background-color: $neutral-background-color;
|
52
|
+
border-color: $neutral-border-color;
|
53
|
+
color: $neutral-text-color;
|
54
|
+
}
|
55
|
+
.btn-warning:hover, .btn-warning:focus {
|
56
|
+
background-color: $neutral-background-hover;
|
57
|
+
border-color: $neutral-border-color;
|
58
|
+
color: $neutral-text-hover;
|
59
|
+
}
|
60
|
+
|
61
|
+
.info {
|
62
|
+
background-color: $view-select-background-color;
|
63
|
+
border-color: $view-select-border-color;
|
64
|
+
color: $view-select-text-color;
|
65
|
+
}
|
66
|
+
.info:hover, .info:focus {
|
67
|
+
background-color: $view-select-background-hover;
|
68
|
+
border-color: $view-select-border-color;
|
69
|
+
color: $view-select-text-hover;
|
70
|
+
}
|
71
|
+
|
72
|
+
|
73
|
+
|
@@ -56,10 +56,16 @@
|
|
56
56
|
padding-top: .5em;
|
57
57
|
a:link, a:visited {
|
58
58
|
color: $icon-link-color;
|
59
|
+
text-decoration: none;
|
60
|
+
transition-property: background-color, color;
|
61
|
+
transition-duration: .35s;
|
62
|
+
transition-timing-function: ease-out;
|
59
63
|
}
|
60
|
-
a:hover {
|
64
|
+
a:hover, a:focus {
|
61
65
|
color: $icon-link-hover-color;
|
62
|
-
|
66
|
+
transition-property: background-color, color;
|
67
|
+
transition-duration: .35s;
|
68
|
+
transition-timing-function: ease-out;
|
63
69
|
}
|
64
70
|
}
|
65
71
|
|
@@ -74,6 +80,18 @@ div.heading-tile .glyphicon {
|
|
74
80
|
border-radius: 50%;
|
75
81
|
border: 2px solid $icon-border-color;
|
76
82
|
overflow: hidden;
|
83
|
+
transition-property: background-color, color;
|
84
|
+
transition-duration: .35s;
|
85
|
+
transition-timing-function: ease-out;
|
86
|
+
}
|
87
|
+
|
88
|
+
div.heading-tile:hover .glyphicon {
|
89
|
+
background-color: $icon-background-color-hover;
|
90
|
+
border-color: $icon-border-color-hover;
|
91
|
+
color: $icon-font-color-hover;
|
92
|
+
transition-property: background-color, color;
|
93
|
+
transition-duration: .35s;
|
94
|
+
transition-timing-function: ease-out;
|
77
95
|
}
|
78
96
|
|
79
97
|
.proxy-search h3 {
|
@@ -1,17 +1,5 @@
|
|
1
1
|
#masthead {
|
2
|
-
background:
|
3
|
-
background-image: -webkit-gradient(
|
4
|
-
linear,
|
5
|
-
left top,
|
6
|
-
left bottom,
|
7
|
-
color-stop(0, #0071BC),
|
8
|
-
color-stop(1, #003457)
|
9
|
-
);
|
10
|
-
background-image: -o-linear-gradient(bottom, #0071BC 0%, #003457 100%);
|
11
|
-
background-image: -moz-linear-gradient(bottom, #0071BC 0%, #003457 100%);
|
12
|
-
background-image: -webkit-linear-gradient(bottom, #0071BC 0%, #003457 100%);
|
13
|
-
background-image: -ms-linear-gradient(bottom, #0071BC 0%, #003457 100%);
|
14
|
-
background-image: linear-gradient(to bottom, #0071BC 0%, #003457 100%);
|
2
|
+
background: $blue-dark;
|
15
3
|
min-height: 4em;
|
16
4
|
|
17
5
|
#logo span.glyphicon {
|
@@ -57,36 +45,44 @@
|
|
57
45
|
}
|
58
46
|
}
|
59
47
|
|
48
|
+
#masthead_controls .navbar-default .navbar-nav > .active > a,
|
49
|
+
#masthead_controls .navbar-default .navbar-nav > .active > a:hover,
|
50
|
+
#masthead_controls .navbar-default .navbar-nav > .active > a:focus {
|
51
|
+
background-color: $blue-medium-bright;
|
52
|
+
color: $classic-white;
|
53
|
+
}
|
54
|
+
|
60
55
|
#masthead_controls {
|
61
|
-
|
62
|
-
border-
|
63
|
-
|
56
|
+
border-top: 1px solid $blue-medium;
|
57
|
+
border-bottom: 1px solid $blue-medium;
|
58
|
+
background-color: $blue-medium-bright;
|
59
|
+
#search-submit-header {
|
60
|
+
background-color: $gray-dark;
|
61
|
+
border-top: 1px solid $gray-medium;
|
62
|
+
border-bottom: 1px solid $gray-medium;
|
63
|
+
}
|
64
64
|
.navbar {
|
65
|
-
background-color:
|
65
|
+
background-color: $blue-medium-bright;
|
66
66
|
margin-bottom: 0;
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
67
|
+
li {
|
68
|
+
border-right: 2px solid $blue-medium;
|
69
|
+
}
|
70
|
+
li:first-child {
|
71
|
+
border-left: 2px solid $blue-medium;
|
72
|
+
}
|
73
|
+
a:link, a:visited {
|
74
|
+
background-color: $blue-medium-bright;
|
75
|
+
color: $classic-white;
|
76
|
+
}
|
77
|
+
a:hover {
|
78
|
+
background-color: $basic-black;
|
79
|
+
}
|
77
80
|
}
|
78
81
|
.navbar-default {
|
79
|
-
border:
|
80
|
-
}
|
81
|
-
.navbar-default .navbar-nav>.active>a,
|
82
|
-
.navbar-default .navbar-nav>.active>a:hover,
|
83
|
-
.navbar-default .navbar-nav>.active>a:focus {
|
84
|
-
background-color: #F7EEDE;
|
85
|
-
color: #555;
|
82
|
+
border: none;
|
86
83
|
}
|
87
84
|
}
|
88
85
|
|
89
|
-
|
90
86
|
.login_button {
|
91
87
|
margin: 1.75em 3em 0 0;
|
92
88
|
}
|
@@ -7,6 +7,8 @@ $basic-black: #000;
|
|
7
7
|
$blue-dark: #036;
|
8
8
|
$blue-medium: #1C5798;
|
9
9
|
$blue-medium-bright: #2674CA;
|
10
|
+
$teal: #2CAEB7;
|
11
|
+
$teal-light: #67ADA9;
|
10
12
|
$brown-dark: #7D5D55;
|
11
13
|
$brown-medium-dark: #A78352;
|
12
14
|
$brown-medium: #B89972;
|
@@ -19,21 +21,56 @@ $gray-medium: #CECDCD;
|
|
19
21
|
$gray-light: #DDD;
|
20
22
|
$gray-lighter: #E1E1E1;
|
21
23
|
$gray-lightish: #bbb;
|
24
|
+
$yellow-medium: #FFC74E;
|
22
25
|
$highlight-yellow: #F0CA00;
|
23
|
-
$teal: #2CAEB7;
|
24
26
|
$vermilion: #F30;
|
27
|
+
$red-orange: #D6562B;
|
28
|
+
|
25
29
|
|
30
|
+
// Dashboard
|
26
31
|
$badge-background-color: $highlight-yellow;
|
27
32
|
$badge-optional-background-color: $gray-medium;
|
28
33
|
$badge-font-color: $classic-white;
|
34
|
+
|
29
35
|
$content-wrapper-background-color: $cream-light;
|
36
|
+
|
30
37
|
$dashboard-background-color: $classic-white;
|
31
38
|
$dashboard-border-color: $gray-light;
|
39
|
+
|
32
40
|
$icon-background-color: $vermilion;
|
33
41
|
$icon-border-color: $classic-white;
|
34
42
|
$icon-font-color: $classic-white;
|
35
|
-
$icon-link-color: $
|
36
|
-
$icon-link-hover-color: $
|
43
|
+
$icon-link-color: $gray-med-dark;
|
44
|
+
$icon-link-hover-color: $basic-black;
|
45
|
+
$icon-background-color-hover: $classic-white;
|
46
|
+
$icon-border-color-hover: $basic-black;
|
47
|
+
$icon-font-color-hover: $basic-black;
|
48
|
+
|
37
49
|
$panel-background-color: $classic-white;
|
38
50
|
$panel-dashboard-background-color: $teal;
|
39
51
|
$panel-dashboard-font-color: $classic-white;
|
52
|
+
|
53
|
+
// Buttons
|
54
|
+
$add-background-color: $teal-light;
|
55
|
+
$add-border-color: $teal-light;
|
56
|
+
$add-text-color: $classic-white;
|
57
|
+
$add-background-hover: $classic-white;
|
58
|
+
$add-text-hover: $teal-light;
|
59
|
+
|
60
|
+
$neutral-background-color: $yellow-medium;
|
61
|
+
$neutral-border-color: $highlight-yellow;
|
62
|
+
$neutral-text-color: $classic-white;
|
63
|
+
$neutral-background-hover: $classic-white;
|
64
|
+
$neutral-text-hover: $yellow-medium;
|
65
|
+
|
66
|
+
$remove-background-color: $red-orange;
|
67
|
+
$remove-border-color: $red-orange;
|
68
|
+
$remove-text-color: $classic-white;
|
69
|
+
$remove-background-hover: $classic-white;
|
70
|
+
$remove-text-hover: $red-orange;
|
71
|
+
|
72
|
+
$view-select-background-color: $blue-medium-bright;
|
73
|
+
$view-select-border-color: $blue-medium-bright;
|
74
|
+
$view-select-text-color: $classic-white;
|
75
|
+
$view-select-background-hover: $classic-white;
|
76
|
+
$view-select-text-hover: $blue-medium-bright;
|
@@ -55,23 +55,11 @@ button {
|
|
55
55
|
}
|
56
56
|
|
57
57
|
#footer {
|
58
|
+
background: $blue-dark;
|
58
59
|
clear: both;
|
59
|
-
color:
|
60
|
+
color: $classic-white;
|
60
61
|
margin-top: 2em;
|
61
62
|
padding: 1em;
|
62
|
-
background: #0071BC; /* Old browsers */
|
63
|
-
background-image: -webkit-gradient(
|
64
|
-
linear,
|
65
|
-
left top,
|
66
|
-
left bottom,
|
67
|
-
color-stop(0, #0071BC),
|
68
|
-
color-stop(1, #003457)
|
69
|
-
);
|
70
|
-
background-image: -o-linear-gradient(bottom, #0071BC 0%, #003457 100%);
|
71
|
-
background-image: -moz-linear-gradient(bottom, #0071BC 0%, #003457 100%);
|
72
|
-
background-image: -webkit-linear-gradient(bottom, #0071BC 0%, #003457 100%);
|
73
|
-
background-image: -ms-linear-gradient(bottom, #0071BC 0%, #003457 100%);
|
74
|
-
background-image: linear-gradient(to bottom, #0071BC 0%, #003457 100%);
|
75
63
|
min-height: 4em;
|
76
64
|
}
|
77
65
|
|
@@ -1,46 +1,3 @@
|
|
1
1
|
class BatchController < ApplicationController
|
2
|
-
include
|
3
|
-
layout "sufia-one-column"
|
4
|
-
|
5
|
-
before_filter :has_access?
|
6
|
-
|
7
|
-
def edit
|
8
|
-
@batch = Batch.find_or_create(params[:id])
|
9
|
-
@form = edit_form
|
10
|
-
end
|
11
|
-
|
12
|
-
def update
|
13
|
-
authenticate_user!
|
14
|
-
@batch = Batch.find_or_create(params[:id])
|
15
|
-
@batch.status = ["processing"]
|
16
|
-
@batch.save
|
17
|
-
file_attributes = Sufia::Forms::BatchEditForm.model_attributes(params[:generic_file])
|
18
|
-
Sufia.queue.push(BatchUpdateJob.new(current_user.user_key, params[:id], params[:title], file_attributes, params[:visibility]))
|
19
|
-
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-danger" 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.'
|
20
|
-
if uploading_on_behalf_of? @batch
|
21
|
-
redirect_to sufia.dashboard_shares_path
|
22
|
-
else
|
23
|
-
redirect_to sufia.dashboard_files_path
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
protected
|
28
|
-
|
29
|
-
def edit_form
|
30
|
-
generic_file = GenericFile.new(creator: [current_user.name], title: @batch.generic_files.map(&:label))
|
31
|
-
Sufia::Forms::BatchEditForm.new(generic_file)
|
32
|
-
end
|
33
|
-
|
34
|
-
# override this method if you need to initialize more complex RDF assertions (b-nodes)
|
35
|
-
def initialize_fields(file)
|
36
|
-
file.initialize_fields
|
37
|
-
end
|
38
|
-
|
39
|
-
def uploading_on_behalf_of? batch
|
40
|
-
file = batch.generic_files.first
|
41
|
-
return false if file.nil? || file.on_behalf_of.blank?
|
42
|
-
current_user.user_key != file.on_behalf_of
|
43
|
-
end
|
44
|
-
|
45
|
-
ActiveSupport::Deprecation.deprecate_methods(BatchController, :initialize_fields)
|
2
|
+
include Sufia::BatchControllerBehavior
|
46
3
|
end
|