From: Bill Erickson Date: Wed, 3 Aug 2011 14:31:06 +0000 (-0400) Subject: Repaired merge conflicts resuling from ttopac-move-templates X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=14ae716ceff99375347ead1ea7f4d4aadaf2cd8a;p=evergreen%2Fequinox.git Repaired merge conflicts resuling from ttopac-move-templates Signed-off-by: Bill Erickson --- 14ae716ceff99375347ead1ea7f4d4aadaf2cd8a diff --cc Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm index 5ec5db9a57,eba1b74500..e5d9b1fe3f --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm @@@ -24,13 -24,11 +24,13 @@@ sub load_record # run copy retrieval in parallel to bib retrieval # XXX unapi - my $copy_rec = OpenSRF::AppSession->create('open-ils.cstore')->request( + my $cstore = OpenSRF::AppSession->create('open-ils.cstore'); + my $copy_rec = $cstore->request( 'open-ils.cstore.json_query.atomic', - $self->mk_copy_query($rec_id, $org, $depth, $copy_limit, $copy_offset)); + $self->mk_copy_query($rec_id, $org, $depth, $copy_limit, $copy_offset) + ); - my (undef, @rec_data) = $self->get_records_and_facets([$rec_id], undef, {flesh => '{holdings_xml,mra}'}); + my (undef, @rec_data) = $self->get_records_and_facets([$rec_id], undef, {flesh => '{holdings_xml,mra,acp}'}); $ctx->{bre_id} = $rec_data[0]->{id}; $ctx->{marc_xml} = $rec_data[0]->{marc_xml}; diff --cc Open-ILS/src/templates/default/acq/common/li_table.tt2 index 0000000000,645a0aeb97..28ef757560 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/acq/common/li_table.tt2 +++ b/Open-ILS/src/templates/default/acq/common/li_table.tt2 @@@ -1,0 -1,469 +1,471 @@@ + + + +
+ + + + [% INCLUDE "default/acq/common/info.tt2" which = "Lit" %] + + + [% INCLUDE "default/acq/common/notes.tt2" which = "Lit" %] + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + + + +
+ + +
+
+ + + + +
+ diff --cc Open-ILS/src/templates/default/cat/authority/list.tt2 index 0000000000,67a1fa7541..cfc341f34a mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/cat/authority/list.tt2 +++ b/Open-ILS/src/templates/default/cat/authority/list.tt2 @@@ -1,0 -1,75 +1,82 @@@ + [% ctx.page_title = 'Authority record list' %] + [% WRAPPER default/base.tt2 %] + + + +
+ + + + + + - ++ + + + + + + Previous + + + + + + + Next + + + + + + Submit + + + +
+ +
+ + + + +
+ + [% END %] diff --cc Open-ILS/src/templates/default/conify/global/config/record_attr_definition.tt2 index 0000000000,627b713fb0..4af3b48265 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/conify/global/config/record_attr_definition.tt2 +++ b/Open-ILS/src/templates/default/conify/global/config/record_attr_definition.tt2 @@@ -1,0 -1,31 +1,35 @@@ + [% WRAPPER default/base.tt2 %] + [% ctx.page_title = 'MARC Record Attribute Definitions' %] +

Record Attribute Definitions


