From 69777679a74005bd0dad4932ee15333928fd3630 Mon Sep 17 00:00:00 2001 From: Andrew Isherwood Date: Tue, 12 Jan 2021 13:49:52 +0000 Subject: [PATCH] Bug 27378: Add sysprefs This commit adds 4 new sysprefs: - CookieConsent - the master on/off for this functionality - ConsentJS - The configuration for JS code that requires consent prior to running. - CookieConsentBar: Allows the admin to specify the HTML that will be displayed in the consent bar that appears at the bottom of the page - CookieConsentPopup: Allows the admin to specify the HTML that will be displayed in the cookie consent popup Signed-ff-by: Barry Cannon (cherry picked from commit d17ee9aff67f99393aa47376a33764840eb2ab38) --- .../bug_27378_add_ConsentJS_syspref.perl | 8 +++++++ ...ug_27378_add_CookieConsentBar_syspref.perl | 8 +++++++ ..._27378_add_CookieConsentPopup_syspref.perl | 8 +++++++ .../bug_27378_add_CookieConsent_syspref.perl | 8 +++++++ installer/data/mysql/mandatory/sysprefs.sql | 4 ++++ .../en/modules/admin/preferences/patrons.pref | 24 +++++++++++++++++++ 6 files changed, 60 insertions(+) create mode 100644 installer/data/mysql/atomicupdate/bug_27378_add_ConsentJS_syspref.perl create mode 100644 installer/data/mysql/atomicupdate/bug_27378_add_CookieConsentBar_syspref.perl create mode 100644 installer/data/mysql/atomicupdate/bug_27378_add_CookieConsentPopup_syspref.perl create mode 100644 installer/data/mysql/atomicupdate/bug_27378_add_CookieConsent_syspref.perl diff --git a/installer/data/mysql/atomicupdate/bug_27378_add_ConsentJS_syspref.perl b/installer/data/mysql/atomicupdate/bug_27378_add_ConsentJS_syspref.perl new file mode 100644 index 0000000000..b219ead1e7 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_27378_add_ConsentJS_syspref.perl @@ -0,0 +1,8 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do( q| INSERT IGNORE INTO systempreferences (variable, value, explanation, options, type) VALUES ('ConsentJS', '', 'Specify Javascript that requires user consent to run (e.g. tracking code)', '', 'Free'); | ); + + # Always end with this (adjust the bug info) + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 27378 - Add ConsentJS syspref)\n"; +} diff --git a/installer/data/mysql/atomicupdate/bug_27378_add_CookieConsentBar_syspref.perl b/installer/data/mysql/atomicupdate/bug_27378_add_CookieConsentBar_syspref.perl new file mode 100644 index 0000000000..c1f2f82cf6 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_27378_add_CookieConsentBar_syspref.perl @@ -0,0 +1,8 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do( q{ INSERT IGNORE INTO systempreferences (variable, value, explanation, options, type) VALUES ('CookieConsentBar', '', 'Show the following HTML in the cookie consent bar that is displayed at the bottom of the screen', '70|10', 'Textarea'); } ); + + # Always end with this (adjust the bug info) + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 27378 - Add CookieConsentBar syspref)\n"; +} diff --git a/installer/data/mysql/atomicupdate/bug_27378_add_CookieConsentPopup_syspref.perl b/installer/data/mysql/atomicupdate/bug_27378_add_CookieConsentPopup_syspref.perl new file mode 100644 index 0000000000..b7217c2800 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_27378_add_CookieConsentPopup_syspref.perl @@ -0,0 +1,8 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do( q| INSERT IGNORE INTO systempreferences (variable, value, explanation, options, type) VALUES ('CookieConsentPopup', '', 'Show the following HTML in the cookie consent popup', '70|10', 'Textarea'); | ); + + # Always end with this (adjust the bug info) + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 27378 - Add CookieConsentPopup syspref)\n"; +} diff --git a/installer/data/mysql/atomicupdate/bug_27378_add_CookieConsent_syspref.perl b/installer/data/mysql/atomicupdate/bug_27378_add_CookieConsent_syspref.perl new file mode 100644 index 0000000000..3592a64248 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_27378_add_CookieConsent_syspref.perl @@ -0,0 +1,8 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do( q| INSERT IGNORE INTO systempreferences (variable, value, explanation, options, type) VALUES ('CookieConsent', '0', 'Require cookie consent to be displayed', '', 'YesNo'); | ); + + # Always end with this (adjust the bug info) + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 27378 - Add CookieConsent syspref)\n"; +} diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index a9e8a97e49..461621a785 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -157,8 +157,12 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('ComponentSortField','title','call_number|pubdate|acqdate|title|author','Specify the default field used for sorting','Choice'), ('ComponentSortOrder','asc','asc|dsc|az|za','Specify the default sort order','Choice'), ('ConfirmFutureHolds','0','','Number of days for confirming future holds','Integer'), +('ConsentJS', '', NULL, 'Specify Javascript that requires user consent to run (e.g. tracking code)', 'Free'), ('ConsiderOnSiteCheckoutsAsNormalCheckouts','1',NULL,'Consider on-site checkouts as normal checkouts','YesNo'), ('ContentWarningField', '', NULL, 'MARC field to use for content warnings', 'Free'), +('CookieConsent', '0', NULL, 'Require cookie consent to be displayed', 'YesNo'), +('CookieConsentBar', '', '70|10', 'Show the following HTML in the cookie consent bar that is displayed at the bottom of the screen', 'Textarea'), +('CookieConsentPopup', '', '70|10', 'Show the following HTML in the cookie consent popup', 'Textarea'), ('CreateAVFromCataloguing', '1', '', 'Ability to create authorized values from the cataloguing module', 'YesNo'), ('CronjobLog','0',NULL,'If ON, log information from cron jobs.','YesNo'), ('CumulativeRestrictionPeriods',0,NULL,'Cumulate the restriction periods instead of keeping the highest','YesNo'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref index fa71e787e7..55e8e10476 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref @@ -382,6 +382,30 @@ Patrons: - days and remove anonymized patron accounts after - pref: PatronRemovalDelay - "days.
IMPORTANT: No action is performed when these delays are empty (no text). But a zero value ('0') is interpreted as no delay (do it now)! The actions are performed by the cleanup database cron job." + - + - pref: CookieConsent + choices: + yes: Require + no: "Don't require" + - cookie consent to be displayed + - + - Specify Javascript that requires user consent to run (e.g. tracking code) + - pref: ConsentJS + type: modaljs + initiator: populateConsentJS + processor: prepareConsentJS + - + - Show the following HTML in the cookie consent bar that is displayed at the bottom of the screen + - pref: CookieConsentBar + type: textarea + syntax: text/html + class: code + - + - Show the following HTML in the cookie consent popup + - pref: CookieConsentPopup + type: textarea + syntax: text/html + class: code Security: - - Login passwords for staff and patrons must be at least -- 2.37.1 (Apple Git-137.1)