From 2a096f238e4fd21d1a073d020eb2c4231571034b Mon Sep 17 00:00:00 2001 From: Chris Beer Date: Tue, 29 Jun 2021 10:38:24 -0700 Subject: [PATCH] Collapse print reserves for online resources --- app/assets/javascripts/application.js | 1 + app/assets/javascripts/reserves.js | 6 ++++ app/models/reserve_item.rb | 6 +++- app/views/reserves/_reserves_item.html.erb | 41 ++++++++++++++-------- 4 files changed, 38 insertions(+), 16 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index b9fd256..64077c4 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -13,4 +13,5 @@ //= require jquery3 //= require rails-ujs //= require datatables +//= require bootstrap //= require_tree . diff --git a/app/assets/javascripts/reserves.js b/app/assets/javascripts/reserves.js index a458795..121e874 100644 --- a/app/assets/javascripts/reserves.js +++ b/app/assets/javascripts/reserves.js @@ -1,5 +1,11 @@ // Things that need to document to be loaded to do. $(document).ready(function(){ + $('#collapsePrint').on('show.bs.collapse', function() { + $('[data-target="#collapsePrint"] input[type="checkbox"]').prop( "checked", false ); + }) + $('#collapsePrint').on('hide.bs.collapse', function() { + $('[data-target="#collapsePrint"] input[type="checkbox"]').prop( "checked", true ); + }) $('#sw_url').on('keypress', function(e) { if (e.keyCode == 13) { e.preventDefault(); diff --git a/app/models/reserve_item.rb b/app/models/reserve_item.rb index 4e2fb35..06aad18 100644 --- a/app/models/reserve_item.rb +++ b/app/models/reserve_item.rb @@ -5,7 +5,7 @@ class ReserveItem include ActiveModel::Model - attr_accessor :title, :imprint, :ckey, :media, :online, :comment, :digital_type, :copies, :personal, :loan_period, :required + attr_accessor :title, :imprint, :ckey, :media, :online, :comment, :digital_type, :copies, :personal, :loan_period, :required, :print_needed def copies return @copies.presence.to_i if @copies.present? @@ -14,6 +14,10 @@ def copies 1 end + def print_needed + ActiveModel::Type::Boolean.new.cast(@print_needed) + end + def online? ActiveModel::Type::Boolean.new.cast(online) end diff --git a/app/views/reserves/_reserves_item.html.erb b/app/views/reserves/_reserves_item.html.erb index 03e360d..734afb4 100644 --- a/app/views/reserves/_reserves_item.html.erb +++ b/app/views/reserves/_reserves_item.html.erb @@ -30,27 +30,38 @@

-
-
- <%= f.label :copies, 'Print copies needed:', class: 'col-form-label' %> - <%= f.number_field :copies, class: 'form-control num_copies', max: 99 %> + <% if f.object.online? %> +
+
+ <% end %> +
+
+
+ <%= f.label :copies, 'Print copies needed:', class: 'col-form-label' %> + <%= f.number_field :copies, class: 'form-control num_copies', max: 99 %> +
- <%= f.label :personal, class: 'col-form-label' do %> - <%= f.check_box :personal %> + <%= f.label :personal, class: 'col-form-label' do %> + <%= f.check_box :personal %> - The instructor will loan a copy to the library - <% end %> -
+ The instructor will loan a copy to the library + <% end %> +
-
- <%= f.label :loan_period, 'Loan period:', class: 'col-form-label' %> +
+ <%= f.label :loan_period, 'Loan period:', class: 'col-form-label' %> - <% if ActiveModel::Type::Boolean.new.cast(item["media"]) %> - <%= f.hidden_field :loan_period %> - <% end %> + <% if ActiveModel::Type::Boolean.new.cast(item["media"]) %> + <%= f.hidden_field :loan_period %> + <% end %> - <%= f.select :loan_period, Settings.loan_periods.to_h.values, {}, class: "loan-period form-control loan-select #{"media" if ActiveModel::Type::Boolean.new.cast(item["media"])}", disabled: ActiveModel::Type::Boolean.new.cast(item["media"]) %> + <%= f.select :loan_period, Settings.loan_periods.to_h.values, {}, class: "loan-period form-control loan-select #{"media" if ActiveModel::Type::Boolean.new.cast(item["media"])}", disabled: ActiveModel::Type::Boolean.new.cast(item["media"]) %> +