From 52deeb65144bf4810d63160dab6fe6e515e3d1be Mon Sep 17 00:00:00 2001 From: "Michael J. Giarlo" Date: Thu, 9 Feb 2017 23:38:38 -0800 Subject: [PATCH] Add deposit agreement to checklist on work save form --- .../hyrax/save_work/save_work_control.es6 | 9 ++++++- app/views/hyrax/base/_form_progress.html.erb | 3 +++ config/locales/hyrax.en.yml | 1 + config/locales/hyrax.es.yml | 1 + spec/javascripts/save_work_spec.js | 25 ++++++++++++++----- .../base/_form_progress.html.erb_spec.rb | 10 +++++++- 6 files changed, 41 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/hyrax/save_work/save_work_control.es6 b/app/assets/javascripts/hyrax/save_work/save_work_control.es6 index 906fc2eed3..0c34ad9337 100644 --- a/app/assets/javascripts/hyrax/save_work/save_work_control.es6 +++ b/app/assets/javascripts/hyrax/save_work/save_work_control.es6 @@ -87,6 +87,7 @@ export default class SaveWorkControl { this.depositAgreement = new DepositAgreement(this.form, () => this.formStateChanged()) this.requiredMetadata = new ChecklistItem(this.element.find('#required-metadata')) this.requiredFiles = new ChecklistItem(this.element.find('#required-files')) + this.requiredAgreement = new ChecklistItem(this.element.find('#required-agreement')) new VisibilityComponent(this.element.find('.visibility'), this.adminSetWidget) this.preventSubmit() this.watchMultivaluedFields() @@ -151,8 +152,14 @@ export default class SaveWorkControl { if (filesValid && this.uploads.hasNewFiles && this.depositAgreement.mustAgreeAgain) { // Force the user to agree again this.depositAgreement.setNotAccepted() + this.requiredAgreement.uncheck() return false } - return this.depositAgreement.isAccepted + if (!this.depositAgreement.isAccepted) { + this.requiredAgreement.uncheck() + return false + } + this.requiredAgreement.check() + return true } } diff --git a/app/views/hyrax/base/_form_progress.html.erb b/app/views/hyrax/base/_form_progress.html.erb index 056aba7eaf..82793481dc 100644 --- a/app/views/hyrax/base/_form_progress.html.erb +++ b/app/views/hyrax/base/_form_progress.html.erb @@ -11,6 +11,9 @@ <% if Hyrax.config.work_requires_files? %>
  • <%= t('.required_files') %>
  • <% end %> + <% if Flipflop.active_deposit_agreement_acceptance? %> +
  • <%= t('.required_agreement') %>
  • + <% end %> diff --git a/config/locales/hyrax.en.yml b/config/locales/hyrax.en.yml index 602c064437..f38b7f8472 100644 --- a/config/locales/hyrax.en.yml +++ b/config/locales/hyrax.en.yml @@ -241,6 +241,7 @@ en: form_progress: required_descriptions: Describe your work required_files: Add files + required_agreement: Check deposit agreement requirements: Requirements items: actions: Actions diff --git a/config/locales/hyrax.es.yml b/config/locales/hyrax.es.yml index ac12cda97d..4eee90c5f7 100644 --- a/config/locales/hyrax.es.yml +++ b/config/locales/hyrax.es.yml @@ -240,6 +240,7 @@ es: form_progress: required_descriptions: Describa su trabajo required_files: Agregar archivos + required_agreement: Comprobar el acuerdo de depĆ³sito requirements: Requisitos items: actions: Acciones diff --git a/spec/javascripts/save_work_spec.js b/spec/javascripts/save_work_spec.js index bec64a32a3..672cce4006 100644 --- a/spec/javascripts/save_work_spec.js +++ b/spec/javascripts/save_work_spec.js @@ -11,7 +11,7 @@ describe("SaveWorkControl", function() { beforeEach(function() { var fixture = setFixtures('
    ' + '' + - '