From: senator Date: Thu, 24 Mar 2011 22:51:09 +0000 (-0400) Subject: towards an opac hold editor X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=f2e40eb1df75dc0215965033f44473898f04dd9c;p=evergreen%2Fequinox.git towards an opac hold editor --- diff --git a/Open-ILS/web/css/skin/default/opac/style.css b/Open-ILS/web/css/skin/default/opac/style.css index 5d402f9694..6b40404313 100644 --- a/Open-ILS/web/css/skin/default/opac/style.css +++ b/Open-ILS/web/css/skin/default/opac/style.css @@ -968,3 +968,7 @@ a.dash-link:hover { text-decoration: underline !important; } } .list-create-table-buttons input[type=image] { margin-top: 2px; } .result_table_format_cell { padding: 0px 10px; text-align: center; } +#hold_editor h1 { font-size: 120%; font-weight: bold; } +#hold_editor h2 { font-size: 111%; font-weight: normal; text-indent: 2em; font-style: italic; } +#hold_editor h1, #hold_editor h2 { margin: 2px 0; } +#hold_editor_table th { text-align: right; padding-right: 1em; } diff --git a/Open-ILS/web/templates/default/opac/mylist.tt2 b/Open-ILS/web/templates/default/opac/mylist.tt2 index daccdb742a..2152b52087 100644 --- a/Open-ILS/web/templates/default/opac/mylist.tt2 +++ b/Open-ILS/web/templates/default/opac/mylist.tt2 @@ -1,5 +1,5 @@ [% PROCESS "default/opac/parts/header.tt2"; - PROCESS "default/opac/parts/marc_misc.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; WRAPPER "default/opac/parts/base.tt2"; INCLUDE "default/opac/parts/topnav.tt2"; ctx.page_title = l("Record Detail") %] diff --git a/Open-ILS/web/templates/default/opac/myopac/circs.tt2 b/Open-ILS/web/templates/default/opac/myopac/circs.tt2 index 8846bdfdd9..9ef034d41b 100644 --- a/Open-ILS/web/templates/default/opac/myopac/circs.tt2 +++ b/Open-ILS/web/templates/default/opac/myopac/circs.tt2 @@ -1,5 +1,5 @@ [% PROCESS "default/opac/parts/header.tt2"; - PROCESS "default/opac/parts/marc_misc.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; WRAPPER "default/opac/parts/base.tt2" + "default/opac/parts/myopac/base.tt2"; myopac_page = "circs" %] diff --git a/Open-ILS/web/templates/default/opac/myopac/holds.tt2 b/Open-ILS/web/templates/default/opac/myopac/holds.tt2 index cd4ce31f98..7000f30a36 100644 --- a/Open-ILS/web/templates/default/opac/myopac/holds.tt2 +++ b/Open-ILS/web/templates/default/opac/myopac/holds.tt2 @@ -1,5 +1,5 @@ [% PROCESS "default/opac/parts/header.tt2"; - PROCESS "default/opac/parts/marc_misc.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; WRAPPER "default/opac/parts/base.tt2" + "default/opac/parts/myopac/base.tt2"; myopac_page = "holds" %] @@ -192,23 +192,7 @@
- [% - 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; - %] + [% PROCESS get_hold_status hold=hold; %]
diff --git a/Open-ILS/web/templates/default/opac/myopac/holds/edit.tt2 b/Open-ILS/web/templates/default/opac/myopac/holds/edit.tt2 new file mode 100644 index 0000000000..bf30913ee7 --- /dev/null +++ b/Open-ILS/web/templates/default/opac/myopac/holds/edit.tt2 @@ -0,0 +1,77 @@ +[% PROCESS "default/opac/parts/header.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; + PROCESS "default/opac/parts/org_selector.tt2"; + WRAPPER "default/opac/parts/base.tt2" + + "default/opac/parts/myopac/base.tt2"; + myopac_page = "holds"; # in this case, just for tab coloring. + + hold = 0; + FOR h IN ctx.holds; + IF h.hold.hold.id == CGI.param('id'); + hold = h; + ahr = hold.hold.hold; + attrs = {marc_xml => hold.marc_xml}; + PROCESS get_marc_attrs args=attrs; + hold.human_status = PROCESS get_hold_status hold=hold; + + # Do this up front to avoid verbosity later + expire_time = ahr.expire_time ? date.format(ctx.parse_datetime(ahr.expire_time), DATE_FORMAT) : ''; + thaw_date = ahr.thaw_date ? date.format(ctx.parse_datetime(ahr.thaw_date), DATE_FORMAT) : ''; + LAST; + END; + END; +%] +
+
+ [% l('Editing Hold') %] +
+
+ [% IF hold %] +

[% attrs.title %]

+

[% attrs.author %]

+ [% IF attrs.format_icon %]

+ [% l('Format:') %] + [% attrs.format %] +

[% END %] +

+ [% l('Status') %]: [% hold.human_status %] +

+
+ + + + + + + + + + + + + +
+ + [% l('Pickup library') %] + + [% PROCESS build_org_selector + name='pickup_lib' value=ahr.pickup_lib %] +
+ [% l('Cancel unless filled by') %] + + +
+ [% l('Activate on') %] + + +
+
+ [% ELSE; + l('Hold not found'); + END %] +
+
+[% END %] diff --git a/Open-ILS/web/templates/default/opac/myopac/lists.tt2 b/Open-ILS/web/templates/default/opac/myopac/lists.tt2 index 1fa28f952f..f661726c38 100644 --- a/Open-ILS/web/templates/default/opac/myopac/lists.tt2 +++ b/Open-ILS/web/templates/default/opac/myopac/lists.tt2 @@ -1,5 +1,5 @@ [% PROCESS "default/opac/parts/header.tt2"; - PROCESS "default/opac/parts/marc_misc.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; WRAPPER "default/opac/parts/base.tt2" + "default/opac/parts/myopac/base.tt2"; myopac_page = "lists" %] diff --git a/Open-ILS/web/templates/default/opac/myopac/main.tt2 b/Open-ILS/web/templates/default/opac/myopac/main.tt2 index e92e17c904..8f756e443b 100644 --- a/Open-ILS/web/templates/default/opac/myopac/main.tt2 +++ b/Open-ILS/web/templates/default/opac/myopac/main.tt2 @@ -1,5 +1,5 @@ [% PROCESS "default/opac/parts/header.tt2"; - PROCESS "default/opac/parts/marc_misc.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; WRAPPER "default/opac/parts/base.tt2" + "default/opac/parts/myopac/base.tt2"; myopac_page = "main" %] diff --git a/Open-ILS/web/templates/default/opac/myopac/update_email.tt2 b/Open-ILS/web/templates/default/opac/myopac/update_email.tt2 index 22b089a5a1..7a9c014d06 100644 --- a/Open-ILS/web/templates/default/opac/myopac/update_email.tt2 +++ b/Open-ILS/web/templates/default/opac/myopac/update_email.tt2 @@ -1,5 +1,5 @@ [% PROCESS "default/opac/parts/header.tt2"; - PROCESS "default/opac/parts/marc_misc.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; WRAPPER "default/opac/parts/base.tt2" + "default/opac/parts/myopac/base.tt2"; myopac_page = "update_email" %] diff --git a/Open-ILS/web/templates/default/opac/parts/marc_misc.tt2 b/Open-ILS/web/templates/default/opac/parts/marc_misc.tt2 deleted file mode 100644 index 8c1c4a761f..0000000000 --- a/Open-ILS/web/templates/default/opac/parts/marc_misc.tt2 +++ /dev/null @@ -1,33 +0,0 @@ -[% - # 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.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(""); - - # clean up the ISBN - args.isbn_clean = args.isbn.replace('\ .*', ''); - - # KCLS-specific stuff; needs to change - args.mattype = xml.findnodes('//*[@tag="998"]/*[@code="d"]').textContent; - args.kcls_cn = xml.findnodes('//*[@tag="092" or @tag="099"]/*').textContent; - mattype = args.mattype; - args.format = ctx.find_citm(mattype).value; - args.format_icon = icon_by_format.$mattype; - END; -%] diff --git a/Open-ILS/web/templates/default/opac/parts/misc_util.tt2 b/Open-ILS/web/templates/default/opac/parts/misc_util.tt2 new file mode 100644 index 0000000000..482481d9d8 --- /dev/null +++ b/Open-ILS/web/templates/default/opac/parts/misc_util.tt2 @@ -0,0 +1,51 @@ +[% + # 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.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(""); + + # clean up the ISBN + args.isbn_clean = args.isbn.replace('\ .*', ''); + + # KCLS-specific stuff; needs to change + args.mattype = xml.findnodes('//*[@tag="998"]/*[@code="d"]').textContent; + args.kcls_cn = xml.findnodes('//*[@tag="092" or @tag="099"]/*').textContent; + mattype = args.mattype; + args.format = ctx.find_citm(mattype).value; + args.format_icon = icon_by_format.$mattype; + 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 --git a/Open-ILS/web/templates/default/opac/parts/place_hold.tt2 b/Open-ILS/web/templates/default/opac/parts/place_hold.tt2 index f3d8ef3d87..1c2f8b5e1e 100644 --- a/Open-ILS/web/templates/default/opac/parts/place_hold.tt2 +++ b/Open-ILS/web/templates/default/opac/parts/place_hold.tt2 @@ -1,4 +1,4 @@ -[% PROCESS "default/opac/parts/marc_misc.tt2"; +[% PROCESS "default/opac/parts/misc_util.tt2"; attrs = {marc_xml => ctx.marc_xml}; PROCESS get_marc_attrs args=attrs; %] diff --git a/Open-ILS/web/templates/default/opac/parts/record/body.tt2 b/Open-ILS/web/templates/default/opac/parts/record/body.tt2 index 93d2bf79a8..f36182a4ad 100644 --- a/Open-ILS/web/templates/default/opac/parts/record/body.tt2 +++ b/Open-ILS/web/templates/default/opac/parts/record/body.tt2 @@ -1,7 +1,7 @@ [% record = ctx.record; attrs = {marc_xml => ctx.marc_xml}; - PROCESS "default/opac/parts/marc_misc.tt2"; + PROCESS "default/opac/parts/misc_util.tt2"; PROCESS get_marc_attrs args=attrs %]
[%# diff --git a/Open-ILS/web/templates/default/opac/parts/result/table.tt2 b/Open-ILS/web/templates/default/opac/parts/result/table.tt2 index 6dfb7b800d..ddafce5d1b 100644 --- a/Open-ILS/web/templates/default/opac/parts/result/table.tt2 +++ b/Open-ILS/web/templates/default/opac/parts/result/table.tt2 @@ -1,4 +1,4 @@ -[% PROCESS "default/opac/parts/marc_misc.tt2"; +[% PROCESS "default/opac/parts/misc_util.tt2"; ctx.result_start = 1 + ctx.page_size * page; ctx.result_stop = 1 + ctx.page_size * (page + 1);