Bugzilla – Attachment 3033 Details for
Bug 3881
No Page for Opac Privacy
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
bug3881.patch (text/plain), 53.82 KB, created by
Nicole C. Engard
on 2011-01-30 20:02:26 UTC
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Nicole C. Engard
Created:
2011-01-30 20:02:26 UTC
Size:
53.82 KB
patch
obsolete
>From: Ian Walls <ian.walls@bywatersolutions.com> >To: dev@bywatersolutions.com >Cc: Ian Walls <ian.walls@bywatersolutions.com> >Subject: [PATCH] Bug 3881: OPAC Privacy reimplementation >Date: Sun, 30 Jan 2011 12:51:09 -0500 >Message-Id: <1296409869-30793-1-git-send-email-ian.walls@bywatersolutions.com> >X-Mailer: git-send-email 1.5.6.5 >X-Original-Sender: ian.walls@bywatersolutions.com >X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: best > guess record for domain of koha@dev.bywatersolutions.com designates > 174.143.239.187 as permitted sender) smtp.mail=koha@dev.bywatersolutions.com >Precedence: list >Mailing-list: list dev@bywatersolutions.com; contact dev+owners@bywatersolutions.com >List-ID: <dev.bywatersolutions.com> >List-Help: <http://www.google.com/support/a/bywatersolutions.com/bin/static.py?hl=en_US&page=groups.cs>, > <mailto:dev+help@bywatersolutions.com> >Content-Type: text/plain; charset="utf-8" > >Reimplements Paul Poulain's original OPAC Privacy patch, with some minor improvements and changes to wording > >If the library enables the OPACPrivacy system preference along with the opacreadinghistory preference, and sets >an AnonymousPatron (must be a valid patron number in the database), the user will see a new tab upon login to >the OPAC, My Privacy. From there, the user can: > >- Set their OPAC Privacy to one of three values > 0 - Forever. This keeps their reading history unless they explicitly delete it; the bulk anonymiser won't touch it > 1 - Default. Keep reading history until either they delete it or the library does > 2 - Never. Instantly anonymises reading history upon item return > >- Instantly delete their reading history > There is a warning and a popup to confirm. I've removed Paul's extra confirm checkbox, which seemed redundant > >A note of which preference the patron has selected is added to the Patorn Details page in the staff client. This is read-only. > >This patch also consolidates Privacy system preferences into the Privacy section of the OPAC tab. > >Thank you to BibLibre for the original implmentation of this patch, and Los Gatos Public Library for funding and >testing the reimplementation. >--- > C4/Auth.pm | 1 + > C4/Circulation.pm | 44 ++++++++++-- > C4/Members.pm | 26 +++++++ > installer/data/mysql/de-DE/mandatory/sysprefs.sql | 4 +- > installer/data/mysql/en/mandatory/sysprefs.sql | 4 +- > .../1-Obligatoire/unimarc_standard_systemprefs.sql | 4 +- > installer/data/mysql/it-IT/necessari/sysprefs.sql | 9 ++- > installer/data/mysql/pl-PL/mandatory/sysprefs.sql | 4 +- > ...m_preferences_full_optimal_for_install_only.sql | 4 +- > ...m_preferences_full_optimal_for_install_only.sql | 5 +- > installer/data/mysql/updatedatabase.pl | 10 +++ > .../prog/en/modules/admin/preferences/opac.pref | 37 +++++++--- > .../prog/en/modules/members/moremember.tmpl | 5 ++ > koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc | 3 + > .../opac-tmpl/prog/en/modules/opac-privacy.tmpl | 72 ++++++++++++++++++++ > members/moremember.pl | 6 ++ > opac/opac-privacy.pl | 68 ++++++++++++++++++ > opac/opac-suggestions.pl | 2 +- > 18 files changed, 279 insertions(+), 29 deletions(-) > create mode 100644 koha-tmpl/opac-tmpl/prog/en/modules/opac-privacy.tmpl > create mode 100755 opac/opac-privacy.pl > >diff --git a/C4/Auth.pm b/C4/Auth.pm >index fc4e3e2..130974e 100644 >--- a/C4/Auth.pm >+++ b/C4/Auth.pm >@@ -418,6 +418,7 @@ sub get_template_and_user { > OpacNav => "" . C4::Context->preference("OpacNav"), > OpacPasswordChange => C4::Context->preference("OpacPasswordChange"), > OPACPatronDetails => C4::Context->preference("OPACPatronDetails"), >+ OPACPrivacy => C4::Context->preference("OPACPrivacy"), > OPACFinesTab => C4::Context->preference("OPACFinesTab"), > OpacTopissue => C4::Context->preference("OpacTopissue"), > RequestOnOpac => C4::Context->preference("RequestOnOpac"), >diff --git a/C4/Circulation.pm b/C4/Circulation.pm >index b741794..f7846ac 100644 >--- a/C4/Circulation.pm >+++ b/C4/Circulation.pm >@@ -1516,7 +1516,7 @@ sub AddReturn { > } > > if ($borrowernumber) { >- MarkIssueReturned($borrowernumber, $item->{'itemnumber'}, $circControlBranch); >+ MarkIssueReturned($borrowernumber, $item->{'itemnumber'}, $circControlBranch, '', $borrower->{'privacy'}); > $messages->{'WasReturned'} = 1; # FIXME is the "= 1" right? This could be the borrower hash. > } > >@@ -1621,7 +1621,7 @@ sub AddReturn { > > =head2 MarkIssueReturned > >- MarkIssueReturned($borrowernumber, $itemnumber, $dropbox_branch, $returndate); >+ MarkIssueReturned($borrowernumber, $itemnumber, $dropbox_branch, $returndate, $privacy); > > Unconditionally marks an issue as being returned by > moving the C<issues> row to C<old_issues> and >@@ -1633,6 +1633,9 @@ it's safe to do this, i.e. last non-holiday > issuedate. > if C<$returndate> is specified (in iso format), it is used as the date > of the return. It is ignored when a dropbox_branch is passed in. > >+C<$privacy> contains the privacy parameter. If the patron has set privacy to 2, >+the old_issue is immediately anonymised >+ > Ideally, this function would be internal to C<C4::Circulation>, > not exported, but it is currently needed by one > routine in C<C4::Accounts>. >@@ -1640,7 +1643,7 @@ routine in C<C4::Accounts>. > =cut > > sub MarkIssueReturned { >- my ( $borrowernumber, $itemnumber, $dropbox_branch, $returndate ) = @_; >+ my ( $borrowernumber, $itemnumber, $dropbox_branch, $returndate, $privacy ) = @_; > my $dbh = C4::Context->dbh; > my $query = "UPDATE issues SET returndate="; > my @bind; >@@ -1664,6 +1667,16 @@ sub MarkIssueReturned { > WHERE borrowernumber = ? > AND itemnumber = ?"); > $sth_copy->execute($borrowernumber, $itemnumber); >+ # anonymise patron checkout immediately if $privacy set to 2 and AnonymousPatron is set to a valid borrowernumber >+ if ( $privacy == 2) { >+ # The default of 0 does not work due to foreign key constraints >+ # The anonymisation will fail quietly if AnonymousPatron is not a valid entry >+ my $anonymouspatron = (C4::Context->preference('AnonymousPatron')) ? C4::Context->preference('AnonymousPatron') : 0; >+ my $sth_ano = $dbh->prepare("UPDATE old_issues SET borrowernumber=? >+ WHERE borrowernumber = ? >+ AND itemnumber = ?"); >+ $sth_ano->execute($anonymouspatron, $borrowernumber, $itemnumber); >+ } > my $sth_del = $dbh->prepare("DELETE FROM issues > WHERE borrowernumber = ? > AND itemnumber = ?"); >@@ -2417,11 +2430,14 @@ sub DeleteTransfer { > > =head2 AnonymiseIssueHistory > >- $rows = AnonymiseIssueHistory($borrowernumber,$date) >+ $rows = AnonymiseIssueHistory($date,$borrowernumber) > > This function write NULL instead of C<$borrowernumber> given on input arg into the table issues. > if C<$borrowernumber> is not set, it will delete the issue history for all borrower older than C<$date>. > >+If c<$borrowernumber> is set, it will delete issue history for only that borrower, regardless of their opac privacy >+setting (force delete). >+ > return the number of affected rows. > > =cut >@@ -2432,12 +2448,24 @@ sub AnonymiseIssueHistory { > my $dbh = C4::Context->dbh; > my $query = " > UPDATE old_issues >- SET borrowernumber = NULL >- WHERE returndate < '".$date."' >+ SET borrowernumber = ? >+ WHERE returndate < ? > AND borrowernumber IS NOT NULL > "; >- $query .= " AND borrowernumber = '".$borrowernumber."'" if defined $borrowernumber; >- my $rows_affected = $dbh->do($query); >+ >+ # The default of 0 does not work due to foreign key constraints >+ # The anonymisation will fail quietly if AnonymousPatron is not a valid entry >+ my $anonymouspatron = (C4::Context->preference('AnonymousPatron')) ? C4::Context->preference('AnonymousPatron') : 0; >+ my @bind_params = ($anonymouspatron, $date); >+ if (defined $borrowernumber) { >+ $query .= " AND borrowernumber = ?"; >+ push @bind_params, $borrowernumber; >+ } else { >+ $query .= " AND (SELECT privacy FROM borrowers WHERE borrowers.borrowernumber=old_issues.borrowernumber) <> 0"; >+ } >+ my $sth = $dbh->prepare($query); >+ $sth->execute(@bind_params); >+ my $rows_affected = $sth->rows; ### doublecheck row count return function > return $rows_affected; > } > >diff --git a/C4/Members.pm b/C4/Members.pm >index 00716cd..f402cbd 100644 >--- a/C4/Members.pm >+++ b/C4/Members.pm >@@ -93,6 +93,7 @@ BEGIN { > push @EXPORT, qw( > &ModMember > &changepassword >+ &ModPrivacy > ); > > #Delete data >@@ -2022,6 +2023,31 @@ sub DebarMember { > > } > >+=head2 ModPrivacy >+ >+=over 4 >+ >+my $success = ModPrivacy( $borrowernumber, $privacy ); >+ >+Update the privacy of a patron. >+ >+return : >+true on success, false on failure >+ >+=back >+ >+=cut >+ >+sub ModPrivacy { >+ my $borrowernumber = shift; >+ my $privacy = shift; >+ return unless defined $borrowernumber; >+ return unless $borrowernumber =~ /^\d+$/; >+ >+ return ModMember( borrowernumber => $borrowernumber, >+ privacy => $privacy ); >+} >+ > =head2 AddMessage > > AddMessage( $borrowernumber, $message_type, $message, $branchcode ); >diff --git a/installer/data/mysql/de-DE/mandatory/sysprefs.sql b/installer/data/mysql/de-DE/mandatory/sysprefs.sql >index 19f7c4d..02511d8 100644 >--- a/installer/data/mysql/de-DE/mandatory/sysprefs.sql >+++ b/installer/data/mysql/de-DE/mandatory/sysprefs.sql >@@ -9,7 +9,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); >-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Babeltheque',0,'Turn ON Babeltheque content - See babeltheque.com to subscribe to this service','','YesNo'); > > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); >@@ -79,6 +80,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','Important links here.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACNoResultsFound','','Display this HTML when no results are found for a search in the OPAC','70|10','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); >diff --git a/installer/data/mysql/en/mandatory/sysprefs.sql b/installer/data/mysql/en/mandatory/sysprefs.sql >index b597b02..0b75e98 100644 >--- a/installer/data/mysql/en/mandatory/sysprefs.sql >+++ b/installer/data/mysql/en/mandatory/sysprefs.sql >@@ -9,7 +9,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); >-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Babeltheque',0,'Turn ON Babeltheque content - See babeltheque.com to subscribe to this service','','YesNo'); > > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); >@@ -79,6 +80,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','Important links here.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACNoResultsFound','','Display this HTML when no results are found for a search in the OPAC','70|10','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); >diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql >index b051ba3..757f255 100644 >--- a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql >+++ b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql >@@ -10,7 +10,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Utilisé pour définir la localisation des web services Amazon','US|CA|DE|FR|JP|UK','Choice'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','Voir : http://aws.amazon.com','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag', '', 'Voir : associates.amazon.com/gp/flex/associates/apply-login.html', '', ''); >-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions', '0', 'Attribuée au n° de l''emprunteur anonyme pour activer les suggestions anonymes. 0, pas de suggestions anonymes.', '', 'free'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Babeltheque',0,'Active les contenus Babelthèque - Voir babeltheque.com pour s''abonner','','YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep', '--', 'Le séparateur utilisé dans les autorités. Habituellement --', '10', 'free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('autoBarcode', 'OFF', 'Utilisé pour générer automatiquement les codes barre: incremental sera de la forme 1, 2, 3; annual de la forme 2007-0001, 2007-0002, hbyymmincr de la forme HB09010001 où HB=la branche d''appartenance', 'incremental|annual|hbyymmincr|OFF', 'Choice'); >@@ -91,6 +92,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacMainUserBlock','Bienvenue dans Koha...\r\n<hr>','Bloc HTML défini par la bibliothèque, qui apparaît sur la page principale de l''OPAC','70|10','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav', '', 'Ce paramètre contient du code HTML, qui est mis au début de la barre de navigation, sur la gauche, à l''OPAC.','70|10', 'Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange', '1', 'Si ce paramètre est activé, les adhérents peuvent modifier leur mot de passe à l''OPAC. A désactiver si vous utilisez l''authentification ldap', '', 'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory', '1', 'Si ce paramètre est activé, les adhérents peuvent consulter leur historique de lecture à l''OPAC', '', 'YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage', '', 'Ce paramètre contient une URL. Il permet de définir l''image qui est affichée en haut, à gauche de l''OPAC', '', 'free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet', '', 'Ce paramètre a la forme d''une URL. Il définit la feuille de style utilisée à l''OPAC. S''il est vide, vous aurez la feuille de style par défault de Koha', '', 'free'); >diff --git a/installer/data/mysql/it-IT/necessari/sysprefs.sql b/installer/data/mysql/it-IT/necessari/sysprefs.sql >index 06f279d..cc00e68 100644 >--- a/installer/data/mysql/it-IT/necessari/sysprefs.sql >+++ b/installer/data/mysql/it-IT/necessari/sysprefs.sql >@@ -9,6 +9,7 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('advancedMARCeditor','0','','Se su ON, nel MARC editor non verranno visualizzati i campi/sottocampi delle descrizioni.','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AdvancedSearchTypes','itemtypes','itemtypes|ccode','Selezionare quale set di campi comprenderà la ricerca avanzata per tipo.','Choice'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowHoldsOnDamagedItems','1','','Permette l\'inserimento di richieste di prenotazione su copie danneggiate','YesNo'); >+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowNotForLoanOverride','0','','Se ON, abilita il bibliotecario a poter scegliere di dare in prestito un documento normalmente escluso.','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowOnShelfHolds','1','','Permette di inserire prenotazioni su documenti non in prestito.','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowRenewalLimitOverride','1','','Se On, permette che i limiti ai rinnovi possano essere superati dal bibliotecario nel modulo della circolazione','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonAssocTag','','','See: http://aws.amazon.com','free'); >@@ -17,7 +18,9 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonLocale','US','US|CA|DE|FR|JP|UK','Usalo per definire il tuo specifico Amazon.com Web Services','Choice'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonReviews','0','','Visualizza Amazon reviews sull\'interfaccia dello staff.','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonSimilarItems','0','','Messa su ON attiva l\' Amazon Similar Items feature - Devi settare i valori in AWSAccessKeyID e in AmazonAssocTag per usarla','YesNo'); >-insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AnonSuggestions','0','','Imposta un utente anonimo per abilitare i suggerimenti d\'acquisto da utenti non registrati.','free'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); >+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AuthDisplayHierarchy','0','','Se ON attiva la gestione gerarchica dell\'authority. Da usare solo con thesaurus','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('authoritysep','--','10','Carattere usato nella visualizzazione come separatore della lista delle authority. Normalmente è --','free'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('autoBarcode','annual','incremental|annual|hbyymmincr|OFF','Da usare per impostare la generazione automatica dei barcode: incremental per la tipologia 1, 2, 3; annuale per 2007-0001, 2007-0002; hbyymmincr per HB08010001 dove HB sta per Home Branch (sottobiblioteca predefinita)','Choice'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AutoEmailOpacUser','0','','Quando viene creato un account, invia notifica via email all\'utente con i dettagli del nuovo account.','YesNo'); >@@ -89,10 +92,12 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, > -- insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('marcflavour','UNIMARC','MARC21|UNIMARC','Define global MARC flavor (MARC21 or UNIMARC) used for character encoding','Choice'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MARCOrgCode','0','','Il MARC Organization Code - http://www.loc.gov/marc/organizations/orgshome.html','free'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MaxFine','9999','','Multa massima che un utente potrebbe avere per un singolo ritardo.','Integer'); >+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('maxItemsInSearchResults','20','','Specifica il numero massimo di copie visualizzate nelle pagine di risultati','free'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('maxoutstanding','5','','Definisci il numero massimo di operazioni in corso (prestiti+prenotazioni) dopo il quale si blocca la possibilità di fare prenotazioni','Integer'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('maxreserves','2','','Definisce il numero massimo di prenotazioni che un utente può effettuare.','Integer'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('maxItemsInSearchResults',20,'Specify the maximum number of items to display for each result on a page of results',NULL,'free'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('memberofinstitution','0','','Se ON, gli utenti possono essere linkati alle istituzioni.','YesNo'); >+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MergeAuthoritiesOnUpdate','1','','Se ON, aggiornando le authorities saranno automaticamente aggiornati anche i record bibliografici','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('minPasswordLength','3','','Specifica la lunghezza minima della password sia per l\'utente che per lo staff','free'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('noissuescharge','5','','Definisce lâammontare massimo di multa che un utente può raggiungere prima di venir sospeso dal prestito','Integer'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('noItemTypeImages','0','','Se Attivo, disabilita le immagini relative al tipo documento','YesNo'); >@@ -130,6 +135,7 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACNoResultsFound','','Display this HTML when no results are found for a search in the OPAC','70|10','Textarea'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACnumSearchResults','20','','Specifica il numero massimo di risposte da visualizzare nella pagina dei risultati ','Integer'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacPasswordChange','1','','Se ON, abilita l\'utente alla modifica della password nell\'OPAC (disabiltare la funzione quando è usato LDAP auth)','YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacreadinghistory','1','','Se ON, si abilita la visualizzazione dello storico circolazione utente nell\'OPAC','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacRenewalAllowed','0','','Se ON, gli utenti possono rinnovare i propri prestiti direttamente dal proprio account OPAC','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACShelfBrowser','0','','Abilita/disabilita una ricerca per scaffale (Shelf Browser) nella pagina dettagli documento. ATTENZIONE: questa feature consuma molte risorse nelle collezioni molto grandi.','YesNo'); >@@ -153,6 +159,7 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('QueryStemming','0','','Se ON, abilita le ricerche con lo stemming (uso di forme variabili)','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('QueryWeightFields','0','','Se ON, abilita le opzioni di ricerca per dare uno peso diverso ai vari campi. Opzione sperimentale','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RandomizeHoldsQueueWeight','0','','Se ON, la coda delle prenotazione nella circolazione avrà un ordine casuale per tutte le collocazioni o solo per quelle collocazioni specificate sotto StaticHoldsQueueWeight, se impostato.','YesNo'); >+insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ReceiveBackIssues','5','','Numero di periodici precedenti da visualizzare quando si guarda il dettaglio di una sottoscrizione',''); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RenewalPeriodBase','date_due','date_due|now','Per impostare se la data di rinnovo deve essere conteggiata a partire dalla data di scadenza del prestito o a partire dal momento in cui lâutente ne chiede il rinnovo.','Choice'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RenewSerialAddsSuggestion','0','','Se ON, puoi aggiungere un nuovo suggerimento durante il rinnovo di un periodico','YesNo'); > insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RequestOnOpac','1','','Se ON, si abilitano gli utenti globalmente a inserire prenotazione nell\'OPAC','YesNo'); >diff --git a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql >index c87729c..8689c4c 100644 >--- a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql >+++ b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql >@@ -9,7 +9,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); >-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Babeltheque',0,'Turn ON Babeltheque content - See babeltheque.com to subscribe to this service','','YesNo'); > > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); >@@ -78,6 +79,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacMainUserBlock','Welcome to Koha...\r\n<hr>','A user-defined block of HTML in the main content area of the opac main page','70|10','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','Important links here.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); >diff --git a/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql >index 993c6c3..c862e60 100644 >--- a/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql >+++ b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql >@@ -24,7 +24,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); >-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); > > > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); >@@ -107,6 +108,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacMainUserBlock','ÐобÑо пожаловаÑÑ Ð² ÐÐÐС Koha...\r\n<hr>','A user-defined block of HTML in the main content area of the opac main page','50|20','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','ÐдеÑÑ Ð±ÑдÑÑ Ð²Ð°Ð¶Ð½Ñе ÑÑÑлки.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); >diff --git a/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql >index 3416b2e..82e285b 100644 >--- a/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql >+++ b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql >@@ -24,8 +24,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); >-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); >- >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); > > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('autoBarcode','incremental','Used to autogenerate a barcode: incremental will be of the form 1, 2, 3; annual of the form 2007-0001, 2007-0002; hbyymmincr of the form HB08010001 where HB=Home Branch','incremental|annual|hbyymmincr|OFF','Choice'); >@@ -107,6 +107,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacMainUserBlock','ÐÑÑаÑмо Ñ ÐÐÐС Koha...\r\n<hr>','A user-defined block of HTML in the main content area of the opac main page','50|20','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','ТÑÑ Ð±ÑдÑÑÑ Ð²Ð°Ð¶Ð»Ð¸Ð²Ñ Ð¿Ð¾ÑиланнÑ.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); >+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); > INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index f03f48f..2d89b02 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -3970,6 +3970,16 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { > SetVersion ($DBversion); > } > >+$DBversion = '3.03.00.xxx'; >+if (C4::Context->preference("Version") < TransformToNum($DBversion)) { >+ # reimplement OpacPrivacy system preference >+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo')"); >+ $dbh->do("ALTER TABLE `borrowers` ADD `privacy` INTEGER NOT NULL DEFAULT 1;"); >+ $dbh->do("ALTER TABLE `deletedborrowers` ADD `privacy` INTEGER NOT NULL DEFAULT 1;"); >+ print "Upgrade to $DBversion done (OpacPrivacy reimplementation)\n"; >+ SetVersion($DBversion); >+}; >+ > =head1 FUNCTIONS > > =head2 DropAllForeignKeys($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >index 8707c25..3014e63 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >@@ -202,12 +202,6 @@ OPAC: > no: "Don't allow" > - patrons to store items in a temporary "Cart" on the OPAC. > - >- - pref: opacreadinghistory >- choices: >- yes: Allow >- no: "Don't allow" >- - patrons to see what books they have checked out in the past. >- - > - pref: OpacTopissue > choices: > yes: Allow >@@ -245,12 +239,6 @@ OPAC: > yes: Limit > no: "Don't limit" > - "patrons' searches to the library they are registered at." >- - >- - pref: AnonSuggestions >- choices: >- yes: Allow >- no: "Don't allow" >- - "patrons that aren't logged in to make purchase suggestions." > # - > # This system preference does not actually affect anything > # - pref: OpacBrowser >@@ -288,12 +276,37 @@ OPAC: > - purchase suggestions from other patrons on the OPAC. > Privacy: > - >+ - pref: AnonSuggestions >+ choices: >+ yes: Allow >+ no: "Don't allow" >+ - "patrons that aren't logged in to make purchase suggestions. Suggestions are connected to the AnonymousPatron syspref" >+ - >+ - pref: opacreadinghistory >+ choices: >+ yes: Allow >+ no: "Don't allow" >+ - patrons to see what books they have checked out in the past. >+ - > - pref: EnableOpacSearchHistory > default: 0 > choices: > yes: Keep > no: "Don't keep" > - patron search history in the OPAC. >+ - >+ - pref: OPACPrivacy >+ default: 0 >+ choices: >+ yes: Allow >+ no: "Don't allow" >+ - patrons to choose their own privacy settings for their reading history. This requires opacreadinghistory and AnonymousPatron >+ - >+ - Use borrowernumber >+ - pref: AnonymousPatron >+ class: integer >+ - as the Anonymous Patron (for anonymous suggestions and reading history) >+ > Shelf Browser: > - > - pref: OPACShelfBrowser >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl >index 030c78a..2cdc13a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl >@@ -320,6 +320,11 @@ function validate1(date) { > > <li><span class="label">Library: </span><!-- TMPL_VAR NAME="branchname" --></li> > >+ <!-- TMPL_IF NAME="OPACPrivacy" --><li><span class="label">Privacy Pref:</span> >+ <!-- TMPL_IF NAME="privacy0" -->Forever<!-- /TMPL_IF --> >+ <!-- TMPL_IF NAME="privacy1" -->Default<!-- /TMPL_IF --> >+ <!-- TMPL_IF NAME="privacy2" -->Never<!-- /TMPL_IF --> >+ </li><!-- /TMPL_IF --> > <!-- TMPL_IF NAME="sort1" --><li><span class="label">Sort field 1:</span><!-- TMPL_VAR NAME="lib1" --></li><!-- /TMPL_IF --> > <!-- TMPL_IF NAME="sort2" --><li><span class="label">Sort field 2:</span><!-- TMPL_VAR NAME="lib2" --></li><!-- /TMPL_IF --> > <li><span class="label">OPAC login: </span><!-- TMPL_VAR name="userid" --></li> >diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc b/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc >index b9e4f74..86ba2f6 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc >+++ b/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc >@@ -17,6 +17,9 @@ > <!-- /TMPL_IF --> > <!-- TMPL_IF NAME="opacreadinghistory" --> > <!-- TMPL_IF NAME="readingrecview" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/opac-readingrecord.pl">my reading history</a></li> >+ <!-- TMPL_IF NAME="OPACPrivacy" --> >+ <!-- TMPL_IF NAME="privacyview" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/opac-privacy.pl">my privacy</a></li> >+ <!-- /TMPL_IF --> > <!-- /TMPL_IF --> > <!-- TMPL_IF name="suggestion" --> > <!-- TMPL_UNLESS NAME="AnonSuggestions" --> >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-privacy.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-privacy.tmpl >new file mode 100644 >index 0000000..92c8973 >--- /dev/null >+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-privacy.tmpl >@@ -0,0 +1,72 @@ >+<!-- TMPL_INCLUDE name="doc-head-open.inc" --><!-- TMPL_IF NAME="LibraryNameTitle" --><!-- TMPL_VAR NAME="LibraryNameTitle" --><!-- TMPL_ELSE -->Koha Online<!-- /TMPL_IF --> Catalog › Privacy management for <!-- TMPL_VAR name="firstname" --> <!-- TMPL_VAR name="surname" --> >+<!-- TMPL_INCLUDE NAME="doc-head-close.inc" --> >+</head> >+<body> >+<div id="doc3" class="yui-t1"> >+ <div id="bd"> >+<!-- TMPL_INCLUDE name="masthead.inc" --> >+ >+ <div id="yui-main"> >+ <div class="yui-b"><div class="yui-g"> >+ <div class="container"> >+ <h3><a href="/cgi-bin/koha/opac-user.pl"><!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR NAME="surname" -->'s account</a> <img src="<!-- TMPL_VAR NAME="themelang" -->l../../images/caret.gif" width="16" height="16" alt=">" border="0" /> Privacy policy </h3> >+ >+ <!-- TMPL_IF name="deleted" --> >+ <div class="dialog message">Your reading history has been deleted.</div> >+ <!-- /TMPL_IF --> >+ <!-- TMPL_IF NAME= "privacy_updated" --> >+ <div class="dialog message">Your privacy rules have been updated</div> >+ <!-- /TMPL_IF --> >+ >+ <h2>Privacy rule</h2> >+ <!-- TMPL_IF NAME= "Ask_data" --> >+ <p>We take great care in protecting your privacy. On this screen, you can define how long we keep your reading history.</p> >+ <p>Your options are: <p> >+ <form action="/cgi-bin/koha/opac-privacy.pl" method="post" id="opac-privacy-update-form"> >+ <input type="hidden" name="op" value="update_privacy" /> >+ <ul id="opac-privacy-options-list"> >+ <li class="privacy0">Forever: keep my reading history without limit. This is the option for users who want to keep track of what they are reading.</li> >+ <li class="privacy1">Default: keep my reading history according to local laws. This is the default option : the library will keep your reading history for the duration permitted by local laws.</li> >+ <li class="privacy2">Never: Delete my reading history immediately. This will delete all record of the item that was checked-out upon check-in.</li> >+ </ul> >+ <p id="note1">Please note that information on any book still checked-out must be kept by the library no matter which privacy option you choose.</p> >+ <p id="note2">Please also note that the library staff can't update these values for you: it's your privacy!</p> >+ <label for:"privacy">Please choose your privacy rule:</label> >+ <select name="privacy"> >+ <!-- TMPL_IF name="privacy0" --> >+ <option value="0" selected="1" class="privacy0">Forever</option> >+ <!-- TMPL_ELSE --> >+ <option value="0" class="privacy0">Forever</option> >+ <!-- /TMPL_IF --> >+ <!-- TMPL_IF name="privacy1" --> >+ <option value="1" selected="1" class="privacy1">Default</option> >+ <!-- TMPL_ELSE --> >+ <option value="1" class="privacy1">Default</option> >+ <!-- /TMPL_IF --> >+ <!-- TMPL_IF name="privacy2" --> >+ <option value="2" selected="1" class="privacy2">Never</option> >+ <!-- TMPL_ELSE --> >+ <option value="2" class="privacy2">Never</option> >+ <!-- /TMPL_IF --> >+ </select> >+ <input type="Submit" value="Submit" /> >+ </form> >+ <h2>Immediate deletion</h2> >+ <form action="/cgi-bin/koha/opac-privacy.pl" method="post" id="opac-privacy-delete-form"> >+ <input type="hidden" name="op" value="delete_record" /> >+ <p>Whatever your privacy rule you choose, you can delete all your reading history immediately by clicking here. <b>BE CAREFUL</b>. Once you've confirmed the deletion, no one can retrieve the list!</p> >+ <input type="submit" value="Immediate deletion" onclick="return confirmDelete(_('Warning: Cannot be undone. Please confirm once again'));" /> >+ </form> >+ <!-- /TMPL_IF --> >+ </div> >+</div> >+</div> >+</div> >+<div class="yui-b"> >+<div class="container"> >+<!--TMPL_INCLUDE NAME="navigation.inc" --> >+<!-- TMPL_INCLUDE name="usermenu.inc" --> >+</div> >+</div> >+</div> >+<!-- TMPL_INCLUDE NAME="opac-bottom.inc" --> >diff --git a/members/moremember.pl b/members/moremember.pl >index 7de3fb0..9360e2e 100755 >--- a/members/moremember.pl >+++ b/members/moremember.pl >@@ -230,6 +230,12 @@ my $lib2 = &GetSortDetails( "Bsort2", $data->{'sort2'} ); > $template->param( lib1 => $lib1 ) if ($lib1); > $template->param( lib2 => $lib2 ) if ($lib2); > >+# Show OPAC privacy preference is system preference is set >+if ( C4::Context->preference('OPACPrivacy') ) { >+ $template->param( OPACPrivacy => 1); >+ $template->param( "privacy".$data->{'privacy'} => 1); >+} >+ > # current issues > # > my $issue = GetPendingIssues($borrowernumber); >diff --git a/opac/opac-privacy.pl b/opac/opac-privacy.pl >new file mode 100755 >index 0000000..ca50560 >--- /dev/null >+++ b/opac/opac-privacy.pl >@@ -0,0 +1,68 @@ >+#!/usr/bin/perl >+# This script lets the users change their privacy rules >+# >+# copyright 2009, BibLibre, paul.poulain@biblibre.com >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 2 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along with >+# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, >+# Suite 330, Boston, MA 02111-1307 USA >+ >+use strict; >+use CGI; >+ >+use C4::Auth; # checkauth, getborrowernumber. >+use C4::Context; >+use C4::Circulation; >+use C4::Members; >+use C4::Output; >+use C4::Dates; >+ >+my $query = new CGI; >+my $dbh = C4::Context->dbh; >+ >+my ( $template, $borrowernumber, $cookie ) = get_template_and_user( >+ { >+ template_name => "opac-privacy.tmpl", >+ query => $query, >+ type => "opac", >+ authnotrequired => 0, >+ flagsrequired => { borrow => 1 }, >+ debug => 1, >+ } >+); >+ >+my $op = $query->param("op"); >+my $privacy = $query->param("privacy"); >+ >+if ($op eq "update_privacy") >+{ >+ ModPrivacy($borrowernumber,$privacy); >+ $template->param('privacy_updated' => 1); >+} >+if ($op eq "delete_record") { >+ # delete all reading records for items returned >+ # uses a hardcoded date ridiculously far in the future >+ AnonymiseIssueHistory('2999-12-12',$borrowernumber); >+ # confirm the user the deletion has been done >+ $template->param('deleted' => 1); >+} >+# get borrower privacy .... >+my ( $borr ) = GetMemberDetails( $borrowernumber ); >+ >+$template->param( 'Ask_data' => '1', >+ 'privacy'.$borr->{'privacy'} => 1, >+ 'firstname' => $borr->{'firstname'}, >+ 'surname' => $borr->{'surname'}, >+ 'privacyview' => 1, >+); >+ >+output_html_with_http_headers $query, $cookie, $template->output; >diff --git a/opac/opac-suggestions.pl b/opac/opac-suggestions.pl >index a2a6670..2f0dc36 100755 >--- a/opac/opac-suggestions.pl >+++ b/opac/opac-suggestions.pl >@@ -48,7 +48,7 @@ if ( C4::Context->preference("AnonSuggestions") ) { > } > ); > if ( !$$suggestion{suggestedby} ) { >- $$suggestion{suggestedby} = C4::Context->preference("AnonSuggestions"); >+ $$suggestion{suggestedby} = C4::Context->preference("AnonymousPatron"); > } > } > else { >-- >1.5.6.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 3881
: 3033