[Koha-patches] [PATCH] New Messaging System.
Liz Rea
lrea at nekls.org
Mon Jul 27 23:17:36 CEST 2009
Hmm. I'd think it would be beneficial to port the new messaging system
to the SIP, but I see where you're coming from.
I figured if someone was going to rewrite the messaging it would be
nice to get that private/public note display on the SIP worked out.
Maybe later.
Thanks for clarifying!
Liz Rea
NEKLS
On Jul 27, 2009, at 10:36 AM, Wagner, Jane wrote:
> This system doesn't remove the patron record circ & OPAC notes, it
> just creates a new messaging system using a separate table. It
> wasn't designed to be SIP aware; that's something to consider as a
> future enhancement. However SIP is working with the existing notes
> fields will not be affected by this one.
>
> Right now, these notes are visible in the OPAC after login (if
> directed at the patron) and on the patron checkout tab (if directed
> to either patron & staff). I've noticed that the patron record circ
> field in particular is frequently used for what one might call
> "permanent" notes, such as "has parents' permission to borrow X."
> Those shouldn’t be overwritten. The new notes are for more
> transitory things, like "bring your ID next time you visit the
> library." The notes can be predefined or written individually as
> needed for each patron. Here's a screen shot:
>
> <image001.png>
>
> Jane Wagner
> Library Systems Analyst
> PTFS Inc.
> Content Management and Library Solutions
> 6400 Goldsboro Road, Suite 200
> Bethesda, MD 20817
> (301) 654-8088 x 151
> jwagner at ptfs.com
>
>
> -----Original Message-----
> From: koha-patches-bounces at lists.koha.org [mailto:koha-patches-bounces at lists.koha.org
> ] On Behalf Of Liz Rea
> Sent: Monday, July 27, 2009 11:25 AM
> To: Colin Campbell
> Cc: NExpress Help; patches at koha.org
> Subject: Re: [Koha-patches] [PATCH] New Messaging System.
>
> Will this also change the SIP implementation of OPAC/Circulation
> Notes?
>
> Just curious, as we currently have a problem with our 3M machines
> where the "private" note is displayed to patrons on the self check,
> thusly making it a "public" note. If not done already, at some point
> the new fields will need to be accommodated in the SIP implementation
> (or passing of the note field removed entirely).
>
> Liz Rea
> NEKLS
>
> On Jul 25, 2009, at 4:03 AM, Colin Campbell wrote:
>
> > This system is indended to replace the old opacnotes
> > and borrowernotes fields in the borrowers table.
> > This system allows an unlimited number of Libraran and OPAC notes
> > to be
> > attached to a borrower. Each note has a message, a message type,
> > the data it was created, and which library created it.
> > Each message can only be deleted by the library that created it
> > unless the syspref
> > AllowAllMessageDeletion has been set.
> >
> > This system may be used simultaneously with the old notes system
> > and does not affect it in any way.
> >
> > A new database table (messages) was added for this feature.
> >
> > The System also allows for pre-defined notes for Borrower records
> >
> > To use these, just create authorised values with the category
> > BOR_NOTES
> > where the Authorized Value is the short description shown in the
> > pulldown,
> > and the description is the text that should be in the note.
> >
> > Original Author: PTFS Contractor <dbavousett at ptfs.com>
> >
> > This work co-sponsered by Middletown Township Public Library,
> > Middletown, NJ, USA
> > and East Brunswick Public Library, East Brunswick, NJ, USA
> >
> > Signed-off-by: Colin Campbell <colin.campbell at ptfs-europe.com>
> > ---
> > C4/Members.pm | 142 +++++++++
> ++
> > ++++++++-
> > admin/systempreferences.pl | 1 +
> > circ/add_message.pl | 55 ++++++++
> > circ/circulation.pl | 14 ++
> > circ/del_message.pl | 53 ++++++++
> > installer/data/mysql/en/mandatory/sysprefs.sql | 1 +
> > .../1-Obligatoire/unimarc_standard_systemprefs.sql | 1 +
> > installer/data/mysql/kohastructure.sql | 14 ++
> > installer/data/mysql/updatedatabase.pl | 17 +++
> > .../prog/en/modules/circ/circulation.tmpl | 89 +++++++++
> ++
> > +-
> > koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl | 12 ++
> > opac/opac-user.pl | 5 +
> > 12 files changed, 400 insertions(+), 4 deletions(-)
> > create mode 100755 circ/add_message.pl
> > create mode 100755 circ/del_message.pl
> >
> > diff --git a/C4/Members.pm b/C4/Members.pm
> > index b2ce916..5525b60 100644
> > --- a/C4/Members.pm
> > +++ b/C4/Members.pm
> > @@ -75,6 +75,11 @@ BEGIN {
> > &GetBorrowersWithIssuesHistoryOlderThan
> >
> > &GetExpiryDate
> > +
> > + &AddMessage
> > + &DeleteMessage
> > + &GetMessages
> > + &GetMessagesCount
> > );
> >
> > #Modify data
> > @@ -93,7 +98,7 @@ BEGIN {
> > &AddMember
> > &add_member_orgs
> > &MoveMemberToDeleted
> > - &ExtendMemberSubscriptionTo
> > + &ExtendMemberSubscriptionTo
> > );
> >
> > #Check data
> > @@ -2045,6 +2050,141 @@ sub DebarMember {
> >
> > }
> >
> > +=head2 AddMessage
> > +
> > +=over 4
> > +
> > +AddMessage( $borrowernumber, $message_type, $message,
> $branchcode );
> > +
> > +Adds a message to the messages table for the given borrower.
> > +
> > +Returns:
> > + True on success
> > + False on failure
> > +
> > +=back
> > +
> > +=cut
> > +
> > +sub AddMessage {
> > + my ( $borrowernumber, $message_type, $message, $branchcode ) =
> > @_;
> > +
> > + my $dbh = C4::Context->dbh;
> > +
> > + if ( ! ( $borrowernumber && $message_type && $message &&
> > $branchcode ) ) {
> > + return;
> > + }
> > +
> > + my $query = "INSERT INTO messages ( borrowernumber, branchcode,
> > message_type, message ) VALUES ( ?, ?, ?, ? )";
> > + my $sth = $dbh->prepare($query);
> > + $sth->execute( $borrowernumber, $branchcode, $message_type,
> > $message );
> > +
> > + return 1;
> > +}
> > +
> > +=head2 GetMessages
> > +
> > +=over 4
> > +
> > +GetMessages( $borrowernumber, $type );
> > +
> > +$type is message type, B for borrower, or L for Librarian.
> > +Empty type returns all messages of any type.
> > +
> > +Returns all messages for the given borrowernumber
> > +
> > +=back
> > +
> > +=cut
> > +
> > +sub GetMessages {
> > + my ( $borrowernumber, $type, $branchcode ) = @_;
> > +
> > + if ( ! $type ) {
> > + $type = '%';
> > + }
> > +
> > + my $dbh = C4::Context->dbh;
> > +
> > + my $query = "SELECT
> > + branches.branchname,
> > + messages.*,
> > + DATE_FORMAT( message_date, '%m/%d/%Y' ) AS
> > message_date_formatted,
> > + messages.branchcode LIKE '$branchcode' AS
> > can_delete
> > + FROM messages, branches
> > + WHERE borrowernumber = ?
> > + AND message_type LIKE ?
> > + AND messages.branchcode = branches.branchcode
> > + ORDER BY message_date DESC";
> > + my $sth = $dbh->prepare($query);
> > + $sth->execute( $borrowernumber, $type ) ;
> > + my @results;
> > +
> > + while ( my $data = $sth->fetchrow_hashref ) {
> > + push @results, $data;
> > + }
> > + return \@results;
> > +
> > +}
> > +
> > +=head2 GetMessages
> > +
> > +=over 4
> > +
> > +GetMessagesCount( $borrowernumber, $type );
> > +
> > +$type is message type, B for borrower, or L for Librarian.
> > +Empty type returns all messages of any type.
> > +
> > +Returns the number of messages for the given borrowernumber
> > +
> > +=back
> > +
> > +=cut
> > +
> > +sub GetMessagesCount {
> > + my ( $borrowernumber, $type, $branchcode ) = @_;
> > +
> > + if ( ! $type ) {
> > + $type = '%';
> > + }
> > +
> > + my $dbh = C4::Context->dbh;
> > +
> > + my $query = "SELECT COUNT(*) as MsgCount FROM messages WHERE
> > borrowernumber = ? AND message_type LIKE ?";
> > + my $sth = $dbh->prepare($query);
> > + $sth->execute( $borrowernumber, $type ) ;
> > + my @results;
> > +
> > + my $data = $sth->fetchrow_hashref;
> > + my $count = $data->{'MsgCount'};
> > +
> > + return $count;
> > +}
> > +
> > +
> > +
> > +=head2 DeleteMessage
> > +
> > +=over 4
> > +
> > +DeleteMessage( $message_id );
> > +
> > +=back
> > +
> > +=cut
> > +
> > +sub DeleteMessage {
> > + my ( $message_id ) = @_;
> > +
> > + my $dbh = C4::Context->dbh;
> > +
> > + my $query = "DELETE FROM messages WHERE message_id = ?";
> > + my $sth = $dbh->prepare($query);
> > + $sth->execute( $message_id );
> > +
> > +}
> > +
> > END { } # module clean-up code here (global destructor)
> >
> > 1;
> > diff --git a/admin/systempreferences.pl b/admin/systempreferences.pl
> > index 4a84b13..c32df90 100755
> > --- a/admin/systempreferences.pl
> > +++ b/admin/systempreferences.pl
> > @@ -162,6 +162,7 @@ $tabsysprefs{BranchTransferLimitsType} =
> > "Circulation";
> > $tabsysprefs{AllowNotForLoanOverride} = "Circulation";
> > $tabsysprefs{RenewalPeriodBase} = "Circulation";
> > $tabsysprefs{FilterBeforeOverdueReport} = "Circulation";
> > +$tabsysprefs{AllowAllMessageDeletion} = "Circulation";
> >
> > # Staff Client
> > $tabsysprefs{TemplateEncoding} = "StaffClient";
> > diff --git a/circ/add_message.pl b/circ/add_message.pl
> > new file mode 100755
> > index 0000000..b80ade4
> > --- /dev/null
> > +++ b/circ/add_message.pl
> > @@ -0,0 +1,55 @@
> > +#!/usr/bin/perl
> > +
> > +# Copyright 2009 PTFS Inc.
> > +#
> > +# This file is part of Koha.
> > +#
> > +# 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 warnings;
> > +
> > +use CGI;
> > +
> > +use C4::Context;
> > +use C4::Auth;
> > +use C4::Output;
> > +use C4::Members;
> > +use C4::Accounts;
> > +use C4::Stats;
> > +use C4::Koha;
> > +use C4::Overdues;
> > +use C4::Branch; # GetBranches
> > +
> > +my $input = new CGI;
> > +
> > +my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
> > + { template_name => "circ/circulation.tmpl",
> > + query => $input,
> > + type => "intranet",
> > + authnotrequired => 0,
> > + flagsrequired => { borrowers => 1 },
> > + debug => 1,
> > + }
> > +);
> > +
> > +my $borrowernumber = $input->param('borrowernumber');
> > +my $branchcode = $input->param('branchcode');
> > +my $message_type = $input->param('message_type');
> > +my $borrower_message = $input->param('borrower_message');
> > +
> > +AddMessage( $borrowernumber, $message_type, $borrower_message,
> > $branchcode );
> > +
> > +print $input->redirect(
> > + "/cgi-bin/koha/circ/circulation.pl?borrowernumber=
> > $borrowernumber");
> > diff --git a/circ/circulation.pl b/circ/circulation.pl
> > index 986b10c..c7c38cb 100755
> > --- a/circ/circulation.pl
> > +++ b/circ/circulation.pl
> > @@ -643,6 +643,9 @@ if ( C4::Context-
> > >preference("memberofinstitution") ) {
> >
> > $template->param(
> > issued_itemtypes_count_loop => \@issued_itemtypes_count_loop,
> > + lib_messages_loop => GetMessages( $borrowernumber,
> 'L',
> > $branch ),
> > + bor_messages_loop => GetMessages( $borrowernumber,
> 'B',
> > $branch ),
> > + all_messages_del => C4::Context-
> > >preference('AllowAllMessageDeletion'),
> > findborrower => $findborrower,
> > borrower => $borrower,
> > borrowernumber => $borrowernumber,
> > @@ -692,6 +695,17 @@ if ($stickyduedate) {
> > my ($picture, $dberror) = GetPatronImage($borrower->{'cardnumber'});
> > $template->param( picture => 1 ) if $picture;
> >
> > +# get authorised values with type of BOR_NOTES
> > +my @canned_notes;
> > +my $dbh = C4::Context->dbh;
> > +my $sth = $dbh->prepare('SELECT * FROM authorised_values WHERE
> > category = "BOR_NOTES"');
> > +$sth->execute();
> > +while ( my $row = $sth->fetchrow_hashref() ) {
> > + push @canned_notes, $row;
> > +}
> > +if ( scalar( @canned_notes ) ) {
> > + $template->param( canned_bor_notes_loop => \@canned_notes );
> > +}
> >
> > $template->param(
> > debt_confirmed => $debt_confirmed,
> > diff --git a/circ/del_message.pl b/circ/del_message.pl
> > new file mode 100755
> > index 0000000..fcf32a7
> > --- /dev/null
> > +++ b/circ/del_message.pl
> > @@ -0,0 +1,53 @@
> > +#!/usr/bin/perl
> > +
> > +# Copyright 2009 PTFS Inc.
> > +#
> > +# This file is part of Koha.
> > +#
> > +# 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 warnings;
> > +
> > +use CGI;
> > +
> > +use C4::Context;
> > +use C4::Auth;
> > +use C4::Output;
> > +use C4::Members;
> > +use C4::Accounts;
> > +use C4::Stats;
> > +use C4::Koha;
> > +use C4::Overdues;
> > +use C4::Branch; # GetBranches
> > +
> > +my $input = new CGI;
> > +
> > +my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
> > + { template_name => "circ/circulation.tmpl",
> > + query => $input,
> > + type => "intranet",
> > + authnotrequired => 0,
> > + flagsrequired => { borrowers => 1 },
> > + debug => 1,
> > + }
> > +);
> > +
> > +my $borrowernumber = $input->param('borrowernumber');
> > +my $message_id = $input->param('message_id');
> > +
> > +DeleteMessage($message_id);
> > +
> > +print $input->redirect(
> > + "/cgi-bin/koha/circ/circulation.pl?borrowernumber=
> > $borrowernumber");
> > diff --git a/installer/data/mysql/en/mandatory/sysprefs.sql b/
> > installer/data/mysql/en/mandatory/sysprefs.sql
> > index a978fad..8a9031a 100644
> > --- a/installer/data/mysql/en/mandatory/sysprefs.sql
> > +++ b/installer/data/mysql/en/mandatory/sysprefs.sql
> > @@ -245,3 +245,4 @@ INSERT INTO systempreferences
> > (variable,value,explanation,options,type)VALUES('v
> > INSERT INTO systempreferences
> > (variable
> > ,value,explanation,options,type)VALUES('viewLabeledMARC','0','Allow
> > display of labeled MARC view of bibiographic records','','YesNo');
> > INSERT INTO systempreferences
> > (variable
> > ,value,explanation,options,type)VALUES('viewMARC','1','Allow display
> > of MARC view of bibiographic records','','YesNo');
> > INSERT INTO systempreferences
> > (variable
> > ,value
> > ,explanation,options,type)VALUES('FilterBeforeOverdueReport','0','Do
> > not run overdue report until filter selected','','YesNo');
> > +INSERT INTO systempreferences
> > (variable,value,explanation,options,type)
> > VALUES('AllowAllMessageDeletion','0','Allow any Library to delete
> > any message','','YesNo');
> > 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 424b716..5fc3d71 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
> > @@ -247,3 +247,4 @@ INSERT INTO systempreferences
> > (variable,value,explanation,options,type)VALUES('v
> > INSERT INTO systempreferences
> > (variable
> > ,value
> > ,explanation,options,type)VALUES('viewLabeledMARC','0','Autoriser
> > l''affichage MARC labellis des notices
> bibliographiques','','YesNo');
> > INSERT INTO systempreferences
> > (variable
> > ,value,explanation,options,type)VALUES('viewMARC','1','Autoriser
> > l''affichage de la vue MARC des notices
> bibliographiques','','YesNo');
> > INSERT INTO systempreferences
> > (variable
> > ,value
> > ,explanation,options,type)VALUES('FilterBeforeOverdueReport','0','Ne
> > pas lancer le rapport sur les retards tant qu''il n''y a pas de
> > filtre','','YesNo');
> > +INSERT INTO systempreferences
> > (variable,value,explanation,options,type)
> > VALUES('AllowAllMessageDeletion','0','Allow any Library to delete
> > any message','','YesNo');
> > diff --git a/installer/data/mysql/kohastructure.sql b/installer/
> data/
> > mysql/kohastructure.sql
> > index 2b2e0c9..6bb1197 100644
> > --- a/installer/data/mysql/kohastructure.sql
> > +++ b/installer/data/mysql/kohastructure.sql
> > @@ -2366,6 +2366,20 @@ CREATE TABLE
> > `item_circulation_alert_preferences` (
> > KEY `branchcode` (`branchcode`,`categorycode`,`item_type`,
> > `notification`)
> > ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
> >
> > +--
> > +-- Table structure for table `messages`
> > +--
> > +
> > +CREATE TABLE `messages` (
> > + `message_id` int(11) NOT NULL auto_increment,
> > + `borrowernumber` int(11) NOT NULL,
> > + `branchcode` varchar(4) default NULL,
> > + `message_type` varchar(1) NOT NULL,
> > + `message` text NOT NULL,
> > + `message_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
> > + PRIMARY KEY (`message_id`)
> > +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
> > +
> > /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
> > /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
> > /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
> > diff --git a/installer/data/mysql/updatedatabase.pl b/installer/
> data/
> > mysql/updatedatabase.pl
> > index 58497c8..0145282 100755
> > --- a/installer/data/mysql/updatedatabase.pl
> > +++ b/installer/data/mysql/updatedatabase.pl
> > @@ -2467,6 +2467,23 @@ if (C4::Context->preference("Version") <
> > TransformToNum($DBversion)) {
> > print "Upgrade to $DBversion done (added
> > FilterBeforeOverdueReport syspref and new index on
> authorised_values)
> > \n";
> > }
> >
> > +$DBversion = "3.01.00.038";
> > +if (C4::Context->preference("Version") <
> > TransformToNum($DBversion)) {
> > + $dbh->do("INSERT INTO systempreferences
> > (variable,value,explanation,options,type)
> > VALUES('AllowAllMessageDeletion','0','Allow any Library to delete
> > any message','','YesNo');");
> > + $dbh->do('DROP TABLE messages');
> > + $dbh->do("CREATE TABLE messages ( `message_id` int(11) NOT NULL
> > auto_increment,
> > + `borrowernumber` int(11) NOT NULL,
> > + `branchcode` varchar(4) default NULL,
> > + `message_type` varchar(1) NOT NULL,
> > + `message` text NOT NULL,
> > + `message_date` TIMESTAMP NOT NULL DEFAULT
> CURRENT_TIMESTAMP,
> > + PRIMARY KEY (`message_id`)
> > + ) ENGINE=InnoDB DEFAULT CHARSET=utf8");
> > +
> > + print "Upgrade to $DBversion done ( Added
> AllowAllMessageDeletion
> > syspref and messages table )\n";
> > + SetVersion ($DBversion);
> > +}
> > +
> > =item DropAllForeignKeys($table)
> >
> > Drop all foreign keys of the table $table
> > diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/
> > circulation.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/
> > circulation.tmpl
> > index 050c72c..dc94179 100644
> > --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl
> > +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl
> > @@ -51,6 +51,20 @@ $.tablesorter.addParser({
> > });
> > //]]>
> > </script>
> > +
> > +<script>
> > +function showhide(id){
> > + if (document.getElementById){
> > + obj = document.getElementById(id);
> > + if (obj.style.display == "none"){
> > + obj.style.display = "";
> > + } else {
> > + obj.style.display = "none";
> > + }
> > + }
> > +}
> > +</script>
> > +
> > <!-- TMPL_INCLUDE NAME="calendar.inc" -->
> > </head>
> > <body>
> > @@ -60,6 +74,7 @@ $.tablesorter.addParser({
> >
> > <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a>
> > › <a href="/cgi-bin/koha/circ/circulation-
> > home.pl">Circulation</a> ›<!-- TMPL_IF NAME="borrowernumber"
> > --> <a href="/cgi-bin/koha/circ/circulation.pl">Checkouts</a>
> > › <!-- TMPL_VAR name="firstname" --> <!-- TMPL_VAR
> > name="surname" --><!-- TMPL_ELSE --> <strong>Checkouts</
> strong><!-- /
> > TMPL_IF --></div>
> >
> > +
> > <!-- TMPL_IF NAME="CGIselectborrower" -->
> > <div id="doc" class="yui-t7">
> >
> > @@ -79,6 +94,41 @@ $.tablesorter.addParser({
> > <!-- /TMPL_IF -->
> >
> > <!-- INITIAL BLOC : PARAMETERS & BORROWER INFO -->
> > +<div style="display: none;" id="add_message">
> > +<form method="post" action="/cgi-bin/koha/circ/add_message.pl"
> > id="message_form" name="message_f">
> > +<fieldset id="borrower_messages">
> > + <legend>Leave A Message</legend>
> > + <p>
> > + <label for="message_type">Add A Message For</label>
> > + <select name="message_type" id="message_type">
> > + <option value="L">Other Librarians</option>
> > + <option value="B"><!-- TMPL_VAR name="firstname" --></
> > option>
> > + </select>
> > + </p>
> > + <!-- TMPL_IF NAME="canned_bor_notes_loop" -->
> > + <p>
> > + <label for="canned_notes">Canned Notes: </label>
> > + <select name="type" id="type"
> > onchange
> > =
> > "this
> >
> .form
> .borrower_message.value=this.options[this.selectedIndex].value;">
> > + <option value=''>Select Note</option>
> > + <!-- TMPL_LOOP NAME="canned_bor_notes_loop" -->
> > + <option value="<!-- TMPL_VAR NAME="lib" --
> > >"><!--TMPL_VAR NAME="authorised_value" --></option>
> > + <!-- /TMPL_LOOP -->
> > + </select>
> > + </p>
> > + <!-- /TMPL_IF -->
> > + <p>
> > + <textarea rows="3" cols="60" name="borrower_message"
> > id="borrower_message" ></textarea>
> > + </p>
> > + <p>
> > + <input type="submit" value="Save Message" />
> > + </p>
> > +
> > + <input type="hidden" name="borrowernumber"
> > id="borrowernumber" value="<!-- TMPL_VAR NAME="borrowernumber" --
> >" />
> > + <input type="hidden" name="branchcode" value="<!-- TMPL_VAR
> > NAME="branch" -->" />
> > +</fieldset>
> > +</form>
> > +</div>
> > +
> > <!-- TMPL_IF NAME="dateexpiry" --><div class="dialog
> > message">Patron's account has been renewed until <!-- TMPL_VAR
> > NAME="dateexpiry" --></div><!-- /TMPL_IF -->
> > <!-- TMPL_IF NAME="NEEDSCONFIRMATION" -->
> > <div class="yui-g">
> > @@ -259,7 +309,12 @@ No patron matched <span class="ex"><!--
> > TMPL_VAR name="message" --></span>
> > <!-- TMPL_IF NAME="flagged" -->
> > <div class="yui-u first">
> > <!-- TMPL_ELSE -->
> > -<div><!-- /TMPL_IF --><form method="post" action="/cgi-bin/koha/
> > circ/circulation.pl" name="mainform">
> > +<div>
> > +
> > +<!-- /TMPL_IF -->
> > +
> > +
> > +<form method="post" action="/cgi-bin/koha/circ/circulation.pl"
> > name="mainform">
> > <fieldset id="circ_circulation_issue">
> > <label for="barcode">Checking out to <!-- TMPL_VAR
> > name="firstname" --> <!-- TMPL_VAR name="surname" --> (<!-- TMPL_VAR
> > NAME="cardnumber" -->) </label>
> > <div class="hint">Enter item barcode:</div>
> > @@ -393,7 +448,7 @@ No patron matched <span class="ex"><!-- TMPL_VAR
> > name="message" --></span>
> > <div id="holdswaiting" class="circmessage">
> > <h4>Holds waiting:</h4>
> > <!-- TMPL_LOOP NAME="WaitingReserveLoop" -->
> > - <ul>
> > + <ul>
> > <li> <a href="/cgi-bin/koha/
> reserve/request.pl?
> > biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><!-- TMPL_VAR
> > NAME="title" escape="html" --></a> (<!-- TMPL_VAR NAME="itemtype"--
> > >), <!-- TMPL_IF NAME="author" -->by <!-- TMPL_VAR NAME="author"--
> > ><!-- /TMPL_IF --> Hold placed on <!-- TMPL_VAR
> NAME="reservedate"-->.
> > <!-- TMPL_IF NAME="waitingat" -->
> > <br /><!-- TMPL_IF
> NAME="waitinghere" --><strong
> > class="waitinghere"><!-- TMPL_ELSE --><strong><!-- /TMPL_IF --
> > >Waiting at <!-- TMPL_VAR NAME="waitingat" --></strong>
> > @@ -408,9 +463,37 @@ No patron matched <span class="ex"><!--
> > TMPL_VAR name="message" --></span>
> > <h4>Notes:</h4>
> > <p><span class="circ-hlt"><!-- TMPL_VAR name="notesmsg"
> > --></span></p>
> > </div>
> > +
> > +
> > <!-- /If notes --><!-- /TMPL_IF -->
> > <!-- /If flagged --><!-- /TMPL_IF -->
> >
> > + <div id="messages" class="circmessage">
> > + <h4>Messages:</h4>
> > + <ul>
> > + <!--TMPL_LOOP NAME="lib_messages_loop" -->
> > + <li>
> > + <span class="circ-hlt">
> > + <!--TMPL_VAR
> NAME="message_date_formatted"-->
> > + <!--TMPL_VAR NAME="branchcode"-->
> > + <i>"<!--TMPL_VAR NAME="message"--
> >"</i>
> > + </span>
> > + <!-- TMPL_IF NAME="can_delete" -->
> > + <a href='/cgi-bin/koha/circ/
> del_message.pl?message_id=<!--
> > TMPL_VAR NAME="message_id" -->&borrowernumber=<!--TMPL_VAR
> > NAME="borrowernumber" -->'>[Delete]</a>
> > + <!-- TMPL_ELSE -->
> > + <!-- TMPL_IF
> NAME="all_messages_del" -->
> > + <a href='/cgi-bin/koha/
> circ/del_message.pl?message_id=<!--
> > TMPL_VAR NAME="message_id" -->&borrowernumber=<!--TMPL_VAR
> > NAME="borrowernumber" -->'>[Delete]</a>
> > + <!-- /TMPL_IF -->
> > + <!-- /TMPL_IF -->
> > + </li>
> > + <!-- /TMPL_LOOP -->
> > + <!--TMPL_LOOP NAME="bor_messages_loop" -->
> > + <li><span class=""><!--TMPL_VAR
> NAME="message_date_formatted"--
> > > <!--TMPL_VAR NAME="branchcode"--> <i>"<!--TMPL_VAR
> NAME="message"--
> > >"</i></span> <!-- TMPL_IF NAME="can_delete" --><a href='/cgi-bin/
> > koha/circ/del_message.pl?message_id=<!--TMPL_VAR NAME="message_id"
> --
> > >&borrowernumber=<!--TMPL_VAR NAME="borrowernumber" -->'>[Delete]</
> > a><!-- /TMPL_IF --></li>
> > + <!-- /TMPL_LOOP -->
> > +
> > + <a href="#" onclick="showhide('add_message');
> > return(false);">Add A New Message</a>
> > + </ul>
> > + </div>
> >
> > </div>
> > </div>
> > @@ -506,7 +589,7 @@ No patron matched <span class="ex"><!-- TMPL_VAR
> > name="message" --></span>
> > <!-- /TMPL_IF -->
> > </tr>
> > <!-- /TMPL_LOOP --> <!-- /loop todayissues -->
> > - <!-- /if todayissues --><!-- /TMPL_IF -->
> > + <!-- /if todayissues --><!-- /TMPL_IF -->
> > <!-- TMPL_IF NAME="previssues" -->
> > <!-- TMPL_IF NAME="todayissues" --><tr><th colspan="8"><a
> > name="previous" id="previous"></a>Previous checkouts</th></tr><!--
> > TMPL_ELSE -->
> > <tr><th class="{sorter: false}" colspan="8"><a name="previous"
> > id="previous"></a>Previous checkouts</th></tr></thead>
> > diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl b/
> > koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl
> > index 06f3c69..a19c94a 100644
> > --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl
> > +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tmpl
> > @@ -75,11 +75,23 @@ $.tablesorter.addParser({
> > <div id="yui-main">
> > <div class="yui-b"><div class="yui-g">
> > <div id="userdetails" class="container">
> > +
> > + <!-- TMPL_IF NAME="bor_messages" -->
> > + <div class="dialog message">
> > + <h3>Messages For You</h3>
> > + <ul>
> > + <!--TMPL_LOOP NAME="bor_messages_loop"
> -->
> > + <li>On <!--TMPL_VAR
> > NAME="message_date_formatted"--> <!--TMPL_VAR NAME="branchname"-->
> > wrote <i>"<!--TMPL_VAR NAME="message"-->"</i></li>
> > + <!-- /TMPL_LOOP -->
> > + </ul>
> > + </div>
> > + <!-- /TMPL_IF -->
> > <!-- TMPL_LOOP NAME="BORROWER_INFO" -->
> > <h2>Hello, <!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR
> > NAME="surname" --> <span class="hint">(<a href="/cgi-bin/koha/opac-
> > main.pl?logout.x=1">Click here</a> if you're not <!-- TMPL_VAR
> > NAME="title" --> <!-- TMPL_VAR NAME="firstname" --> <!-- TMPL_VAR
> > NAME="surname" -->)</span></h2>
> >
> > <!-- TMPL_IF NAME="patronupdate" --><div class="dialog
> > message"><h3>Thank you!</h3><p>Your corrections have been submitted
> > to the library, and a staff member will update your record as soon
> > as possible.</p></div><!-- /TMPL_IF -->
> >
> > +
> > <!-- TMPL_IF NAME="opacnote"-->
> > <div class="dialog message">
> > <h3>Message from the library</h3>
> > diff --git a/opac/opac-user.pl b/opac/opac-user.pl
> > index 708ba7f..fd6c0ba 100755
> > --- a/opac/opac-user.pl
> > +++ b/opac/opac-user.pl
> > @@ -259,7 +259,12 @@ if (C4::Context-
> > >preference("OPACAmazonCoverImages") or
> > $template->param(JacketImages=>1);
> > }
> >
> > +if ( GetMessagesCount( $borrowernumber, 'B' ) ) {
> > + $template->param( bor_messages => 1 );
> > +}
> > +
> > $template->param(
> > + bor_messages_loop => GetMessages( $borrowernumber, 'B',
> 'NONE' ),
> > waiting_count => $wcount,
> > textmessaging => $borr->{textmessaging},
> > patronupdate => $patronupdate,
> > --
> > 1.6.2.5
> >
> > _______________________________________________
> > Koha-patches mailing list
> > Koha-patches at lists.koha.org
> > http://lists.koha.org/mailman/listinfo/koha-patches
>
> _______________________________________________
> Koha-patches mailing list
> Koha-patches at lists.koha.org
> http://lists.koha.org/mailman/listinfo/koha-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/koha-patches/attachments/20090727/02e30534/attachment-0002.htm>
More information about the Koha-patches
mailing list