+ +
+
Record Attribute Definitions
+
+ + +
+
+ +
+ + + + + + [% END %] diff --cc Open-ILS/src/templates/default/opac/advanced.tt2 index 0000000000,5c953a3544..e752636082 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/advanced.tt2 +++ b/Open-ILS/src/templates/default/opac/advanced.tt2 @@@ -1,0 -1,23 +1,30 @@@ + [% PROCESS "default/opac/parts/header.tt2"; + WRAPPER "default/opac/parts/base.tt2"; + INCLUDE "default/opac/parts/topnav.tt2"; - ctx.page_title = l("Advanced Search") %] ++ ctx.page_title = l("Advanced Search"); ++ pane = CGI.param("pane") || "advanced" %] +
+ [% INCLUDE "default/opac/parts/printnav.tt2" %] +
+
- - ++ ++ ++ +
+
+
+
+
+
++ [% IF pane == 'advanced' %] + [% INCLUDE "default/opac/parts/advanced/search.tt2" %] ++ [% ELSIF pane == 'numeric' %] ++ [% INCLUDE "default/opac/parts/advanced/numeric.tt2" %] ++ [% ELSIF pane == 'expert' %] ++ [% INCLUDE "default/opac/parts/advanced/expert.tt2" %] ++ [% END %] +
+
+
+
+ [% END %] diff --cc Open-ILS/src/templates/default/opac/myopac/main.tt2 index 0000000000,674e097eb8..354b5b07db mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/myopac/main.tt2 +++ b/Open-ILS/src/templates/default/opac/myopac/main.tt2 @@@ -1,0 -1,167 +1,170 @@@ + [% PROCESS "default/opac/parts/header.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; + WRAPPER "default/opac/parts/myopac/main_base.tt2"; + myopac_page = "main"; + myopac_main_page = "main"; + %] + + [% IF ctx.fines.circulation.size > 0 %] +
+
+ + + + + + + + + + + + + + + + [% FOR f IN ctx.fines.circulation; + attrs = {marc_xml => f.marc_xml}; + IF f.marc_xml; + PROCESS get_marc_attrs args=attrs; + ELSIF f.xact.reservation; + attrs.title = f.xact.reservation.target_resource_type.name; + END %] + + + + + + + + + + [% END %] + +
+ [% l("Fines") %] +
[% l("Title") %][% l("Author") %][% l("Checkout Date") %][% l("Due Date") %][% l("Date Returned") %][% l("Balance Owed") %] - ++ + +
+ [% recid = f.xact.circulation.target_copy.call_number.record.id || f.xact.reservation.target_resource_type.record.id; + IF recid; %] + [% attrs.title %] + [% ELSE %] + [% attrs.title %] + [% END %] + + [% attrs.author %] + + [% ts = f.xact.circulation.xact_start || f.xact.reservation.start_time || 0; + IF ts; + date.format(ctx.parse_datetime(ts), DATE_FORMAT); + END %] + + [% ts = f.xact.circulation.due_date || f.xact.reservation.end_time || 0; + IF ts; + date.format(ctx.parse_datetime(ts), DATE_FORMAT); + END %] + + [% ts = f.xact.circulation.checkin_time || f.xact.reservation.return_time || 0; + IF ts; + date.format(ctx.parse_datetime(ts), DATE_FORMAT); + ELSE %] + + [% l('(fines accruing)') %] + [% END %] + + + [% money(f.xact.balance_owed) %] + + + ++ title="[% l('Pay this fine') %]" name="xact" ++ value="[% f.xact.id %]" /> +
+
+ [% END %] + + [% IF ctx.fines.grocery.size > 0 %] + +
+
+
+
+ + + + + + + + + + + + + + + + + [% FOR f IN ctx.fines.grocery %] + + + + + + + + + + [% END %] + +
+ [% l("Other Fees") %] +
[% l("Transaction Start Time") %][% l("Last Payment Time") %][% l("Initial Amount Owed") %][% l("Total Amount Paid") %][% l("Balance Owed") %][% l("Billing Type") %] + + +
[% date.format( + ctx.parse_datetime(f.xact.xact_start), + DATE_FORMAT + ) %] + [% IF f.xact.last_payment_ts; + date.format( + ctx.parse_datetime( + f.xact.last_payment_ts + ), DATE_FORMAT + ); + END %] + [% money(f.xact.total_owed) %][% money(f.xact.total_paid) %] + + [% money(f.xact.balance_owed) %] + + [% f.xact.last_billing_type %] + ++ name="xact_misc" value="[% f.xact.id %]" ++ checked="checked" /> +
+
+ [% END %] + [% UNLESS ctx.fines.grocery.size OR ctx.fines.circulation.size %] +
[% l('You have no current fines.') %]
+ [% ELSE %] +
+ +
+ [% END %] + + [% END %] diff --cc Open-ILS/src/templates/default/opac/myopac/main_pay.tt2 index 0000000000,19921816b6..ac68b6e786 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/myopac/main_pay.tt2 +++ b/Open-ILS/src/templates/default/opac/myopac/main_pay.tt2 @@@ -1,0 -1,44 +1,47 @@@ + [% PROCESS "default/opac/parts/header.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; + WRAPPER "default/opac/parts/myopac/base.tt2"; + myopac_page = "main"; + myopac_main_page = "pay" %] +
+ [% IF ctx.payment_response.textcode %] +
+ - [% ctx.payment_response.desc %] ++ [% ctx.payment_response.desc || ctx.payment_response.textcode %] +
++ [% ctx.payment_response.note %] + [% ctx.payment_response.payload.error_message %] +
+

+ [% l('Go back') %] + [% l('to try again or to cancel this payment attempt.') %] +

+ [% ELSE %] +

[% l('Your payment has been approved.') %]

+ [% IF ctx.printable_receipt.template_output; + print_args = []; + FOR p IN ctx.payment_response.payments; + print_args.push('payment=' _ p); + END %] +

[ [% l('Print receipt') %] ]

+ + [% ctx.printable_receipt.template_output.data %] + + [% ELSE %] +
+ [% l( + 'Error creating receipt: [_1]', + (ctx.printable_receipt.textcode ? ctx.printable_receipt.textcode _ ' / ' _ ctx.printable_receipt.desc : 0) || + ctx.printable_receipt.error_output.data || + l('No receipt data returned from server') + ) %] +
+ [% END %] ++

[ [% ++ l("Back to Account Summary") %] ]

+ [% END %] +
+ [% END %] diff --cc Open-ILS/src/templates/default/opac/myopac/main_payment_form.tt2 index 0000000000,c10d5a200f..52534d2a69 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/myopac/main_payment_form.tt2 +++ b/Open-ILS/src/templates/default/opac/myopac/main_payment_form.tt2 @@@ -1,0 -1,169 +1,187 @@@ + [% PROCESS "default/opac/parts/header.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; + WRAPPER "default/opac/parts/myopac/main_base.tt2"; + myopac_page = "main"; + myopac_main_page = "payment_form"; ++ ++ last_chance = CGI.param("last_chance"); ++ + %] + [% IF ctx.fines.balance_owed <= 0 %] +
+ [% l("You either have no fines to pay or you have selected fines whose " _ + "total is non-positive. We cannot process non-positive amounts.") %] +
+ [% ELSE %] +
-
++ [% IF last_chance %] ++

[% l("Are you sure you are ready to charge [_1] to your credit card?", money(ctx.fines.balance_owed)) %]

++ ++ [% FOR k IN CGI.Vars; ++ NEXT UNLESS k %] ++ ++ [% END %] ++ ++ ++ [% ELSE %] ++ ++ + [% FOR xact IN CGI.param('xact') %] + + [% END %] ++ [% FOR xact IN CGI.param('xact_misc') %] ++ ++ [% END %] ++ + + + + + + + + + + + + + + + ++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + - ++ + + + + + + + + + + + + + + [% INCLUDE "default/opac/parts/myopac/main_refund_policy.tt2" %] + +
[% l('Billing Information') %] - [% l('Selected fines you are paying for:') %] - ++

[% l('Selected fines you are paying for:') %]

++
+ + + + + + + + [% + FOR f IN ctx.fines.circulation; + NEXT IF CGI.param('xact').size && + !CGI.param('xact').grep(f.xact.id).size; + attrs = {marc_xml => f.marc_xml}; + IF f.marc_xml; + PROCESS get_marc_attrs args=attrs; + ELSIF f.xact.reservation; + attrs.title = f.xact.reservation.target_resource_type.name; + END %] + + + + + [% + END; + FOR f IN ctx.fines.grocery; - NEXT IF CGI.param('xact').size && - !CGI.param('xact').grep(f.xact.id).size %] ++ NEXT IF CGI.param('xact_misc').size && ++ !CGI.param('xact_misc').grep(f.xact.id).size %] + + + + + [% END %] + +
[% l('Name') %][% l('Amount') %]
[% attrs.title %][% money(f.xact.balance_owed) %]
[% f.xact.last_billing_type %][% money(f.xact.balance_owed) %]
+
+
+ [% l('Total amount to pay:') %] + [% money(ctx.fines.balance_owed) %] +
+
+ [% | l('', '') %]Click [_1]Cancel[_2] to go back and (un)select other fines.[% END %] +
[% l('First Name') %]
[% l('Last Name') %]
[% l('Email Address') %] ++ ++ [% l("Update") %] ++
[% l('Street Address') %]
[% l('City' )%]
[% l('State or Province') %]
[% l('ZIP or Postal Code') %]
[% l('Credit Card Information') %]
[% l('Credit Card #') %]
-
-
- -
-
- [% l('Security Code') %] -
[% l('Security Code') %] + +
[% l('Exipration Month') %] + +
[% l('Expiration Year') %] + +
- ++ + +
++ [% END %] +
+
+ [% END %] + [% END %] diff --cc Open-ILS/src/templates/default/opac/myopac/main_payments.tt2 index 0000000000,83e25f363a..0a3b192f11 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/myopac/main_payments.tt2 +++ b/Open-ILS/src/templates/default/opac/myopac/main_payments.tt2 @@@ -1,0 -1,51 +1,55 @@@ + [% PROCESS "default/opac/parts/header.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; + WRAPPER "default/opac/parts/myopac/main_base.tt2"; + myopac_page = "main"; + myopac_main_page = "payments"; + limit = ctx.payment_history_limit; + offset = ctx.payment_history_offset; + %] + +
+
+ [% l('Payments History') %] + + + [%# TODO: get total to prevent paging off then end of the list.. %] + + +
+
+ - ++ [% IF ctx.payments.size %] ++
+ + + + + + + + [% FOR payment IN ctx.payments %] + + + + + + + [% END %] + +
[% l('Payment Date') %][% l('Payment For') %][% l('Amount') %][% l('Receipt') %]
[% date.format(ctx.parse_datetime(payment.mp.payment_ts), DATE_FORMAT) %][% (payment.xact_type == 'grocery') ? payment.last_billing_type : payment.title %][% money(payment.mp.amount) %] +
+ + +
+
+ + +
+
++ [% ELSE %] ++
[% l('You have no historical payments to display.') %]
++ [% END %] +
+ [% END %] diff --cc Open-ILS/src/templates/default/opac/myopac/receipt_email.tt2 index 0000000000,371f7df209..51acccb439 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/myopac/receipt_email.tt2 +++ b/Open-ILS/src/templates/default/opac/myopac/receipt_email.tt2 @@@ -1,0 -1,15 +1,19 @@@ + [% PROCESS "default/opac/parts/header.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; + WRAPPER "default/opac/parts/myopac/base.tt2"; + myopac_page = "prefs" %] + [% IF ctx.email_receipt_result; # result should be undef on success %] +
+ [% l('Error preparing receipt:') %] + + [% ctx.email_receipt_result.desc %] + +
+ [% ELSE %] +
[% l('Your receipt will be emailed to [_1]', ctx.user.email) %]
+ [% END %] ++

++ [ [% ++ l("Back to Payments History") %] ] ++

+ [% END %] diff --cc Open-ILS/src/templates/default/opac/myopac/receipt_print.tt2 index 0000000000,0ee7b12157..766f9b5e8b mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/myopac/receipt_print.tt2 +++ b/Open-ILS/src/templates/default/opac/myopac/receipt_print.tt2 @@@ -1,0 -1,22 +1,25 @@@ + [%# sic! no wrapper %] + + + [% l('Receipt') %] + + + [% IF ctx.printable_receipt.template_output %] + + [% ctx.printable_receipt.template_output.data %] + + [% ELSE %] +
+ [% l( + 'Error preparing receipt: [_1]', + (ctx.printable_receipt.textcode ? ctx.printable_receipt.textcode _ ' / ' _ ctx.printable_receipt.desc : 0) || + ctx.printable_receipt.error_output.data || + l('No receipt data returned from server') + ) %] +
+ [% END %] ++
++

[ [% ++ l("Back to Payments History") %] ]

+ + diff --cc Open-ILS/src/templates/default/opac/myopac/update_email.tt2 index 0000000000,2261c29351..a6e62ecb00 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/myopac/update_email.tt2 +++ b/Open-ILS/src/templates/default/opac/myopac/update_email.tt2 @@@ -1,0 -1,23 +1,26 @@@ + [% PROCESS "default/opac/parts/header.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; + WRAPPER "default/opac/parts/myopac/base.tt2"; + myopac_page = "prefs" %] +
+ + [% IF ctx.invalid_email %] +
+ [% | l(ctx.invalid_email) %] + The email address "[_1]" is invalid. Please try a different email address. + [% END %] +
+ [% END %] + +
++ [% IF CGI.param("return_to_referer") %] ++ ++ [% END %] + + + + +
[% l('Current Email') %][% ctx.user.email | html %]
[% l('New Email') %]
+
+ + [% END %] diff --cc Open-ILS/src/templates/default/opac/parts/advanced/global_row.tt2 index 0000000000,6325c0af1e..ddb4260847 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/advanced/global_row.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/advanced/global_row.tt2 @@@ -1,0 -1,33 +1,44 @@@ + [% + contains_options = [ + {value => 'contains', label => l('Contains')}, + {value => 'nocontains', label => l('Does not contain')}, + {value => 'phrase', label => l('Contains phrase')}, + {value => 'exact', label => l('Matches exactly')} + ]; + contains = CGI.param('contains'); + queries = CGI.param('query'); ++ bools = CGI.param('bool') || ['and' x 3]; + qtypes = CGI.param('qtype') || ['keyword' x 3]; + FOR qtype IN qtypes; + c = contains.shift; ++ b = bools.shift; + q = queries.shift; %] - ++ ++ ++ + ++ ++ ++ ++ ++ + + [% INCLUDE "default/opac/parts/qtype_selector.tt2" + query_type=qtype %] + ++ + + + ++ onclick='return killRowIfAtLeast(2, this);'> + + -[% i = i + 1; - END %] ++[% END %] diff --cc Open-ILS/src/templates/default/opac/parts/advanced/search.tt2 index 0000000000,788b57168f..5762ead1c8 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/advanced/search.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/advanced/search.tt2 @@@ -1,0 -1,204 +1,204 @@@ +
+ + + + + + + + + + + + + + + + +
+ + + + diff --cc Open-ILS/src/templates/default/opac/parts/chilifresh.tt2 index 0000000000,9c64e55204..d58b3f5b97 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/chilifresh.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/chilifresh.tt2 @@@ -1,0 -1,20 +1,20 @@@ + + + + [% IF ENV.OILS_CHILIFRESH_URL AND ENV.OILS_CHILIFRESH_ACCOUNT + AND (ctx.page == 'rresult' OR ctx.page == 'record'); + chili_url = ENV.OILS_CHILIFRESH_URL; + IF CGI.https AND ENV.OILS_CHILIFRESH_HTTPS_URL; + chili_url = ENV.OILS_CHILIFRESH_HTTPS_URL; + END; + %] + + + + + - ++ + [% END %] + diff --cc Open-ILS/src/templates/default/opac/parts/header.tt2 index 0000000000,114b4c3494..f43d115a94 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/header.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/header.tt2 @@@ -1,0 -1,55 +1,23 @@@ + [%- USE money = format(l('$%.2f')); + USE date; + USE CGI = CGI_utf8; - USE EGI18N; + USE POSIX; + SET DATE_FORMAT = l('%m/%d/%Y'); + + # Don't wrap in l() here; do that where this format string is actually used. + SET HUMAN_NAME_FORMAT = '[_1] [_2] [_3] [_4] [_5]'; + + # x and y are artifacts of using tags instead of + # true submit buttons, and their values are never used. page is used, but + # currently none of the use cases for rendering the query_string back + # into page output call for propagating the value of the page variable. + + query_string = CGI.query_string | + replace(';x=\d+','') | replace(';y=\d+','') | replace(';page=\d*', '') | + replace(';', '&') | replace('&', '&'); + + propagator = '?' _ query_string; + + is_advanced = CGI.param("_adv").size; ++ is_special = CGI.param("_special").size; + %] - - -[%# XXX KCLS Note... Remove me soon... -BEGIN; -INSERT INTO config.record_attr_definition (name, label, tag, sf_list) - VALUES ('mattype', 'Material Type', '998', 'd'); -INSERT INTO config.coded_value_map (ctype, code, value) - VALUES - ('mattype', 'a', 'Book'), - ('mattype', 'i', 'Book on cassette'), - ('mattype', 'n', 'Book on CD'), - ('mattype', 'x', 'Download music'), - ('mattype', 'y', 'Download video'), - ('mattype', 'h', 'DVD'), - ('mattype', 'w', 'eBook - Audio'), - ('mattype', 'v', 'eBook - Text'), - ('mattype', 'e', 'Equipment'), - ('mattype', 'f', 'Films'), - ('mattype', 'o', 'Kit'), - ('mattype', 'q', 'Large print'), - ('mattype', 'b', 'Magazine'), - ('mattype', 'd', 'Microform'), - ('mattype', 'k', 'Music cassette'), ('mattype', 'j', 'Music CD'), - ('mattype', 'l', 'Music LP'), ('mattype', 'p', 'Newspaper'), - ('mattype', 't', 'Online'), ('mattype', 'u', 'Player'), - ('mattype', 'c', 'Printed music / scores'), ('mattype', '2', 'Read along with cassette'), - ('mattype', '5', 'Read along with CD'), ('mattype', 'm', 'Software'), - ('mattype', 'g', 'Video'), ('mattype', 'r', '3-D Object'), - ('mattype', 'z', 'Map'), ('mattype', 's', 'Slide set'); -COMMIT; -%] - diff --cc Open-ILS/src/templates/default/opac/parts/js.tt2 index 0000000000,4f7771db1e..b69c90b1c4 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/js.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/js.tt2 @@@ -1,0 -1,24 +1,30 @@@ + + + + + [% IF ctx.is_staff %] + + [% END %] + ++[% IF ENV.OILS_NOVELIST_URL AND ctx.page == 'record'; ++ url = ENV.OILS_NOVELIST_URL; ++ IF CGI.https; url = url.replace('^http:', 'https:'); END; %] ++ ++[% END %] ++ + + + + diff --cc Open-ILS/src/templates/default/opac/parts/login/form.tt2 index 0000000000,b30d47f32c..15814bab8f mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/login/form.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/login/form.tt2 @@@ -1,0 -1,156 +1,156 @@@ + + + [% IF ctx.login_failed_event %] +
+ [% + IF ctx.login_failed_event.textcode == 'PATRON_CARD_INACTIVE'; + l("The barcode used to login is marked as inactive. Please contact your local library."); + ELSIF ctx.login_failed_event.textcode == 'PATRON_INACTIVE'; + l("This account has been deactivated. Please contact your local library."); + ELSE; + l("Login failed. The username or password provided was not valid. + Ensure Caps-Lock is off and try again or contact your local library."); + END; + %] +
+ [% END %] + +
+
+
+ + + + + [% INCLUDE "default/opac/parts/login/help.tt2" %] + +
+
+
+
diff --cc Open-ILS/src/templates/default/opac/parts/misc_util.tt2 index 0000000000,3bc2fa8936..8bbc57ce87 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/misc_util.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/misc_util.tt2 @@@ -1,0 -1,155 +1,156 @@@ + [% + # Extract MARC fields from XML + # get_marc_attrs( { marc_xml => doc } ) + BLOCK get_marc_attrs; + xml = args.marc_xml; + args.isbn = xml.findnodes('//*[@tag="020"]/*[@code="a"]').shift.textContent; + args.upc = xml.findnodes('//*[@tag="024"]/*[@code="a"]').textContent; + args.issn = xml.findnodes('//*[@tag="022"]/*[@code="a"]').textContent; + args.title = xml.findnodes('//*[@tag="245"]/*[@code="a"]').textContent; + args.author = xml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent; + args.publisher = xml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent; + args.pubdate = xml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent; ++ args.summary = xml.findnodes('//*[@tag="520"]/*[@code="a"]').textContent; + args.edition = xml.findnodes('//*[@tag="250"]/*[@code="a"]').textContent || + xml.findnodes('//*[@tag="534"]/*[@code="b"]').textContent || + xml.findnodes('//*[@tag="775"]/*[@code="b"]').textContent; + phys = xml.findnodes( + '//*[@tag="300"]/*[@code="a" or @code="b" or @code="c" or @code="e"]' + ); + phys_content = []; + FOR p IN phys; phys_content.push(p.textContent); END; + args.phys_desc = phys_content.join(""); + + # MARC Callnumber + args.marc_cn = xml.findnodes('//*[@tag="092" or @tag="099"]/*').textContent; + + # clean up the ISBN + args.isbn_clean = args.isbn.replace('\ .*', ''); + + args.holdings = []; + args.uris = []; + args.issns = []; + + # we use $9 of ISBN and ISSN as a flag for e-version + sfx_isbn = xml.findnodes('//*[@tag="020"]/*[@code="9"]'); + IF sfx_isbn; + IF sfx_isbn.textContent == "SFX"; + my_parent = sfx_isbn.parentNode(); + sfx_isbn = my_parent.findnodes('./*[@code="a"]'); + sfx_isbn.replace('-', ''); + args.resolver_isbn = sfx_isbn.replace('\ .*', ''); + END; + END; + + sfx_issn = xml.findnodes('//*[@tag="022"]/*[@code="9"]'); + IF sfx_issn; + IF sfx_issn.textContent == "SFX"; + my_parent = sfx_issn.parentNode(); + sfx_issn = my_parent.findnodes('./*[@code="a"]'); + args.issns.push( + sfx_issn.textContent.replace('[^\d\-X]', '') + ); + END; + END; + + # we snag all issns if no SFX available + IF args.issns.size == 0; + FOR rawissn IN xml.findnodes('//*[@tag="022"]/*[@code="a"]'); + args.issns.push( + rawissn.textContent.replace('[^\d\-X]', '') + ); + END; + END; + + FOR volume IN xml.findnodes('//*[local-name()="volumes"]/*[local-name()="volume"]'); + + # Check volume visibility - could push this into XPath + vol.label = volume.getAttribute('label'); + vol.id = volume.getAttribute('id'); + NEXT IF volume.getAttribute('opac_visible') == 'false'; + NEXT IF volume.getAttribute('deleted') == 'true'; + + IF vol.label == '##URI##'; + FOR uri IN volume.findnodes('./*[local-name()="uris"]/*[local-name()="uri"]'); + res.href = uri.getAttribute('href'); + res.link = uri.getAttribute('label'); + res.note = uri.getAttribute('use_restriction'); + args.uris.push(res); + END; + NEXT; + ELSE; + copies = volume.findnodes('./*[local-name()="copies"]/*[local-name()="copy"]'); + FOR copy IN copies; + # Check copy visibility + cp.deleted = copy.getAttribute('deleted'); + cp.visible = copy.getAttribute('opac_visible'); + NEXT IF (cp.deleted == 'true' OR cp.visible == 'false'); + + # Iterate through all of the children to determine visibility + FOR node IN cp.childNodes; + NEXT IF cp.visible == 'false'; + vis = node.getAttribute('opac_visible'); + del = node.getAttribute('deleted'); + IF vis == 'false' or del == 'true'; + cp.visible = 'false'; + END; + END; + + NEXT IF cp.visible == 'false'; + + loc = copy.findnodes('./*[local-name()="location"]'); + circlib = copy.findnodes('./*[local-name()="circlib"]'); + status = copy.findnodes('./*[local-name()="status"]'); + + holding = { + label => vol.label, + location => loc.textContent, + library => circlib.textContent, + status => status.textContent + barcode => copy.getAttribute('barcode') + }; + args.holdings.push(holding); + END; + END; + END; + + # Extract the copy count summary + count_type = (ctx.is_staff) ? 'staff' : 'public'; + xpath = '//*[local-name()="counts"]/*[local-name()="count"][@type="' _ count_type _ '"]'; + FOR node IN xml.findnodes(xpath); + args.copy_counts = {}; + FOR attr IN ['count', 'available', 'unshadow', 'transcendant']; + args.copy_counts.$attr = node.getAttribute(attr); + END; + END; + + # "mattype" == "custom marc format specifier" + FOR icon_style IN ['mattype', 'item_type']; + node = xml.findnodes( + '//*[local-name()="attributes"]/*[local-name()="field"][@name="' _ icon_style _ '"]'); - IF node; ++ IF node AND node.textContent; + args.format_label = node.getAttribute('coded-value') + args.format_icon = ctx.media_prefix _ '/images/format_icons/' _ icon_style _ '/' _ node.textContent _ '.png'; + LAST; + END; + END; + END; + + BLOCK get_hold_status; + IF hold.hold.status == 4; + l("Available"); + IF ahr.shelf_expire_time; + l('
Expires [_1]', + date.format(ctx.parse_datetime(ahr.shelf_expire_time), DATE_FORMAT)); + END; + ELSIF hold.hold.estimated_wait AND hold.hold.estimated_wait > 0; + # estimated wait is delivered as seconds. + SET hwait = POSIX.ceil(hold.hold.estimated_wait / 86400); + l("Estimated wait: [quant,_1,day,days]", hwait); + ELSIF hold.hold.status == 3; + l("In Transit"); + ELSIF hold.hold.status < 3; + l("Waiting for copy"); + END; + END; + %] diff --cc Open-ILS/src/templates/default/opac/parts/org_selector.tt2 index 0000000000,2daf63ad75..3a203f69d4 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/org_selector.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/org_selector.tt2 @@@ -1,0 -1,23 +1,33 @@@ + [% - BLOCK build_org_selector_options; %] - + [% FOR child IN walker.children; + PROCESS build_org_selector_options walker=child value=value; + END; + END; + + # XXX TODO probably put this BLOCK somewhere else so it can be used widely. + # Org Unit Selector Widget : + # PROCESS build_org_selector id='selector-id' name='selector-name' + BLOCK build_org_selector; + %] + + [% END %] diff --cc Open-ILS/src/templates/default/opac/parts/place_hold.tt2 index 0000000000,8f56aa5ba7..861a987a5b mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/place_hold.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/place_hold.tt2 @@@ -1,0 -1,347 +1,370 @@@ + [% PROCESS "default/opac/parts/misc_util.tt2"; + attrs = {marc_xml => ctx.marc_xml}; + PROCESS get_marc_attrs args=attrs; ++ ++ PROCESS "default/opac/parts/hold_error_messages.tt2"; + %] +
-
- -
- - - - - - - - - - -
[% l("Enter recipient barcode") %]: - - - - - - - -
-
-
-
-


- [% l("Checking for possibility of hold fulfillment...") %] -
+
+ [% IF ctx.hold_success %] +
[% l("Hold was successfully placed"); %]
+ [% ELSIF ctx.hold_failed %] +
[% l("Hold was not successfully placed"); %]
- [% IF ctx.hold_failed_event %] ++ [% IF ctx.hold_local_block %] ++
[% l("There is already a copy available at your local library.") %]
++ [% ELSIF ctx.hold_failed_event || ctx.hold_local_alert %] +
+ [% l('Problem:') %] + - [% ctx.hold_failed_event.desc || ++ [% ++ fail_part_key = ctx.hold_failed_event.payload.fail_part; ++ event_key = ctx.hold_failed_event.textcode; ++ ++ # display: ++ l(FAIL_PART_MSG_MAP.$fail_part_key) || ++ l(EVENT_MSG_MAP.$event_key) || ++ l(ctx.hold_failed_event.desc) || + ctx.hold_failed_event.payload.fail_part || - ctx.hold_failed_event.textcode %] ++ ctx.hold_failed_event.textcode || ++ (ctx.hold_local_alert ? ++ l("There is already a copy available at your local library.") : ++ l("Unknown problem")) %] + ++ ++ [% IF ctx.hold_copy_available %]

++ [% l('Find a copy in the shelving location, "[_1]."', ++ ctx.hold_copy_available.location) %] ++

[% END %] ++ ++ [% IF ctx.could_override || ctx.hold_local_alert %] ++

++ [% l("You have permission to place this hold anyway.") %] ++
++ [% l("Click submit below to override the system's objection and place your hold.") %] ++

++
++ ++ [% FOR k IN ctx.orig_params.keys %] ++ ++ [% END %] ++ ++
++ [% END %] +
+ [% END; ++ ELSIF ctx.hold_local_block; ++ l("There is already a copy available at your local library"); + ELSE %] +
+
+ + + [% + new_redirect_to = ctx.referer; + IF new_redirect_to.match('redirect_to'); + new_redirect_to = 'https://' _ ctx.hostname _ ctx.opac_root _ '/home'; + ELSE; + new_redirect_to = new_redirect_to | replace('^http:', 'https:'); + END; + %] + +

Place Hold

++ [% IF ctx.is_staff %] ++

++ ++ ++
[%# XXX multi-barcode users? %] ++ ++ ++ ++ ++

++ [% END %] +

+ [% | l(attrs.title, ctx.get_aou(ctx.default_pickup_lib).name) %] - You would like to place a hold on [_1] to be picked up at [_2]. - If this is correct, press SUBMIT. ++ You would like to place a hold on [_1].
++ If this is correct, confirm your pickup location and click SUBMIT. + [% END %] +

+

- [% l('If you would like to change the library pick up location, select from the location dropdown menu.') %] -
++ [% l('Pickup location:') %] + [% PROCESS "default/opac/parts/org_selector.tt2"; - PROCESS build_org_selector name='pickup_lib' value=ctx.default_pickup_lib %] ++ PROCESS build_org_selector name='pickup_lib' value=ctx.default_pickup_lib id='pickup_lib' can_have_vols_only=1 %] +

+

+ [% |l %]If you use the Traveling Library Center (TLC) and ABC Express + services, please select "Outreach" to have the item delivered + during your scheduled visit.[% END %] +

+ +        + [% l('Cancel') %] +
+

+

+ [% |l %]* If you need your item today, and it is checked in at your + library, please place your hold and then call your library to set it + aside. Placing a hold without calling the library will increase your + wait time.[% END %] +
[% l('Library phone numbers.') %] +

+

+ [% |l %]* For best possible service, we recommend keeping + a printed copy of your most recent holds list.[% END %] +

+ [% END %] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[% l("Create / Edit a Hold") %]
[% l("Recipient") %]:
[% l("Title:") %]
[% l("Author") %]
[% l("Format") %]
[% l("Physical Description:") %]
[% l("Call Number:") %]
[% l("Copy Barcode:") %]
[% l("Hold Type:") %] + [% l("Volume Hold") %] + + [% l("Copy Hold") %] +
[% l("Contact telephone number") %]: + + + [% l("(XXX-YYY-ZZZZ)") %] + +
[% l("Enable phone notifications for this hold?") %] + +
[% l("Contact email address") %]: + + ([% l("Patron has no configured email address") %])
+ ([% l("See") %] [% l("My Account") %] [% l("for setting your email address") %]) +
+ + [% l("(Patron has no configured email address)") %] + +
[% l("Enable email notifications for this hold?") %] + +
[% l("Pickup location") %] + +
[% l("Expiration date") %] + +
+ [% l("Suspend this hold") %] + [% l("(Help)") %] + + +
+ + [% l("Automatically activate hold on:") %] + + +
+ +
+
+ [% l("Acceptable Alternative Formats:") %] + [% l("(Help)") %] +
+
[% l("(control-click to select multiple formats)") %]
+
+ +
+ + + + +
-
[% l("Hold was successfully placed") %]
-
[% l("Hold was not successfully placed") %]
+ + [% l("The phone number does not have the correct format. The expected format is XXX-YYY-ZZZZ") %] + + + [% |l %]No items were found that could fulfill the requested holds. + It's possible that choosing a different format will result in a successful hold. + It is also possible that you have exceeded the number of allowable holds. + For further information, please consult your local librarian.[% END %] + +
+
+
+ Place hold on selected
+ Remove selected + + + + + + + +
+ + + + Title +
+ + + + + + + + + + + +
+ Back to search results +
+ + + [% l("Books") %] + [% l("Large Print Books") %] + [% l("Audiobooks") %] + [% l("Video Recordings") %] + [% l("Music") %] + [% l("Electronic Resources") %] + + + + [% |l %]If you wish to broaden the scope of your hold to include other versions of this title, + select the formats that would be acceptable. The first available copy will be sent to you.[% END %] + + + [% l("Please select a physical location where your hold can be delivered.") %] + [% l("A hold already exists on the requested item.") %] + [% l("A hold already exists on the requested item. Would you like to create the hold anyway?") %] + + + [% |l %]PATRON BARRED. Please see any notes in the "Staff Notes" section of your + "My Account" page or contact your local library.[% END %] + + + + [% |l %]This hold is no longer valid. It's likely that the target for the hold was + deleted from the system. Please cancel this hold and place a new one.[% END %] + + [% l("The patron barcode entered as the hold recipient is invalid.") %] +
diff --cc Open-ILS/src/templates/default/opac/parts/qtype_selector.tt2 index 0000000000,8c31f0d4f4..f79de8a29e mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/qtype_selector.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/qtype_selector.tt2 @@@ -1,0 -1,16 +1,16 @@@ + [% query_types = [ + {value => "keyword", label => l("Keyword")}, + {value => "title", label => l("Title")}, + {value => "author", label => l("Author")}, + {value => "subject", label => l("Subject")}, + {value => "series", label => l("Series")}, - {value => "id|bibcn", label => l("Call Number")} ++ {value => "id|bibcn", label => l("Bib Call Number")} + ] %] + diff --cc Open-ILS/src/templates/default/opac/parts/record/awards.tt2 index 0000000000,dda3949243..57f10033df mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/record/awards.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/record/awards.tt2 @@@ -1,0 -1,31 +1,32 @@@ +
+
+ + + [% l('Patron Reviews:') %] +
+
+ +
+ + + [% IF 0 %] + [% l('Reviews:') %] +
+ [% END %] + + - [% IF 0 %] ++ [% IF ENV.OILS_NOVELIST_URL %] + [% l('Similar Books:') %] -
-
-
-
-
-
-
++
++
++
++
++
++
++
++
+
+ [% END %] +
+
+ diff --cc Open-ILS/src/templates/default/opac/parts/record/extras.tt2 index 0000000000,66b49179a9..c53ce31668 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/record/extras.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/record/extras.tt2 @@@ -1,0 -1,54 +1,75 @@@ +
+
+ + [% # Hidden extras are not yet implemented. Some may require JS ++ ++ # Let's see if we should hide the content cafe / simple summary content ++ hide_summary = 1; ++ IF attrs.summary; hide_summary = 0; ELSE; ++ # Expose content cafe if it's reasonable to do so. ++ # This approach only works when using embedded content cafe. ++ IF ENV.OILS_CONTENT_CAFE_USER; ++ ident = attrs.isbn_clean || attrs.upc; ++ IF ident; hide_summary = 0; END; ++ END; ++ END; ++ + extras = [ - {name => 'summary', label => l('Summaries & More'), hide => 1}, # Content Cafe ++ {name => 'summaryplus', label => l('Summaries & More'), hide => hide_summary}, + {name => 'content', label => l('Contents'), hide => 1}, # ToC + {name => 'authors', label => l('Authors')}, + {name => 'series', label => l('Series'), hide => 1}, - {name => 'awards', label => l('Series'), hide => 1}, + {name => 'subjects', label => l('Subject')}, + {name => 'annotation', label => l('Annotation'), hide => 1}, + {name => 'awards', label => l('Awards, Reviews, & Suggested Reads')}, + {name => 'excerpt', label => l('Excerpt'), hide => 1}, + {name => 'issues', label => l('Issues Held'), hide => !ctx.have_holdings_to_show}, + {name => 'preview', label => l('Preview'), hide => 1}, - {name => 'cnbrowse', label => l('Shelf Browser'), hide => 1}, ++ {name => 'cnbrowse', label => l('Shelf Browser')}, + {name => 'copyinfo', label => l('Copy Summary'), hide => 1}, + {name => 'marchtml', label => l('MARC Record')} + ]; + + FOREACH extra IN extras; + IF extra.hide; NEXT; END; + name = extra.name; + %] +
+
+ +
+
+ [% exp_name = 'expand_' _ name; + IF ctx.$exp_name; + IF name == 'marchtml'; + ctx.marchtml; + ELSE; + # Load the template for the selected extra + INCLUDE "default/opac/parts/record/${name}.tt2"; + END; + END; + %] +
+ [% END %] +
+ +
diff --cc Open-ILS/src/templates/default/opac/parts/record/summary.tt2 index 0000000000,1de1578bc5..52f5fde0b5 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/record/summary.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/record/summary.tt2 @@@ -1,0 -1,280 +1,294 @@@ + [% PROCESS "default/opac/parts/misc_util.tt2"; + USE ResolverResolver; + ctx.page_title = attrs.title | html_entity + %] + + + + [% IF ctx.refworks.enable == 'true' %] + [% INCLUDE 'default/opac/parts/record/refworks.tt2' %] + [% END %] + + + + + + + + + + + +
+ [% ident = attrs.isbn_clean || attrs.upc; IF ident; %] + [% l('Image of item') %] + [% END %] +
+
+ + + + + +
+ [% attrs.title %]
+ [% IF attrs.author %] + [% l("Author") %]: + [% attrs.author %] + [% END %] +
+
+
+ +
+ [% + operation = ctx.mylist.grep(ctx.bre_id).size ? "delete" : "add"; + label = (operation == "add") ? l("Add to my list") : l("Remove from my list"); + %] +
+ +
+
+ +
+
+ +
+
+
+
+ [% IF attrs.format_icon %] + [% attrs.format_label %] + [% END %] +
+
+
+
+ + + + + + + + [% IF openurl.enabled == 'true'; + FOR issn IN args.issns; + sfx = ResolverResolver.resolve_issn(issn, openurl.baseurl); + FOR res IN sfx; + %] + + + + + [% END %] + [% END %] + [% END %] + + + + + + + + + + +
+ [% IF attrs.isbn %][% l("ISBN") %][% END %] + [% attrs.isbn %] + [% IF attrs.phys_desc %][% l("Physical Description") %][% END %] + [% attrs.phys_desc %]
+ + [% res.public_name %] + [% res.target_coverage %]
+ [% IF attrs.edition; l("Edition"); END %] + [% attrs.edition %]
+ [% IF attrs.publisher; l("Publisher"); END %] + [% attrs.publisher %] + [% IF attrs.pubdate; l("Publication Date"); END %] + [% attrs.pubdate %]
+ + +
+
+ [% l("[quant,_1,Hold,Holds] with [quant,_2,total copy,total copies]", + ctx.record_hold_count, ctx.copy_summary.0.count) %] +
+
[% l('[quant,_1,Copy,Copies] available', ctx.copy_summary.0.available) %]
+
+ +
+
+
+ + [% FOR uri IN args.uris %] +
+ [% uri.link %][% ' - ' _ uri.note IF uri.note %] +
+ [% END %] + +
+ + + + + + + + + [% IF ctx.is_staff %] + + - ++ + [% END %] + + + + + - [% FOR copy_info IN ctx.copies %] - [% NEXT IF copy_info.call_number_label == '##URI##' %] ++ [% last_cn = 0; ++ FOR copy_info IN ctx.copies; ++ NEXT IF copy_info.call_number_label == '##URI##' %] + + + + + + [% IF ctx.is_staff %] + + - ++ + [% END %] + + + + [% END %] + + [% IF ctx.copy_offset > 0; + new_offset = ctx.copy_offset - ctx.copy_limit; + IF new_offset < 0; new_offset = 0; END %] + + [% END %] + [% IF ctx.copies.size >= ctx.copy_limit %] + + [% END %] + + +
[% l("Location") %][% l("Call Number") %][% l("Barcode") %][% l("Shelving Location") %][% l("Age Hold Protection") %][% l("Create Date") %][% l("Holdable") %][% l("Holdable?") %][% l("Status") %][% l("Due Date") %]
[% + # XXX KCLS-specific kludging + org_name = ctx.get_aou(copy_info.circ_lib).name; + dir = org_name | lower | replace('[^\w]', '') | + replace('.+320th', '320th'); %] + [% org_name %] + [% copy_info.call_number_label %][% copy_info.barcode %][% copy_info.copy_location %] + [% copy_info.age_protect ? + ctx.get_crahp(copy_info.age_protect).name : l('None') %] + [% date.format( + ctx.parse_datetime(copy_info.create_date), + DATE_FORMAT + ) %][% (copy_info.holdable == 't' AND - copy_info.location_holdable == 't' AND - copy_info.status_holdable == 't') ? l('Yes') : l('No') %][% # Show copy/volume hold links to staff (without ++ # checking whether they have permissions to do those). ++ overall_holdable = (copy_info.holdable == 't' AND ++ copy_info.location_holdable == 't' AND ++ copy_info.status_holdable == 't'); ++ IF overall_holdable; ++ l("Place on"); %] ++ [% l("copy") %] ++ [% IF copy_info.call_number != last_cn; ++ last_cn = copy_info.call_number; ++ l(" / "); %] ++ [% l("volume") %] ++ [% END; ++ ELSE; ++ l("No"); ++ END %][% copy_info.copy_status %][% + IF copy_info.due_date; + date.format( + ctx.parse_datetime(copy_info.due_date), + DATE_FORMAT + ); + ELSE; + '-'; + END %]
+ « [% + l('Previous [_1]', ctx.copy_offset - new_offset) + %] + + [% + l('Next [_1]', ctx.copy_limit) + %] » +
+ + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + + + +
+
+ [% l("Title") %]: +
+
+ [% l('Place Hold') %] + [% l('Reviews and More') %] + [% l('Add to My List') %] +
+
+
+
+ + diff --cc Open-ILS/src/templates/default/opac/parts/result/lowhits.tt2 index 0000000000,c66b114945..78679fc7e1 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/result/lowhits.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/result/lowhits.tt2 @@@ -1,0 -1,90 +1,94 @@@ +
+
+
+

[% l('Sorry, no entries were found for') %] - [% IF is_advanced; l('your search'); ELSE %] ++ [% IF is_advanced OR is_special; l('your search'); ELSE %] + [% CGI.param('query') | html %] + [% END %] +
+ Did you mean + ? +

+ + + + + +
+ [% l('Other Possibilities:') %] +
+
+
+ [% INCLUDE "default/opac/parts/result/lowhits_purchase.tt2" %] +

+ Keyword Search Tips
- Change to Advanced Keyword Search. ++ Try changing to Advanced Search. +

+

+ Adjacency
+ Multiple words are not searched together as a phrase. They will + be found in various parts of the record. To search for a phrase, enclose your + search terms in quotation marks.
+ (example: "garcia marquez") +

+

+ Truncation
+ Words may be right-hand truncated using an asterisk. Use a single asterisk * - to truncate from 1-5 characters. Use a double asterisk ** for open-ended truncation.
++ to truncate any number of characters.
+ (example: environment* agency) +

+

- Wildcards
- You may use a question mark to replace a single character anywhere within a word.
- example: wom?) ++ Anchored Searching
++ You may use ^ and $ to indicate "phrase begins with" and ++ "phrase ends with," respectively, within a search phrase ++ enclosed in quotation marks.
++ (examples: "^harry" for phrases that begin with ++ the term harry. ++ "stone$" for phrases that end in stone.) +

+
+
+
+
+
[% l("Few hits were returned for your search.") %]
+
[% l("Zero hits were returned for your search.") %]
+
+ + +
+ [% l("Maybe you meant:") %] + +
+ +
+ [% l("You will find more hits when searching all item formats:") %] + [% l("Search again with all formats?") %] +
+ +
+ [% l("You may also like to try these related searches:") %] +
+ +
+
+ +
+ [% l("You may also wish to expand your search range to:") %] + +
+ +
+ [% l("You can try searching the same terms by:") %] + [% l("title") %] + [% l("author") %] + [% l("subject") %] + [% l("series") %] + [% l("keyword") %] +
+
+
diff --cc Open-ILS/src/templates/default/opac/parts/result/lowhits_purchase.tt2 index 0000000000,263269abe6..ff34338282 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/result/lowhits_purchase.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/result/lowhits_purchase.tt2 @@@ -1,0 -1,6 +1,6 @@@ -

++[%# XXX Is this block generally desired?

+ Still not finding what you are looking for?
+ Request that your library purchase the material you are looking for by making a + Purchase Request
+ Note: You must be logged in to make a Purchase Request
-

++

%] diff --cc Open-ILS/src/templates/default/opac/parts/searchbar.tt2 index 0000000000,383c1d2fd5..6f4f01f2a7 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/parts/searchbar.tt2 +++ b/Open-ILS/src/templates/default/opac/parts/searchbar.tt2 @@@ -1,0 -1,78 +1,78 @@@ + [% PROCESS "default/opac/parts/org_selector.tt2" %] + diff --cc Open-ILS/src/templates/default/opac/results.tt2 index 0000000000,d0b6d2825b..9b2d2427d1 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/opac/results.tt2 +++ b/Open-ILS/src/templates/default/opac/results.tt2 @@@ -1,0 -1,79 +1,79 @@@ + [% PROCESS "default/opac/parts/header.tt2"; + USE POSIX; + + WRAPPER "default/opac/parts/base.tt2"; + INCLUDE "default/opac/parts/topnav.tt2"; + - IF is_advanced; ++ IF is_advanced || is_special; + ctx.page_title = l("Search Results"); + ELSE; + ctx.page_title = l("Search Results: ") _ CGI.param('query') | html_entity; + END; + + page = CGI.param('page') || 0; - page_count = POSIX.ceil(ctx.hit_count / ctx.page_size); ++ page_count = ctx.page_size == 0 ? 1 : POSIX.ceil(ctx.hit_count / ctx.page_size); + %] +
+
+ [% INCLUDE "default/opac/parts/printnav.tt2" %] + [% INCLUDE "default/opac/parts/searchbar.tt2" took_care_of_form=1 %] +
+
+
+
+
+ [% l('Another Search') %] +
+
+ [% l('Advanced Search') %] +
+ [% IF ctx.mylist.size %] +
+ View My List +
+ [% END %] +
- [% UNLESS is_advanced %] ++ [% UNLESS is_advanced || is_special %] +
Sort by
+ [% INCLUDE "default/opac/parts/filtersort.tt2" value=CGI.param('sort') %] +
+ + + + [% END %] +
+
+
+
+
+
+
+
+ [% path = "default/opac/parts/result/" _ + (ctx.records.size ? "table.tt2" : "lowhits.tt2"); + INCLUDE $path %] +
+
+
+
+ [% END %] diff --cc Open-ILS/src/templates/default/vandelay/inc/attrs.tt2 index 0000000000,d06b176f1b..1a09b0bb82 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/vandelay/inc/attrs.tt2 +++ b/Open-ILS/src/templates/default/vandelay/inc/attrs.tt2 @@@ -1,0 -1,102 +1,92 @@@ +
+ + + + +
+
+ &vandelay.create.attr.def; +
+ + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + +
+ +
+ +
- -
+ + +
+ + + +
+
+
+
+ + + + + + + + - + + + + +
&vandelay.id;&vandelay.code;&vandelay.descrip;&vandelay.tag;&vandelay.subfield;&vandelay.identifier;&vandelay.xpath;&vandelay.remove;
+
+
+ + diff --cc Open-ILS/src/templates/default/vandelay/inc/matches.tt2 index 0000000000,90f3546a96..2376dbc259 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/vandelay/inc/matches.tt2 +++ b/Open-ILS/src/templates/default/vandelay/inc/matches.tt2 @@@ -1,0 -1,44 +1,41 @@@ + +

&vandelay.import.matches;


+ +
+ +
+ +
+ +
+
+ diff --cc Open-ILS/src/templates/default/vandelay/inc/profiles.tt2 index 0000000000,5bd4d4daab..0220d6a20e mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/vandelay/inc/profiles.tt2 +++ b/Open-ILS/src/templates/default/vandelay/inc/profiles.tt2 @@@ -1,0 -1,23 +1,28 @@@ +
+
+
Overlay / Merge Profiles
+
+ + +
+
+
+ Context Org Unit + +
+ ++ ++ ++ ++ +
++
+
diff --cc Open-ILS/src/templates/default/vandelay/inc/queue.tt2 index 0000000000,e7d6eaf607..466ee4f9fc mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/vandelay/inc/queue.tt2 +++ b/Open-ILS/src/templates/default/vandelay/inc/queue.tt2 @@@ -1,0 -1,201 +1,247 @@@ -
- - - - - -
-

&vandelay.record.queue;


-
- &vandelay.queue.total; - &vandelay.queue.imported; -
-
- -
- -
-
- - ++
++
++ Queue ++
++ ++ ++
++ + - - - - - - - - - - - - - - - - - - + - -
&vandelay.auto.import.noncolliding; - ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
Queue Actions
&vandelay.import.selected;
&vandelay.import.all;
View Import Items
&vandelay.delete.queue;
+
&vandelay.auto.import.auto_overlay_exact; - -
&vandelay.auto.import.auto_overlay_1match; - -
&vandelay.auto.import.merge_profile; -
-
- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
Queue Summary
&vandelay.queue.total;
&vandelay.queue.imported;
Record Import Failures
Items in Queue
Items Imported
Item Import Failures
+
- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
Queue Filters
&vandelay.limit.to.collision.matches; ++ ++
&vandelay.limit.to.non.imported; ++ ++
&vandelay.limit.to.import_error; ++ ++
+
- - - - -
- - - - - + - &vandelay.results.per.page; - ++ - - -
- - - - - -
- &vandelay.limit.to.collision.matches; - - - - - &vandelay.limit.to.non.imported; - - - ++
++
++ ++ ++ -
++ ++ &vandelay.results.per.page; ++ + + + - &vandelay.page; - -
-
- - &vandelay.prev.page; - - - &vandelay.next.page; - -
-
++ ++ &vandelay.page; ++ ++ + ++ ++ &vandelay.prev.page; ++ ++ ++ &vandelay.next.page; ++ ++
++ ++ ++ ++
+ + +
+ + + + + + + ++ + + +
+ + &vandelay.view.marc;&vandelay.matches;Import Failures&vandelay.import.time;
+
+
+ + +
+ + + + + + + ++ + + +
+ + &vandelay.view.marc;&vandelay.matches;Import Failures&vandelay.import.time;
+
+
+ ++
++
++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
&vandelay.auto.import.merge_profile; ++
++
&vandelay.auto.import.noncolliding; ++ ++
&vandelay.auto.import.auto_overlay_exact; ++ ++
&vandelay.auto.import.auto_overlay_1match; ++ ++
&vandelay.auto.import.auto_overlay_best;
&vandelay.auto.import.auto_overlay_best_ratio; ++ ++ (&vandelay.auto.import.auto_overlay_best_ratio.desc;) ++
++ ++ ++ ++
++
++
++ ++ + diff --cc Open-ILS/src/templates/default/vandelay/inc/toolbar.tt2 index 0000000000,69c2190a56..144cd45336 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/vandelay/inc/toolbar.tt2 +++ b/Open-ILS/src/templates/default/vandelay/inc/toolbar.tt2 @@@ -1,0 -1,14 +1,16 @@@ +
+
&vandelay.export.records;
+
&vandelay.import.records;
+
&vandelay.inspect.queue;
+
&vandelay.edit.attributes;
+
&vandelay.edit.profiles;
++
&vandelay.edit.match_set;
+
&vandelay.edit.import_item_attrs;
+
diff --cc Open-ILS/src/templates/default/vandelay/inc/upload.tt2 index 0000000000,aca632016e..b43225226a mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/vandelay/inc/upload.tt2 +++ b/Open-ILS/src/templates/default/vandelay/inc/upload.tt2 @@@ -1,0 -1,79 +1,96 @@@ +

&vandelay.marc.file.upload;


+
+ + + + + + + + + + + + + - - ++ + + - - ++ + + - - ++ + ++ + + + + + - - ++ + + - - ++ + + - ++ - ++ ++ ++ ++ ++ ++ ++ + ++ ++ + - + +
&vandelay.record.type; + +
&vandelay.create.upload.queue; + + &vandelay.add.existing.queue; + +
&vandelay.auto.import.noncolliding; - ++ Record Match Set ++ +
&vandelay.auto.import.auto_overlay_exact; - ++ Holdings Import Profile ++ +
&vandelay.auto.import.auto_overlay_1match; - ++ &vandelay.import.bib_sources; ++
++ &vandelay.import.actions; ++
&vandelay.auto.import.merge_profile; +
+
Holdings Import Profile - ++ &vandelay.auto.import.noncolliding; ++ +
&vandelay.import.bib_sources; - &vandelay.auto.import.auto_overlay_exact; ++ +
- &vandelay.file.to.upload; ++ &vandelay.auto.import.auto_overlay_1match; ++ + - ++
&vandelay.auto.import.auto_overlay_best;
&vandelay.auto.import.auto_overlay_best_ratio; ++ ++ (&vandelay.auto.import.auto_overlay_best_ratio.desc;) +
- ++ ++ &vandelay.file.to.upload; ++ ++ +
+
+ diff --cc Open-ILS/src/templates/default/vandelay/vandelay.tt2 index 0000000000,2e2a2e0ab5..78f23a8573 mode 000000,100644..100644 --- a/Open-ILS/src/templates/default/vandelay/vandelay.tt2 +++ b/Open-ILS/src/templates/default/vandelay/vandelay.tt2 @@@ -1,0 -1,45 +1,50 @@@ + [% WRAPPER 'default/base.tt2' %] + [% ctx.page_title = 'MARC Import/Export' %] + [% ctx.dtd = '' %] + + + + + + +
+ [% INCLUDE 'default/vandelay/inc/progress.tt2' %] +
+ + + + + + + + ++ + ++ + + + [% END %] diff --cc Open-ILS/src/templates_kcls/default/opac/parts/result/lowhits_purchase.tt2 index 0000000000,a41f6588a6..cdfde4641c mode 000000,100644..100644 --- a/Open-ILS/src/templates_kcls/default/opac/parts/result/lowhits_purchase.tt2 +++ b/Open-ILS/src/templates_kcls/default/opac/parts/result/lowhits_purchase.tt2 @@@ -1,0 -1,6 +1,6 @@@ +

+ Still not finding what you are looking for?
+ Request that KCLS purchase the material you are looking for by making a - Purchase Request
++ Purchase Request
+ Note: You must be logged in to make a Purchase Request
+