Skip to content
This repository has been archived by the owner on Jan 5, 2019. It is now read-only.

Commit

Permalink
Merge pull request #436 from ualbertalib/license_input
Browse files Browse the repository at this point in the history
License files in ERA and free-text rights in Hydranorth #282
  • Loading branch information
pbinkley committed Jun 23, 2015
2 parents b191e2a + d606bc7 commit 1e4cedb
Show file tree
Hide file tree
Showing 19 changed files with 118 additions and 24 deletions.
49 changes: 41 additions & 8 deletions app/assets/javascripts/custom.js
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,48 @@ $(document).ready(function(){
var randomSlide2 = images2[Math.floor(Math.random() * images.length)];
$('#slide2').addClass(randomSlide2);

if ($("#tweets").length){
var config1 = {
"id": '586195044660424704',
"domId": 'tweets',
"maxTweets": 2,
"enableLinks": true
};
twitterFetcher.fetch(config1);
if ($("#generic_file_license").length){
$("#generic_file_license").change(function() {
if ($("#generic_file_license").val()=="I am required to use/link to a publisher's license") {
$("#generic_file_rights").val("Enter full text rights");
$('label[for="generic_file_rights"]').show();
$("#generic_file_rights").show();
$("#generic_file_license").val("");
$("#generic_file_rights").focus();
}
else {
$('label[for="generic_file_rights"]').hide();
$("#generic_file_rights").hide();
$("#generic_file_rights").val("");
}

});
}
if ($("#generic_file_rights").length){
if (document.getElementById('generic_file_rights') == null) {
$('label[for="generic_file_rights"]').hide();
$("#generic_file_rights").hide();
}
else {
if (document.getElementById('generic_file_rights').value == "") {
$('label[for="generic_file_rights"]').hide();
$("#generic_file_rights").hide();
}
else {
$('label[for="generic_file_rights"]').show();
$("#generic_file_rights").show();
}
}
}
if ($("#tweets").length){
var config1 = {
"id": '586195044660424704',
"domId": 'tweets',
"maxTweets": 2,
"enableLinks": true
};
twitterFetcher.fetch(config1);
}
if ($("#chartContainer").length){
var chart = new CanvasJS.Chart("chartContainer",
{
Expand Down
2 changes: 1 addition & 1 deletion app/forms/hydranorth/forms/cstr_edit_form.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Hydranorth
module Forms
class CstrEditForm < CstrPresenter
include HydraEditor::Form
self.required_fields = [:title, :creator, :subject, :license, :trid, :language]
self.required_fields = [:title, :creator, :subject, :trid, :language]

# This is required so that fields_for will draw a nested form.
# See ActionView::Helpers#nested_attributes_association?
Expand Down
2 changes: 1 addition & 1 deletion app/forms/hydranorth/forms/generic_file_edit_form.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module Forms
class GenericFileEditForm < GenericFilePresenter
include HydraEditor::Form
include HydraEditor::Form::Permissions
self.required_fields = [:title, :resource_type, :language, :creator, :subject, :license ]
self.required_fields = [:title, :resource_type, :language, :creator, :subject ]

# This is required so that fields_for will draw a nested form.
# See ActionView::Helpers#nested_attributes_association?
Expand Down
2 changes: 1 addition & 1 deletion app/forms/hydranorth/forms/ser_edit_form.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Hydranorth
module Forms
class SerEditForm < SerPresenter
include HydraEditor::Form
self.required_fields = [:title, :creator, :subject, :license, :ser, :language]
self.required_fields = [:title, :creator, :subject, :ser, :language]

# This is required so that fields_for will draw a nested form.
# See ActionView::Helpers#nested_attributes_association?
Expand Down
4 changes: 3 additions & 1 deletion app/models/concerns/hydranorth/generic_file/export.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ def export_as_openurl_ctx_kev
date_created: 'date',
resource_type: 'format',
language: 'language',
license: 'license'
license: 'license' ,
rights: 'rights'
}
Rails.logger.debug "field_map #{field_map}"
field_map.each do |element, kev|
Expand All @@ -28,6 +29,7 @@ def export_as_openurl_ctx_kev
Rails.logger.debug "self.resource_type #{self.resource_type}"
Rails.logger.debug "self.language #{self.language}"
Rails.logger.debug "self.license #{self.license}"
Rails.logger.debug "self.rights #{self.rights}"
Rails.logger.debug "self.contributor #{self.contributor.inspect}"
values = self.send(element)
Rails.logger.debug "values #{values}"
Expand Down
3 changes: 3 additions & 0 deletions app/models/concerns/hydranorth/generic_file/metadata.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ module Metadata
property :license, predicate: ::RDF::DC.license, multiple: false do |index|
index.as :stored_searchable
end
property :rights, predicate: ::RDF::DC.rights, multiple: false do |index|
index.as :stored_searchable
end
property :trid, predicate: ::UALTerms.trid, multiple: false do |index|
index.as :stored_searchable, :sortable
end
Expand Down
2 changes: 1 addition & 1 deletion app/presenters/hydranorth/cstr_presenter.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class CstrPresenter < GenericFilePresenter
include Hydra::Presenter
self.model_class = ::GenericFile
# Terms is the list of fields displayed by app/views/generic_files/_show_descriptions.html.erb
self.terms = [:title, :creator, :contributor, :subject, :resource_type, :trid, :language, :spatial, :temporal, :description, :date_created, :license, :is_version_of, :source, :related_url]
self.terms = [:title, :creator, :contributor, :subject, :resource_type, :trid, :language, :spatial, :temporal, :description, :date_created, :license, :rights, :is_version_of, :source, :related_url]

end
end
2 changes: 1 addition & 1 deletion app/presenters/hydranorth/generic_file_presenter.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class GenericFilePresenter
include Hydra::Presenter
self.model_class = ::GenericFile
# Terms is the list of fields displayed by app/views/generic_files/_show_descriptions.html.erb
self.terms = [:title, :creator, :contributor, :subject, :resource_type, :language, :spatial, :temporal, :description, :date_created, :license, :is_version_of, :source, :related_url]
self.terms = [:title, :creator, :contributor, :subject, :resource_type, :language, :spatial, :temporal, :description, :date_created, :license, :rights, :is_version_of, :source, :related_url]

# Depositor and permissions are not displayed in app/views/generic_files/_show_descriptions.html.erb
# so don't include them in `terms'.
Expand Down
2 changes: 1 addition & 1 deletion app/presenters/hydranorth/ser_presenter.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class SerPresenter < GenericFilePresenter
include Hydra::Presenter
self.model_class = ::GenericFile
# Terms is the list of fields displayed by app/views/generic_files/_show_descriptions.html.erb
self.terms = [:title, :creator, :contributor, :subject, :resource_type, :ser, :language, :spatial, :temporal, :description, :date_created, :license, :is_version_of, :source, :related_url]
self.terms = [:title, :creator, :contributor, :subject, :resource_type, :ser, :language, :spatial, :temporal, :description, :date_created, :license, :rights, :is_version_of, :source, :related_url]

end
end
4 changes: 3 additions & 1 deletion app/views/batch/_metadata.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@
<%= f.input :creator, as: :multi_value_with_help, input_html: { required: true } %>
<%= f.input :subject, as: :multi_value_with_help, input_html: {required: true} %>
<%= f.input :license, as: :select_with_modal_help, collection: Sufia.config.cc_licenses,
input_html: { class: 'form-control', required: true }, include_blank: true %>
input_html: { class: 'form-control', required: false }, include_blank: true %>
<%= f.input :rights, required: false, input_html: { type: 'textarea' } %>
<%= render "generic_files/license_modal" %>

Expand Down
2 changes: 1 addition & 1 deletion app/views/batch/_more_metadata.html.erb
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div id="more_descriptions">
<button id="hide_addl_descriptions" class="btn btn-default" aria-label="hide additional metadata description fields">Hide Additional Fields</button>
<% (f.object.terms - [:title, :trid, :ser, :creator, :license, :resource_type, :language, :subject]).each do |term| %>
<% (f.object.terms - [:title, :trid, :ser, :creator, :license, :rights, :resource_type, :language, :subject]).each do |term| %>
<%# <%= f.input term, as: :multi_value_with_help, input_html: { required: false} %>
<%= render_edit_field_partial(term, f: f) %>
<% end %>
Expand Down
4 changes: 2 additions & 2 deletions app/views/records/edit_fields/_license.html.erb
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<% if @generic_file.nil? || @generic_file.license.blank? || Sufia.config.cc_licenses_reverse.has_key?(@generic_file.license) %>
<%= f.input :license, as: :select_with_modal_help, collection: Sufia.config.cc_licenses,
input_html: { class: 'form-control', required: true }, include_blank: true %>
input_html: { class: 'form-control' }, include_blank: true %>
<% else %>
<%= f.input :license, as: :select_with_modal_help, collection: Sufia.config.cc_licenses.dup.merge({@generic_file.license => @generic_file.license}),
input_html: { class: 'form-control', required: true }, include_blank: true %>
input_html: { class: 'form-control' }, include_blank: true %>
<% end %>
<%= render "collections/license_modal" %>
Expand Down
1 change: 1 addition & 0 deletions app/views/records/edit_fields/_rights.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<%= f.input :rights, required: false, input_html: { type: 'textarea' } %>
2 changes: 1 addition & 1 deletion app/views/records/show_fields/_rights.html.erb
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<%=link_to_field('rights',record.rights, Sufia.config.cc_licenses_reverse[record.rights])%> <%= iconify_auto_link(record.rights,false) %><br />
<span itemprop="rights"><%= record.rights %></span><br />
2 changes: 1 addition & 1 deletion config/initializers/sufia.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
'Attribution-NonCommercial-ShareAlike 4.0 International' => 'http://creativecommons.org/licenses/by-nc-sa/4.0/',
'Public Domain Mark 1.0' => 'http://creativecommons.org/publicdomain/mark/1.0/',
'CC0 1.0 Universal' => 'http://creativecommons.org/publicdomain/zero/1.0/',
"I am required to use/link to a publisher's license" => "I am required to use/link to a publisher's license",
}

config.cc_licenses_reverse = Hash[*config.cc_licenses.to_a.flatten.reverse]
Expand Down Expand Up @@ -90,7 +91,6 @@
# In production it assumes that the collections will be available in the system at the time of deposit
# config.cstr_collection_id = ""
# config.ser_collection_id = ""

config.special_reports = {
"cstr" => "Computing Science Technical Report",
"ser" => "Structural Engineering Report",
Expand Down
53 changes: 53 additions & 0 deletions spec/features/edit_rights_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
require 'spec_helper'

describe 'Rights', :type => :feature do

let(:admin) { FactoryGirl.create :admin }
let!(:file) do
GenericFile.new.tap do |f|
f.title = ['non_standard_file.txt']
f.creator = ['non_standard_creator']
f.license = "Attribution 4.0 International"
f.read_groups = ['public']
f.apply_depositor_metadata(admin.user_key)
f.save!
end
end

after :all do
cleanup_jetty
end

describe 'check if rights does not exist' do

before do
sign_in admin
visit "/dashboard/files"
within("#document_#{file.id}") do
click_button "Select an action"
click_link "Edit File"
end
end

it { expect(page).to have_select('generic_file_license', with_options: ['Attribution 4.0 International']) }
it { expect(page).to_not have_field('generic_file_rights') }
end

describe 'check if rights does exist' do

before do
sign_in admin
visit "/dashboard/files"
within("#document_#{file.id}") do
click_button "Select an action"
click_link "Edit File"
end
select("I am required to use/link to a publisher's license", from: "generic_file[license]")
fill_in 'generic_file_rights', :with => 'Rights'
click_button "Update Generic file"
end

it { expect(page).to have_field('generic_file_rights', with: 'Rights') }
end

end
2 changes: 1 addition & 1 deletion spec/forms/generic_file_edit_form_spec.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

describe "#terms" do
it "should return a list" do
expect(subject.terms).to eq([:title, :creator, :contributor, :subject, :resource_type, :language, :spatial, :temporal, :description, :date_created, :license, :is_version_of, :source, :related_url ])
expect(subject.terms).to eq([:title, :creator, :contributor, :subject, :resource_type, :language, :spatial, :temporal, :description, :date_created, :license, :rights, :is_version_of, :source, :related_url ])
end

end
Expand Down
2 changes: 1 addition & 1 deletion spec/presenters/hydranorth/cstr_presenter.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
describe Hydranorth::CstrPresenter do
describe ".terms" do
it "should return a list" do
expect(described_class.terms).to eq([:resource_type, :title, :trid, :creator, :contributor, :description, :date_created, :license, :subject, :spatial, :temporal, :is_version_of, :source, :related_url, :language])
expect(described_class.terms).to eq([:resource_type, :title, :trid, :creator, :contributor, :description, :date_created, :license, :rights, :subject, :spatial, :temporal, :is_version_of, :source, :related_url, :language])
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion spec/presenters/hydranorth/ser_presenter.rb
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
describe Hydranorth::SerPresenter do
describe ".terms" do
it "should return a list" do
expect(described_class.terms).to eq([:resource_type, :title, :ser, :creator, :contributor, :description, :date_created, :license, :subject, :spatial, :temporal, :is_version_of, :source, :related_url, :language])
expect(described_class.terms).to eq([:resource_type, :title, :ser, :creator, :contributor, :description, :date_created, :license, :rights, :subject, :spatial, :temporal, :is_version_of, :source, :related_url, :language])
end
end
end
Expand Down

0 comments on commit 1e4cedb

Please sign in to comment.