use OpenILS::WWW::EGCatLoader::Record;
use OpenILS::WWW::EGCatLoader::Container;
use OpenILS::WWW::EGCatLoader::SMS;
+use OpenILS::WWW::EGCatLoader::Register;
my $U = 'OpenILS::Application::AppUtils';
return $self->redirect_ssl unless $self->cgi->https;
return $self->load_password_reset if $path =~ m|opac/password_reset|;
return $self->load_logout if $path =~ m|opac/logout|;
+ return $self->load_patron_reg if $path =~ m|opac/register|;
if($path =~ m|opac/login|) {
return $self->load_login unless $self->editor->requestor; # already logged in?
--- /dev/null
+package OpenILS::WWW::EGCatLoader;
+use strict; use warnings;
+use Apache2::Const -compile => qw(OK FORBIDDEN HTTP_INTERNAL_SERVER_ERROR);
+use OpenSRF::Utils::Logger qw/$logger/;
+use OpenILS::Utils::Fieldmapper;
+use OpenILS::Application::AppUtils;
+use OpenILS::Event;
+my $U = 'OpenILS::Application::AppUtils';
+
+sub load_patron_reg {
+ my $self = shift;
+ my $ctx = $self->ctx;
+ my $cgi = $self->cgi;
+ $ctx->{register} = {};
+
+ # just loading the form
+ return Apache2::Const::OK
+ unless $cgi->request_method eq 'POST';
+
+ my $user = Fieldmapper::staging::user_stage->new;
+ my $addr = Fieldmapper::staging::mailing_address_stage->new;
+
+ # user
+ foreach (grep /^stgu\./, $cgi->param) {
+ my $val = $cgi->param($_);
+ # TODO validate
+ s/^stgu\.//g;
+ $user->$_($val);
+ }
+
+ # address
+ foreach (grep /^stgma\./, $cgi->param) {
+ my $val = $cgi->param($_);
+ # TODO validate
+ s/^stgma\.//g;
+ $addr->$_($val);
+ }
+
+ # user.stage.create will generate a temporary usrname and
+ # link the user and address objects via this username in the DB.
+ my $resp = $U->simplereq(
+ 'open-ils.actor',
+ 'open-ils.actor.user.stage.create',
+ $user, $addr
+ );
+
+ if (!$resp or ref $resp) {
+
+ $logger->warn("Patron self-reg failed ".($resp || ''));
+ $ctx->{register}{error} = 1;
+
+ } else {
+
+ $logger->info("Patron self-reg success; usrname $resp");
+ $ctx->{register}{success} = 1;
+ }
+
+ return Apache2::Const::OK;
+}
color: [% css_colors.text_invert %];
text-align: center;
}
+
+#main-content-register {
+ margin-left: 40px;
+ font-size: 120%;
+}
+
+#main-content-register table {
+ padding: 20px;
+ margin-top: 18px;
+ border-collapse: collapse;
+}
+
+#main-content-register td {
+ text-align: left;
+}
+
+#main-content-register td:not(:first-child) {
+ padding-left: 20px;
+}
<div id="footer-wrap">
<div id="footer">
<a href="/">[% l('Dynamic catalog') %]</a> |
- <a href="http://example.com">[% l('Bottom Link 2') %]</a> |
+ [% IF ctx.get_org_setting(
+ ctx.physical_loc || ctx.aou_tree.id, 'opac.allow_pending_user') %]
+ <a href="[% mkurl(ctx.opac_root _ '/register') %]">[%
+ l('Request Library Card') %]</a> |
+ [% ELSE %]
<a href="http://example.com">[% l('Bottom Link 3') %]</a> |
+ [% END %]
<a href="http://example.com">[% l('Bottom Link 4') %]</a> |
<a href="http://example.com">[% l('Bottom Link 5') %]</a>
[% IF ctx.timing %]
--- /dev/null
+[%- PROCESS "opac/parts/header.tt2";
+ WRAPPER "opac/parts/base.tt2";
+ INCLUDE "opac/parts/topnav.tt2";
+ ctx.page_title = l("Request Library Card") %]
+ <div id="content-wrapper">
+ <div id="main-content-register">
+ <div class="common-full-pad"></div>
+ <h1>[% l('Request a Library Card')%]</h1>
+ <hr/>
+
+ [% IF ctx.register.success %]
+ <h2>[% |l %]
+ Registration successful! Please see library staff to
+ complete the registration.
+ [% END %]</h2>
+ [% ELSIF ctx.register.error %]
+ <h2>[% |l %]
+ An registration error has occurred. Please see library staff.
+ [% END %]</h2>
+ [% ELSE %]
+
+ <form method='POST'>
+ <table>
+ <!-- TODO <label>s -->
+ <tr>
+ <td>[% l('First Name') %]</td>
+ <td><input type='text' name='stgu.first_given_name'/></td>
+ </tr>
+ <tr>
+ <td>[% l('Middle Name') %]</td>
+ <td><input type='text' name='stgu.second_given_name'/></td>
+ </tr>
+ <tr>
+ <td>[% l('Last Name') %]</td>
+ <td><input type='text' name='stgu.family_name'/></td>
+ </tr>
+ <tr>
+ <td>[% l('Street Address') %]</td>
+ <td><input type='text' name='stgma.street1'/></td>
+ </tr>
+ <tr>
+ <td>[% l('Street Address (2)') %]</td>
+ <td><input type='text' name='stgma.street2'/></td>
+ </tr>
+ <tr>
+ <td>[% l('City') %]</td>
+ <td><input type='text' name='stgma.city'/></td>
+ </tr>
+ <tr>
+ <td>[% l('State') %]</td>
+ <td><input type='text' name='stgma.state'/></td>
+ </tr>
+ <tr>
+ <td>[% l('Post/Zip Code') %]</td>
+ <td><input type='text' name='stgma.post_code'/></td>
+ </tr>
+ <tr>
+ <td>[% l('County') %]</td>
+ <td><input type='text' name='stgma.county'/></td>
+ </tr>
+ <tr>
+ <td>[% l('Date of Birth') %]</td>
+ <td><input type='text' name='stgu.dob'/></td>
+ </tr>
+ <tr>
+ <td>[% l('Phone Number') %]</td>
+ <td><input type='text' name='stgu.day_phone'/></td>
+ </tr>
+ <tr>
+ <td>[% l('Email Address') %]</td>
+ <td><input type='text' name='stgu.email'/></td>
+ </tr>
+ <tr>
+ <td>
+ <a href="[% ctx.opac_root %]/home"
+ class="opac-button">[% l('Go Back') %]</a>
+ </td>
+ <td>
+ <input type="submit"
+ value="[% l('Submit Registration') %]"
+ class="opac-button" />
+ </td>
+ </tr>
+ </table>
+ </form>
+ [% END %]
+
+ <div class="common-full-pad"></div>
+ </div>
+ </div>
+[%- END %]