sufia 4.3.1 → 5.0.0.rc1
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.
- checksums.yaml +4 -4
- data/.travis.yml +8 -1
- data/Gemfile +10 -1
- data/History.md +14 -0
- data/LICENSE +15 -0
- data/README.md +7 -3
- data/SUFIA_VERSION +1 -1
- data/app/assets/javascripts/sufia.js +17 -1
- data/app/assets/javascripts/sufia/batch_edit.js +28 -43
- data/app/assets/javascripts/sufia/edit_metadata.js +14 -9
- data/app/assets/javascripts/sufia/manage_repeating_fields.js +74 -0
- data/app/assets/stylesheets/sufia.css.scss +1 -1
- data/app/assets/stylesheets/sufia/_batch-edit.scss +8 -0
- data/app/assets/stylesheets/sufia/_file-listing.scss +1 -1
- data/app/assets/stylesheets/sufia/_multi_value_fields.css.scss +67 -0
- data/app/controllers/concerns/sufia/breadcrumbs.rb +8 -3
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +5 -1
- data/app/helpers/generic_file_helper.rb +0 -9
- data/app/helpers/sufia/records_helper_behavior.rb +0 -14
- data/app/inputs/multi_value_input.rb +84 -0
- data/app/views/batch/_metadata.html.erb +4 -16
- data/app/views/batch/edit.html.erb +1 -1
- data/app/views/batch_edits/edit.html.erb +6 -10
- data/app/views/collections/_edit_descriptions.html.erb +1 -1
- data/app/views/collections/_form.html.erb +3 -3
- data/app/views/generic_files/_descriptions.html.erb +9 -7
- data/app/views/generic_files/_field_form.html.erb +23 -8
- data/app/views/generic_files/edit.html.erb +0 -1
- data/app/views/records/_edit_field.html.erb +19 -17
- data/app/views/records/_rights_modal.html.erb +1 -0
- data/app/views/records/edit_fields/_default.html.erb +12 -6
- data/app/views/records/edit_fields/_description.html.erb +3 -6
- data/app/views/records/edit_fields/_resource_type.html.erb +5 -4
- data/app/views/records/edit_fields/_rights.html.erb +2 -5
- data/app/views/records/edit_fields/_suffix.html.erb +0 -11
- data/app/views/records/edit_fields/_type.html.erb +2 -8
- 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 +2 -0
- data/lib/sufia/version.rb +1 -1
- data/spec/controllers/batch_edits_controller_spec.rb +1 -0
- data/spec/controllers/generic_files_controller_spec.rb +26 -0
- data/spec/controllers/users_controller_spec.rb +4 -3
- data/spec/features/collection_spec.rb +7 -0
- data/spec/helpers/records_helper_spec.rb +0 -13
- data/spec/lib/sufia/breadcrumbs_spec.rb +46 -8
- data/spec/views/collections/_form.html.erb_spec.rb +0 -2
- data/sufia-models/app/models/concerns/sufia/user.rb +5 -0
- 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.gemspec +1 -0
- metadata +29 -9
- data/LICENSE.md +0 -14
- data/app/assets/javascripts/sufia/multiForm.js +0 -67
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0fd461554f395403414904f00dd90a78fb0537f2
|
|
4
|
+
data.tar.gz: 1d5831ea8387a489951180194b7180bd4d62a76d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 442d9714f6a6791d4d8d0f1bb04b2343c205dc763833431887d6021b6d5fa21ea2098e534ea7ed783e8ed9009858f5302a44c459bb834e084aa466609340679b
|
|
7
|
+
data.tar.gz: 79104ad39beb8ceeecf6e509dd38cffa5b1cf0b59b2420028fed6539bd00747ac872facce84c6987fad8681f01e378b7143933a6b3f2004ceb3f06e1c42ecaf1
|
data/.travis.yml
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
language: ruby
|
|
2
|
+
cache: bundler
|
|
3
|
+
sudo: false
|
|
2
4
|
rvm:
|
|
3
5
|
- 2.1
|
|
4
|
-
- 2.0
|
|
5
6
|
env:
|
|
6
7
|
global:
|
|
7
8
|
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
|
9
|
+
matrix:
|
|
10
|
+
- "RAILS_VERSION=4.1.8"
|
|
11
|
+
- "RAILS_VERSION=4.2.0"
|
|
12
|
+
matrix:
|
|
13
|
+
allow_failures:
|
|
14
|
+
- env: "RAILS_VERSION=4.2.0"
|
|
8
15
|
notifications:
|
|
9
16
|
email:
|
|
10
17
|
recipients:
|
data/Gemfile
CHANGED
|
@@ -6,7 +6,7 @@ gemspec
|
|
|
6
6
|
# Required for doing pagination inside an engine. See https://github.com/amatsuda/kaminari/pull/322
|
|
7
7
|
gem 'kaminari', github: 'harai/kaminari', branch: 'route_prefix_prototype'
|
|
8
8
|
gem 'sufia-models', path: './sufia-models'
|
|
9
|
-
gem '
|
|
9
|
+
gem 'slop', '~> 3.6.0' # This just helps us generate a valid Gemfile.lock when Rails 4.2 is installed (which requires byebug which has a dependency on slop)
|
|
10
10
|
|
|
11
11
|
group :development, :test do
|
|
12
12
|
gem "simplecov", require: false
|
|
@@ -17,4 +17,13 @@ file = File.expand_path("Gemfile", ENV['ENGINE_CART_DESTINATION'] || ENV['RAILS_
|
|
|
17
17
|
if File.exists?(file)
|
|
18
18
|
puts "Loading #{file} ..." if $DEBUG # `ruby -d` or `bundle -v`
|
|
19
19
|
instance_eval File.read(file)
|
|
20
|
+
else
|
|
21
|
+
gem 'rails', ENV['RAILS_VERSION'] if ENV['RAILS_VERSION']
|
|
22
|
+
|
|
23
|
+
if ENV['RAILS_VERSION'] and ENV['RAILS_VERSION'] !~ /^4.2/
|
|
24
|
+
gem 'sass-rails', "< 5.0"
|
|
25
|
+
else
|
|
26
|
+
gem 'responders', "~> 2.0"
|
|
27
|
+
gem 'sass-rails', ">= 5.0"
|
|
28
|
+
end
|
|
20
29
|
end
|
data/History.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# History of Sufia releases
|
|
2
2
|
|
|
3
|
+
## 5.0.0
|
|
4
|
+
|
|
5
|
+
* Update README to be more specific about dependency versions [Michael J. Giarlo]
|
|
6
|
+
* Pulled in code from curate to manage add/remove fields on edit forms. Also story #3978 [Carolyn Cole]
|
|
7
|
+
* Changing the file query to be a solr query for loading the file id, so we do not wait large file content to load. This speed up the runs significantly on systems with large file. [Carolyn Cole]
|
|
8
|
+
* Users controller should not call an undefined method. Fixes #532. [Michael J. Giarlo]
|
|
9
|
+
* Fix problem where batch edit forms weren't expanding. Fixes #820 [Carolyn Cole]
|
|
10
|
+
* Update and rename LICENSE.md to LICENSE per community convention. [Michael J. Giarlo]
|
|
11
|
+
* Brings some of the fixes in fedora-4/master into master. [Michael J. Giarlo]
|
|
12
|
+
* Adds condition to make the version of sass-rails dependent on the value of RAILS_VERSION [Michael J. Giarlo]
|
|
13
|
+
* Merge travis config change to speed up the build [Michael J. Giarlo]
|
|
14
|
+
* Adding the browse view link into the bread crumbs so it shows on both the edit and the stats page. [Carolyn Cole]
|
|
15
|
+
|
|
16
|
+
|
|
3
17
|
## 4.3.1
|
|
4
18
|
|
|
5
19
|
* Adds an ORCID field to the user model. [Michael J. Giarlo]
|
data/LICENSE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
##########################################################################
|
|
2
|
+
# Copyright 2012 Penn State University
|
|
3
|
+
# Additional copyright may be held by others, as reflected in the commit log
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
data/README.md
CHANGED
|
@@ -48,7 +48,8 @@ We'd love to accept your contributions. Please see our guide to [contributing t
|
|
|
48
48
|
1. A SQL RDBMS (MySQL, SQLite)
|
|
49
49
|
1. [Redis](http://redis.io/) key-value store
|
|
50
50
|
1. [ImageMagick](http://www.imagemagick.org/)
|
|
51
|
-
1. Ruby
|
|
51
|
+
1. Ruby (*latest 2.1 recommended*)
|
|
52
|
+
2. Rails (*latest 4.1 recommended*)
|
|
52
53
|
|
|
53
54
|
#### !! Ensure that you have all of the above components installed before you continue. !!
|
|
54
55
|
|
|
@@ -60,12 +61,15 @@ If you have questions or need help, please email [the Hydra community developmen
|
|
|
60
61
|
|
|
61
62
|
### Generate base Rails install
|
|
62
63
|
|
|
63
|
-
```
|
|
64
|
+
```
|
|
65
|
+
gem install rails -v 4.1.8
|
|
66
|
+
rails new my_app
|
|
67
|
+
```
|
|
64
68
|
|
|
65
69
|
### Add gems to Gemfile
|
|
66
70
|
|
|
67
71
|
```
|
|
68
|
-
gem 'sufia'
|
|
72
|
+
gem 'sufia', '4.3.1'
|
|
69
73
|
gem 'kaminari', github: 'harai/kaminari', branch: 'route_prefix_prototype' # required to handle pagination properly in dashboard. See https://github.com/amatsuda/kaminari/pull/322
|
|
70
74
|
```
|
|
71
75
|
|
data/SUFIA_VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
5.0.0.rc1
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
//= require sufia/trophy
|
|
36
36
|
//= require sufia/featured_works
|
|
37
37
|
//= require sufia/batch_select_all
|
|
38
|
-
//= require sufia/
|
|
38
|
+
//= require sufia/manage_repeating_fields
|
|
39
39
|
//= require sufia/edit_metadata
|
|
40
40
|
//= require sufia/single_use_link
|
|
41
41
|
//= require sufia/audio
|
|
@@ -82,6 +82,22 @@ function notify_update_link() {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
Blacklight.onLoad(function() {
|
|
85
|
+
// Multi-value fields on forms
|
|
86
|
+
$('body').on('keypress', '.multi-text-field', function(event) {
|
|
87
|
+
var $activeField = $(event.target).parents('.field-wrapper'),
|
|
88
|
+
$activeFieldControls = $activeField.children('.field-controls'),
|
|
89
|
+
$addControl=$activeFieldControls.children('.add'),
|
|
90
|
+
$removeControl=$activeFieldControls.children('.remove');
|
|
91
|
+
|
|
92
|
+
// If user hits the "Enter" key (keyCode 13), it should add another input for the multi-value field.
|
|
93
|
+
// Unless it's a textarea field (since users might want multi-line input in a textarea).
|
|
94
|
+
if (event.keyCode == 13 && !($activeField.context.type == "textarea")) {
|
|
95
|
+
event.preventDefault();
|
|
96
|
+
$addControl.click()
|
|
97
|
+
$removeControl.click()
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
$('.multi_value.form-group').manage_fields();
|
|
85
101
|
|
|
86
102
|
// set up global batch edit options to override the ones in the gem
|
|
87
103
|
window.batch_edits_options = { checked_label: "",unchecked_label: "",progress_label: "",status_label: "",css_class: "batch_toggle"};
|
|
@@ -3,17 +3,6 @@ function batch_edit_init () {
|
|
|
3
3
|
// initialize popover helpers
|
|
4
4
|
$("a[rel=popover]").popover({ html: true });
|
|
5
5
|
|
|
6
|
-
$("tr.expandable").click(function () {
|
|
7
|
-
$(this).next("ul").slideToggle();
|
|
8
|
-
|
|
9
|
-
$(this).find('i.toggle').toggleClass("glyphicon glyphicon-chevron-down");
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
$("tr.expandable_new").click(function () {
|
|
13
|
-
$(this).find('i').toggleClass("glyphicon glyphicon-chevron-down");
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
|
|
17
6
|
function deserialize(Params) {
|
|
18
7
|
var Data = Params.split("&");
|
|
19
8
|
var i = Data.length;
|
|
@@ -116,31 +105,45 @@ function batch_edit_init () {
|
|
|
116
105
|
|
|
117
106
|
ajaxManager.run();
|
|
118
107
|
|
|
108
|
+
function formButtons(form_id) {
|
|
109
|
+
return $('#' + form_id + ' .btn')
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function formFields(form_id) {
|
|
113
|
+
return $('#' + form_id + ' .form-group > *')
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function formRightPanel(form_id) {
|
|
117
|
+
return $('#' + form_id + ' .form-group')
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function disableForm(form_id) {
|
|
121
|
+
formButtons(form_id).attr("disabled", "disabled");
|
|
122
|
+
formRightPanel(form_id).addClass("loading");
|
|
123
|
+
formFields(form_id).addClass('invisible')
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function enableForm(form_id) {
|
|
127
|
+
formButtons(form_id).removeAttr("disabled");
|
|
128
|
+
formRightPanel(form_id).removeClass("loading");
|
|
129
|
+
formFields(form_id).removeClass('invisible')
|
|
130
|
+
}
|
|
131
|
+
|
|
119
132
|
function after_ajax(form_id) {
|
|
120
133
|
var key = form_id.replace("form_", "");
|
|
121
|
-
var save_button = "#" + key + "_save";
|
|
122
|
-
var outer_div = "#detail_" + key;
|
|
123
134
|
$("#status_" + key).html("Changes Saved");
|
|
124
|
-
|
|
125
|
-
$(outer_div).removeClass("loading");
|
|
126
|
-
$('#' + form_id).children([".form-group"]).removeClass('hidden')
|
|
135
|
+
enableForm(form_id);
|
|
127
136
|
}
|
|
128
137
|
|
|
129
138
|
function before_ajax(form_id) {
|
|
130
|
-
|
|
131
|
-
var save_button = "#" + key + "_save";
|
|
132
|
-
var outer_div = "#detail_" + key;
|
|
133
|
-
$(save_button).attr("disabled", "disabled");
|
|
134
|
-
$(outer_div).addClass("loading");
|
|
135
|
-
$('#' + form_id).children([".form-group"]).addClass('hidden')
|
|
139
|
+
disableForm(form_id);
|
|
136
140
|
}
|
|
137
141
|
|
|
138
|
-
|
|
139
142
|
function runSave(e) {
|
|
140
143
|
e.preventDefault();
|
|
141
144
|
var button = $(this);
|
|
142
|
-
var form =
|
|
143
|
-
var form_id = form[0].id
|
|
145
|
+
var form = button.closest('form');
|
|
146
|
+
var form_id = form[0].id;
|
|
144
147
|
before_ajax(form_id);
|
|
145
148
|
|
|
146
149
|
ajaxManager.addReq({
|
|
@@ -162,26 +165,8 @@ function batch_edit_init () {
|
|
|
162
165
|
setTimeout(ajaxManager.runNow(), 100);
|
|
163
166
|
}
|
|
164
167
|
|
|
165
|
-
function enable_show_hide_links() {
|
|
166
|
-
// Show/hide field details when clicking on a link with ID "expand_link_XXX".
|
|
167
|
-
// We expect to find an element named detail_XXX in addition to the expand_link_XXX.
|
|
168
|
-
// The "detail_XXX" element has the chevron icon.
|
|
169
|
-
$('.glyphicon-chevron-right-helper').on('click', function() {
|
|
170
|
-
var array = this.id.split("expand_link_");
|
|
171
|
-
if (array.length > 1) {
|
|
172
|
-
var docId = array[1];
|
|
173
|
-
$("#detail_" + docId + " .expanded-details").slideToggle();
|
|
174
|
-
var button = $("#expand_" + docId);
|
|
175
|
-
button.toggleClass('glyphicon-chevron-right glyphicon-chevron-down');
|
|
176
|
-
}
|
|
177
|
-
return false;
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
|
|
181
168
|
$("#permissions_save").click(runSave);
|
|
182
169
|
$(".field-save").click(runSave);
|
|
183
|
-
enable_show_hide_links();
|
|
184
|
-
|
|
185
170
|
}
|
|
186
171
|
|
|
187
172
|
|
|
@@ -58,8 +58,8 @@ Blacklight.onLoad(function() {
|
|
|
58
58
|
for (var i=0; i < autocomplete_vocab.url_var.length; i++) {
|
|
59
59
|
autocomplete_vocab.field_name.push('generic_file_' + autocomplete_vocab.url_var[i]);
|
|
60
60
|
autocomplete_vocab.add_btn_id.push('additional_' + autocomplete_vocab.url_var[i] + '_submit');
|
|
61
|
-
// autocompletes
|
|
62
|
-
$("
|
|
61
|
+
// add autocompletes to all inputs created
|
|
62
|
+
$(".form-group.multi_value." + autocomplete_vocab.field_name[i]).find('input[type=text]')
|
|
63
63
|
// don't navigate away from the field on tab when selecting an item
|
|
64
64
|
.bind( "keydown", function( event ) {
|
|
65
65
|
if ( event.keyCode === $.ui.keyCode.TAB &&
|
|
@@ -72,15 +72,20 @@ Blacklight.onLoad(function() {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
|
|
75
|
-
function setup_autocomplete(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
function setup_autocomplete(event) {
|
|
76
|
+
var class_name = $.grep(event.target.className.split(" "),function( c ) {
|
|
77
|
+
return c.indexOf('generic_file') == 0;
|
|
78
|
+
})[0];
|
|
79
|
+
// attach auto complete for location
|
|
80
|
+
if (class_name == 'generic_file_based_near') {
|
|
81
|
+
$(event.target).find('input[type=text]').autocomplete(get_autocomplete_opts("location"));
|
|
79
82
|
}
|
|
80
|
-
|
|
81
|
-
|
|
83
|
+
// attach other auto completes
|
|
84
|
+
else if ( (index = $.inArray(class_name, autocomplete_vocab.field_name)) != -1 ) {
|
|
85
|
+
$(event.target).find('input[type=text]').autocomplete(get_autocomplete_opts(autocomplete_vocab.url_var[index]));
|
|
82
86
|
}
|
|
83
87
|
}
|
|
84
88
|
|
|
85
|
-
|
|
89
|
+
// add setup for autocompletes to multi value forms
|
|
90
|
+
$('.multi_value.form-group').manage_fields({ add: setup_autocomplete });
|
|
86
91
|
});
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// This widget manages the adding and removing of repeating fields.
|
|
2
|
+
// There are a lot of assumptions about the structure of the classes and elements.
|
|
3
|
+
// These assumptions are reflected in the MultiValueInput class.
|
|
4
|
+
|
|
5
|
+
(function($){
|
|
6
|
+
$.widget( "curate.manage_fields", {
|
|
7
|
+
options: {
|
|
8
|
+
change: null,
|
|
9
|
+
add: null,
|
|
10
|
+
remove: null
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
_create: function() {
|
|
14
|
+
this.element.addClass("managed");
|
|
15
|
+
$('.field-wrapper', this.element).addClass("input-group input-append");
|
|
16
|
+
|
|
17
|
+
this.controls = $("<span class=\"input-group-btn field-controls\">");
|
|
18
|
+
this.remover = $("<button class=\"btn btn-danger remove\"><i class=\"icon-white glyphicon-minus\"></i><span>Remove</span></button>");
|
|
19
|
+
this.adder = $("<button class=\"btn btn-success add\"><i class=\"icon-white glyphicon-plus\"></i><span>Add</span></button>");
|
|
20
|
+
|
|
21
|
+
$('.field-wrapper', this.element).append(this.controls);
|
|
22
|
+
$('.field-wrapper:not(:last-child) .field-controls', this.element).append(this.remover);
|
|
23
|
+
$('.field-controls:last', this.element).append(this.adder);
|
|
24
|
+
|
|
25
|
+
this._on( this.element, {
|
|
26
|
+
"click .remove": "remove_from_list",
|
|
27
|
+
"click .add": "add_to_list"
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
add_to_list: function( event ) {
|
|
32
|
+
event.preventDefault();
|
|
33
|
+
|
|
34
|
+
var $activeField = $(event.target).parents('.field-wrapper'),
|
|
35
|
+
$activeFieldControls = $activeField.children('.field-controls'),
|
|
36
|
+
$removeControl = this.remover.clone(),
|
|
37
|
+
$newField = $activeField.clone(),
|
|
38
|
+
$listing = $('.listing', this.element),
|
|
39
|
+
$warningMessage = $("<div class=\'message has-warning\'>cannot add new empty field</div>");
|
|
40
|
+
if ($activeField.children('input').val() === '') {
|
|
41
|
+
$listing.children('.has-warning').remove();
|
|
42
|
+
$listing.append($warningMessage);
|
|
43
|
+
}
|
|
44
|
+
else{
|
|
45
|
+
$listing.children('.has-warning').remove();
|
|
46
|
+
$('.add', $activeFieldControls).remove();
|
|
47
|
+
$activeFieldControls.prepend($removeControl);
|
|
48
|
+
$newChildren = $newField.find('input');
|
|
49
|
+
$newChildren.
|
|
50
|
+
val('').
|
|
51
|
+
removeProp('required');
|
|
52
|
+
$listing.append($newField);
|
|
53
|
+
$newChildren.first().focus();
|
|
54
|
+
this._trigger("add",$newChildren);
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
remove_from_list: function( event ) {
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
|
|
61
|
+
$(event.target)
|
|
62
|
+
.parents('.field-wrapper')
|
|
63
|
+
.remove();
|
|
64
|
+
|
|
65
|
+
this._trigger("remove");
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
_destroy: function() {
|
|
69
|
+
this.actions.remove();
|
|
70
|
+
$('.field-wrapper', this.element).removeClass("input-append");
|
|
71
|
+
this.element.removeClass( "managed" );
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
})(jQuery);
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
// Use import here instead of require so we can use the Sass variables defined in Bootstrap and Blacklight
|
|
17
17
|
// TODO: Probably should use import throughout and move all of Sufia's stylesheets into a single named directory.
|
|
18
18
|
@import 'sufia/settings','sufia/header','sufia/styles','sufia/file-listing','sufia/collections','sufia/batch-edit',
|
|
19
|
-
'sufia/dashboard','sufia/home-page','sufia/featured','sufia/tagcloud','sufia/usage-stats','sufia/catalog','sufia/buttons','sufia/proxy-rights';
|
|
19
|
+
'sufia/dashboard','sufia/home-page','sufia/featured','sufia/tagcloud','sufia/usage-stats','sufia/catalog','sufia/buttons','sufia/proxy-rights', 'sufia/multi_value_fields';
|
|
20
20
|
|
|
21
21
|
#browse-everything {
|
|
22
22
|
top:10%;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
.multi_value, .single_value {
|
|
2
|
+
.field-wrapper {
|
|
3
|
+
list-style-type:none;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.listing {
|
|
7
|
+
margin-left: 0;
|
|
8
|
+
max-width: 40em;
|
|
9
|
+
padding-left: 0px;
|
|
10
|
+
.input-group {
|
|
11
|
+
margin-bottom: 1px;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.field-controls span {
|
|
16
|
+
margin-left:.2em;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.field-controls {
|
|
20
|
+
margin-left: 2em;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.message{
|
|
24
|
+
background-size: 40px 40px;
|
|
25
|
+
background-image: linear-gradient(135deg, rgba(255, 255, 255, .05) 25%, transparent 25%,
|
|
26
|
+
transparent 50%, rgba(255, 255, 255, .05) 50%, rgba(255, 255, 255, .05) 75%,
|
|
27
|
+
transparent 75%, transparent);
|
|
28
|
+
box-shadow: inset 0 -1px 0 rgba(255,255,255,.4);
|
|
29
|
+
width: 100%;
|
|
30
|
+
border: 1px solid;
|
|
31
|
+
color: #fff;
|
|
32
|
+
padding: 10px;
|
|
33
|
+
text-shadow: 0 1px 0 rgba(0,0,0,.5);
|
|
34
|
+
animation: animate-bg 5s linear infinite;
|
|
35
|
+
border-radius: $border-radius-base;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.has-error{
|
|
39
|
+
background-color: #de4343;
|
|
40
|
+
border-color: #c43d3d;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.has-warning{
|
|
44
|
+
background-color: #eaaf51;
|
|
45
|
+
border-color: #d99a36;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// The contributor listing needs some normalization
|
|
50
|
+
#contributors .listing {
|
|
51
|
+
max-width:20em;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#collection_title.listing {
|
|
55
|
+
max-width:37em;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.collection_description .listing {
|
|
59
|
+
max-width:35.5em;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
#descriptions_display {
|
|
63
|
+
.form-group, .batch-group {
|
|
64
|
+
margin-left: 0;
|
|
65
|
+
margin-bottom: 0.5em;
|
|
66
|
+
}
|
|
67
|
+
}
|