Remove /default/ from template paths
authorBill Erickson <berick@esilibrary.com>
Thu, 1 Sep 2011 14:58:03 +0000 (10:58 -0400)
committerBill Erickson <berick@esilibrary.com>
Thu, 1 Sep 2011 14:58:03 +0000 (10:58 -0400)
The original goal of having a /default/ component to the template path
was to support alternate skins.  However, Template Toolkit supports
alternate skins through a more elegant mechanism of providing template
overlays via template path configuration.  In other words, skin files
will be differentiated by the location of their root path and not
because they live in a different skin directory inside the main
template root.

Because of this, the /default/ component in the template path serves
no purpose and generally just gets in the way.

As a part of this, EGWeb.pm no longer inserts the skin name into the
template file path.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
437 files changed:
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm
Open-ILS/src/templates/acq/common/claim_dialog.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/common/final_claim_dialog.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/common/info.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/common/inv_dialog.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/common/jubgrid.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/common/li_table.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/common/li_table_pager.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/common/notes.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/financial/claim_eligible.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/financial/list_currency_types.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/financial/list_funding_sources.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/financial/list_funds.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/financial/view_fund.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/financial/view_funding_source.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/financial/view_provider.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/invoice/view.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/lineitem/findbib.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/lineitem/history.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/lineitem/related.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/lineitem/search.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/lineitem/worksheet.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/picklist/bib_search.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/picklist/brief_record.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/picklist/from_bib.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/picklist/list.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/picklist/upload.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/picklist/user_request.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/picklist/view.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/po/create.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/po/edi_messages.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/po/events.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/po/history.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/po/item_table.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/po/search.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/po/view.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/receiving/process.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/search/unified.tt2 [new file with mode: 0644]
Open-ILS/src/templates/acq/settings/li_attr.tt2 [new file with mode: 0644]
Open-ILS/src/templates/actor/user/register.tt2 [new file with mode: 0644]
Open-ILS/src/templates/actor/user/register_table.tt2 [new file with mode: 0644]
Open-ILS/src/templates/actor/user/trigger_events.tt2 [new file with mode: 0644]
Open-ILS/src/templates/base.tt2
Open-ILS/src/templates/booking/capture.tt2 [new file with mode: 0644]
Open-ILS/src/templates/booking/pickup.tt2 [new file with mode: 0644]
Open-ILS/src/templates/booking/pull_list.tt2 [new file with mode: 0644]
Open-ILS/src/templates/booking/reservation.tt2 [new file with mode: 0644]
Open-ILS/src/templates/booking/return.tt2 [new file with mode: 0644]
Open-ILS/src/templates/cat/authority/list.tt2 [new file with mode: 0644]
Open-ILS/src/templates/circ/selfcheck/audio_config.tt2 [new file with mode: 0644]
Open-ILS/src/templates/circ/selfcheck/banner.tt2 [new file with mode: 0644]
Open-ILS/src/templates/circ/selfcheck/circ_page.tt2 [new file with mode: 0644]
Open-ILS/src/templates/circ/selfcheck/fines.tt2 [new file with mode: 0644]
Open-ILS/src/templates/circ/selfcheck/holds_page.tt2 [new file with mode: 0644]
Open-ILS/src/templates/circ/selfcheck/main.tt2 [new file with mode: 0644]
Open-ILS/src/templates/circ/selfcheck/patron_login.tt2 [new file with mode: 0644]
Open-ILS/src/templates/circ/selfcheck/payment.tt2 [new file with mode: 0644]
Open-ILS/src/templates/circ/selfcheck/summary.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/cancel_reason.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/claim_event_type.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/claim_policy.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/claim_policy_action.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/claim_type.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/edi_account.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/exchange_rate.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/fund_tag.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/invoice_item_type.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/invoice_payment_method.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/lineitem_alert.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/lineitem_marc_attr_def.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/acq/provider.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/action/survey.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/action/survey/edit.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/asset/copy_location_order.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/asset/copy_template.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/biblio/monograph_part.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/booking/resource.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/booking/resource_attr.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/booking/resource_attr_map.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/booking/resource_attr_value.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/booking/resource_type.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/cat/authority/browse_axis.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/cat/authority/browse_axis_authority_field_map.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/cat/authority/control_set.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/cat/authority/control_set_bib_field.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/cat/authority/thesaurus.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/acn_prefix.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/acn_suffix.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/actor_sip_fields.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/asset_sip_fields.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/barcode_completion.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/billing_type.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/circ_matrix_weights.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/circ_modifier.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/coded_value_map.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/global_flag.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/hard_due_date.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/hard_due_date_values.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/hold_matrix_matchpoint.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/hold_matrix_weights.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/idl_field_doc.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/metabib_field.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/rule_age_hold_protect.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/rule_circ_duration.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/rule_max_fine.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/rule_recurring_fine.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/standing_penalty.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/weight_assoc.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/config/z3950_source.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/permission/grp_penalty_threshold.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/vandelay/match_set.tt2 [new file with mode: 0644]
Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2 [new file with mode: 0644]
Open-ILS/src/templates/default/acq/common/claim_dialog.tt2 [deleted file]
Open-ILS/src/templates/default/acq/common/final_claim_dialog.tt2 [deleted file]
Open-ILS/src/templates/default/acq/common/info.tt2 [deleted file]
Open-ILS/src/templates/default/acq/common/inv_dialog.tt2 [deleted file]
Open-ILS/src/templates/default/acq/common/jubgrid.tt2 [deleted file]
Open-ILS/src/templates/default/acq/common/li_table.tt2 [deleted file]
Open-ILS/src/templates/default/acq/common/li_table_pager.tt2 [deleted file]
Open-ILS/src/templates/default/acq/common/notes.tt2 [deleted file]
Open-ILS/src/templates/default/acq/financial/claim_eligible.tt2 [deleted file]
Open-ILS/src/templates/default/acq/financial/list_currency_types.tt2 [deleted file]
Open-ILS/src/templates/default/acq/financial/list_funding_sources.tt2 [deleted file]
Open-ILS/src/templates/default/acq/financial/list_funds.tt2 [deleted file]
Open-ILS/src/templates/default/acq/financial/view_fund.tt2 [deleted file]
Open-ILS/src/templates/default/acq/financial/view_funding_source.tt2 [deleted file]
Open-ILS/src/templates/default/acq/financial/view_provider.tt2 [deleted file]
Open-ILS/src/templates/default/acq/invoice/view.tt2 [deleted file]
Open-ILS/src/templates/default/acq/lineitem/findbib.tt2 [deleted file]
Open-ILS/src/templates/default/acq/lineitem/history.tt2 [deleted file]
Open-ILS/src/templates/default/acq/lineitem/related.tt2 [deleted file]
Open-ILS/src/templates/default/acq/lineitem/search.tt2 [deleted file]
Open-ILS/src/templates/default/acq/lineitem/worksheet.tt2 [deleted file]
Open-ILS/src/templates/default/acq/picklist/bib_search.tt2 [deleted file]
Open-ILS/src/templates/default/acq/picklist/brief_record.tt2 [deleted file]
Open-ILS/src/templates/default/acq/picklist/from_bib.tt2 [deleted file]
Open-ILS/src/templates/default/acq/picklist/list.tt2 [deleted file]
Open-ILS/src/templates/default/acq/picklist/upload.tt2 [deleted file]
Open-ILS/src/templates/default/acq/picklist/user_request.tt2 [deleted file]
Open-ILS/src/templates/default/acq/picklist/view.tt2 [deleted file]
Open-ILS/src/templates/default/acq/po/create.tt2 [deleted file]
Open-ILS/src/templates/default/acq/po/edi_messages.tt2 [deleted file]
Open-ILS/src/templates/default/acq/po/events.tt2 [deleted file]
Open-ILS/src/templates/default/acq/po/history.tt2 [deleted file]
Open-ILS/src/templates/default/acq/po/item_table.tt2 [deleted file]
Open-ILS/src/templates/default/acq/po/search.tt2 [deleted file]
Open-ILS/src/templates/default/acq/po/view.tt2 [deleted file]
Open-ILS/src/templates/default/acq/receiving/process.tt2 [deleted file]
Open-ILS/src/templates/default/acq/search/unified.tt2 [deleted file]
Open-ILS/src/templates/default/acq/settings/li_attr.tt2 [deleted file]
Open-ILS/src/templates/default/actor/user/register.tt2 [deleted file]
Open-ILS/src/templates/default/actor/user/register_table.tt2 [deleted file]
Open-ILS/src/templates/default/actor/user/trigger_events.tt2 [deleted file]
Open-ILS/src/templates/default/base.tt2 [deleted file]
Open-ILS/src/templates/default/booking/capture.tt2 [deleted file]
Open-ILS/src/templates/default/booking/pickup.tt2 [deleted file]
Open-ILS/src/templates/default/booking/pull_list.tt2 [deleted file]
Open-ILS/src/templates/default/booking/reservation.tt2 [deleted file]
Open-ILS/src/templates/default/booking/return.tt2 [deleted file]
Open-ILS/src/templates/default/cat/authority/list.tt2 [deleted file]
Open-ILS/src/templates/default/circ/selfcheck/audio_config.tt2 [deleted file]
Open-ILS/src/templates/default/circ/selfcheck/banner.tt2 [deleted file]
Open-ILS/src/templates/default/circ/selfcheck/circ_page.tt2 [deleted file]
Open-ILS/src/templates/default/circ/selfcheck/fines.tt2 [deleted file]
Open-ILS/src/templates/default/circ/selfcheck/holds_page.tt2 [deleted file]
Open-ILS/src/templates/default/circ/selfcheck/main.tt2 [deleted file]
Open-ILS/src/templates/default/circ/selfcheck/patron_login.tt2 [deleted file]
Open-ILS/src/templates/default/circ/selfcheck/payment.tt2 [deleted file]
Open-ILS/src/templates/default/circ/selfcheck/summary.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/cancel_reason.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/claim_event_type.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/claim_policy.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/claim_policy_action.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/claim_type.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/distribution_formula.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/edi_account.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/exchange_rate.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/fund_tag.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/invoice_item_type.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/invoice_payment_method.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/lineitem_alert.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/lineitem_marc_attr_def.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/acq/provider.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/action/survey.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/action/survey/edit.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/action_trigger/event_definition.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/action_trigger/event_definition_data.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/asset/copy_location_order.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/asset/copy_template.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/biblio/monograph_part.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/booking/resource.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/booking/resource_attr.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/booking/resource_attr_map.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/booking/resource_attr_value.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/booking/resource_type.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/cat/authority/browse_axis.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/cat/authority/browse_axis_authority_field_map.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/cat/authority/control_set.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/cat/authority/control_set_authority_field.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/cat/authority/control_set_bib_field.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/cat/authority/thesaurus.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/acn_prefix.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/acn_suffix.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/actor_sip_fields.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/asset_sip_fields.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/barcode_completion.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/billing_type.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/circ_matrix_matchpoint.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/circ_matrix_weights.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/circ_modifier.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/coded_value_map.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/global_flag.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/hard_due_date.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/hard_due_date_values.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/hold_matrix_matchpoint.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/hold_matrix_weights.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/idl_field_doc.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/metabib_field.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/org_unit_setting_type.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/record_attr_definition.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/rule_age_hold_protect.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/rule_circ_duration.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/rule_max_fine.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/rule_recurring_fine.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/standing_penalty.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/usr_setting_type.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/weight_assoc.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/config/z3950_source.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/permission/grp_penalty_threshold.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/vandelay/match_set.tt2 [deleted file]
Open-ILS/src/templates/default/conify/global/vandelay/match_set_tree.tt2 [deleted file]
Open-ILS/src/templates/default/footer.tt2 [deleted file]
Open-ILS/src/templates/default/header.tt2 [deleted file]
Open-ILS/src/templates/default/menu.tt2 [deleted file]
Open-ILS/src/templates/default/opac/advanced.tt2 [deleted file]
Open-ILS/src/templates/default/opac/cnbrowse.tt2 [deleted file]
Open-ILS/src/templates/default/opac/home.tt2 [deleted file]
Open-ILS/src/templates/default/opac/login.tt2 [deleted file]
Open-ILS/src/templates/default/opac/mylist.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/circ_history.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/circs.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/hold_history.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/holds.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/holds/edit.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/lists.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/main.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/main_pay.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/main_payment_form.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/main_payments.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/prefs.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/prefs_notify.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/prefs_settings.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/receipt_email.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/receipt_print.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/update_email.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/update_password.tt2 [deleted file]
Open-ILS/src/templates/default/opac/myopac/update_username.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/advanced/expert.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/advanced/global_row.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/advanced/numeric.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/advanced/search.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/anon_list.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/base.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/chilifresh.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/coded_value_selector.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/config.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/filtersort.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/footer.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/header.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/hold_error_messages.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/homesearch.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/js.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/login/form.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/login/help.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/login/password_hint.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/misc_util.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/myopac/base.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/myopac/main_base.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/myopac/main_refund_policy.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/myopac/prefs_base.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/myopac/prefs_hints.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/org_selector.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/place_hold.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/place_hold_result.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/printnav.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/qtype_selector.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/authors.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/awards.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/body.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/cnbrowse.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/extras.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/issues.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/refworks.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/series.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/subjects.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/summary.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/record/summaryplus.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/result/lowhits.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/result/lowhits_purchase.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/result/paginate.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/result/table.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/searchbar.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/tips.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/topnav.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/topnav_links.tt2 [deleted file]
Open-ILS/src/templates/default/opac/parts/topnav_logo.tt2 [deleted file]
Open-ILS/src/templates/default/opac/place_hold.tt2 [deleted file]
Open-ILS/src/templates/default/opac/record.tt2 [deleted file]
Open-ILS/src/templates/default/opac/results.tt2 [deleted file]
Open-ILS/src/templates/default/serial/list_item.tt2 [deleted file]
Open-ILS/src/templates/default/serial/list_stream.tt2 [deleted file]
Open-ILS/src/templates/default/serial/list_subscription.tt2 [deleted file]
Open-ILS/src/templates/default/serial/print_routing_list_users.tt2 [deleted file]
Open-ILS/src/templates/default/serial/subscription.tt2 [deleted file]
Open-ILS/src/templates/default/serial/subscription/caption_and_pattern.tt2 [deleted file]
Open-ILS/src/templates/default/serial/subscription/distribution.tt2 [deleted file]
Open-ILS/src/templates/default/serial/subscription/issuance.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/attrs.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/export.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/import_errors.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/item_attrs.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/marchtml.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/matches.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/profiles.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/progress.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/queue.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/queueselect.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/toolbar.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/inc/upload.tt2 [deleted file]
Open-ILS/src/templates/default/vandelay/vandelay.tt2 [deleted file]
Open-ILS/src/templates/footer.tt2 [new file with mode: 0644]
Open-ILS/src/templates/header.tt2 [new file with mode: 0644]
Open-ILS/src/templates/menu.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/advanced.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/cnbrowse.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/home.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/login.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/mylist.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/circ_history.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/circs.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/hold_history.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/holds.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/holds/edit.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/lists.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/main.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/main_pay.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/main_payment_form.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/main_payments.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/prefs.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/prefs_notify.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/prefs_settings.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/receipt_email.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/receipt_print.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/update_email.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/update_password.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/myopac/update_username.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/advanced/expert.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/advanced/global_row.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/advanced/numeric.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/advanced/search.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/anon_list.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/base.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/chilifresh.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/coded_value_selector.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/config.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/filtersort.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/footer.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/header.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/hold_error_messages.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/homesearch.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/js.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/login/form.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/login/help.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/login/password_hint.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/misc_util.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/myopac/base.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/myopac/main_base.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/myopac/main_refund_policy.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/myopac/prefs_base.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/myopac/prefs_hints.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/org_selector.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/place_hold.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/place_hold_result.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/printnav.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/qtype_selector.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/authors.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/awards.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/body.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/cnbrowse.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/extras.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/issues.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/refworks.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/series.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/subjects.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/summary.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/record/summaryplus.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/result/lowhits.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/result/lowhits_purchase.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/result/paginate.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/result/table.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/searchbar.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/tips.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/topnav.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/topnav_links.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/topnav_logo.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/place_hold.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/record.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/results.tt2 [new file with mode: 0644]
Open-ILS/src/templates/serial/list_item.tt2 [new file with mode: 0644]
Open-ILS/src/templates/serial/list_stream.tt2 [new file with mode: 0644]
Open-ILS/src/templates/serial/list_subscription.tt2 [new file with mode: 0644]
Open-ILS/src/templates/serial/print_routing_list_users.tt2 [new file with mode: 0644]
Open-ILS/src/templates/serial/subscription.tt2 [new file with mode: 0644]
Open-ILS/src/templates/serial/subscription/caption_and_pattern.tt2 [new file with mode: 0644]
Open-ILS/src/templates/serial/subscription/distribution.tt2 [new file with mode: 0644]
Open-ILS/src/templates/serial/subscription/issuance.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/attrs.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/export.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/import_errors.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/item_attrs.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/marchtml.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/matches.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/profiles.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/progress.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/queue.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/queueselect.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/toolbar.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/inc/upload.tt2 [new file with mode: 0644]
Open-ILS/src/templates/vandelay/vandelay.tt2 [new file with mode: 0644]

index 8226be7..156d871 100644 (file)
@@ -46,8 +46,6 @@ sub handler {
     return $stat unless $stat == Apache2::Const::OK;
     return Apache2::Const::DECLINED unless $template;
 
-    $template = $ctx->{skin} . "/$template";
-
     my $text_handler = set_text_handler($ctx, $r);
 
     my $tt = Template->new({
@@ -187,9 +185,8 @@ sub find_template {
     my $r = shift;
     my $base = shift;
     my $ctx = shift;
-    my $skin = $ctx->{skin};
     my $path = $r->uri;
-    $path =~ s/$base//og;
+    $path =~ s/$base\/?//og;
     my @parts = split('/', $path);
     my $template = '';
     my $page_args = [];
@@ -221,7 +218,7 @@ sub find_template {
         while(@parts) {
             last unless $localpath;
             for my $tpath (@{$ctx->{template_paths}}) {
-                my $fpath = "$tpath/$skin/$localpath.$ext";
+                my $fpath = "$tpath/$localpath.$ext";
                 $r->log->debug("egweb: looking at possible template $fpath");
                 if(-r $fpath) {
                     $template = "$localpath.$ext";
diff --git a/Open-ILS/src/templates/acq/common/claim_dialog.tt2 b/Open-ILS/src/templates/acq/common/claim_dialog.tt2
new file mode 100644 (file)
index 0000000..741a8a6
--- /dev/null
@@ -0,0 +1,60 @@
+<div style="width: 300px; height: 300px; overflow: auto;">
+    <script
+        src="[% ctx.media_prefix %]/js/ui/default/acq/common/claim_dialog.js">
+    </script>
+    <div><big>Claims</big></div>
+    <div>Against item:
+        <span id="acq-lit-li-claim-dia-li-title"></span>
+        (<span id="acq-lit-li-claim-dia-li-id"></span>)
+    </div>
+    <div id="acq-lit-li-claim-dia-show" class="hidden">
+        <ul id="acq-lit-li-claim-dia-lid-list">
+            <li name="lid">
+                <span name="barcode"></span> /
+                <span name="recvd"></span>
+                <ul name="claims">
+                    <li name="claim">
+                        <span name="type"></span>
+                        <a name="voucher"
+                            href="javascript:void(0);">Show Voucher</a>
+                    </li>
+                </ul>
+            </li>
+        </ul>
+        <hr />
+    </div>
+    <div id="acq-lit-li-claim-dia-initiate" class="hidden">
+        <div><big>Initiate New Claims</big></div>
+        <div id="acq-lit-li-claim-dia-lid-list-init">
+            <div name="lid_to_claim">
+                <input type="checkbox" name="claimable_lid" />
+                <label name="claimable_lid_label">
+                    <span name="barcode"></span> /
+                    <span name="recvd"></span>
+                </label>
+            </div>
+        </div>
+        <hr />
+        <div id="acqclet-display" class="hidden">
+            <div><big>Select Claim Action</big></div>
+            <table>
+                <tbody id="acqclet-tbody">
+                    <tr name="acqclet-template">
+                        <td>
+                            <input type="checkbox" name="acqclet-checkbox" />
+                        </td>
+                        <td style="padding-left: 1em;">
+                            <label name="acqclet-label">
+                                (${ou}) ${code} <em>${description}</em>
+                                <span style="color: #069;">
+                                    ${library_initiated}</span>
+                            </label>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+            <hr />
+        </div>
+        <button id="acq-lit-li-claim-dia-claim">Claim selected</button>
+    </div>
+</div>
diff --git a/Open-ILS/src/templates/acq/common/final_claim_dialog.tt2 b/Open-ILS/src/templates/acq/common/final_claim_dialog.tt2
new file mode 100644 (file)
index 0000000..882741c
--- /dev/null
@@ -0,0 +1,8 @@
+<div id="acq-eligible-claim-controls">
+    <label for="acq-eligible-claim-type">Claim type:</label>
+    <span id="acq-eligible-claim-type"></span>
+    <label for="acq-eligible-claim-note">Note:</label>
+    <input dojoType="dijit.form.TextBox" id="acq-eligible-claim-note" />
+    <button id="acq-eligible-claim-submit">Claim</button>
+</div>
+
diff --git a/Open-ILS/src/templates/acq/common/info.tt2 b/Open-ILS/src/templates/acq/common/info.tt2
new file mode 100644 (file)
index 0000000..6fc5456
--- /dev/null
@@ -0,0 +1,24 @@
+[% which_lc = which | lower %]
+    <div id="acq-[% which_lc %]-info-div" class="hidden">
+        <div class="acq-menu-bar">
+            <div dojoType="dijit.form.Button" id="acq-[% which_lc %]-info-back-button">&#x2196; [% IF which == "Lit" %]Return[% ELSE %]Hide[% END %]</div>
+        </div>
+        <table>
+            <tbody id="acq-[% which_lc %]-info-tbody">
+                <tr id="acq-[% which_lc %]-info-row"><td name="label"/><td name="value"/></tr>
+            </tbody>
+        </table>
+[% IF which == "Lit" %]
+        <div class="hidden" id="acq-[% which_lc %]-info-related">
+            Show the <a name="rel_link" href="#"><span name="related_number"></span> lineitem(s)</a> related to the same bibliographic record.
+        </div>
+        <div style="margin-top:40px;">
+            <h3 id="acq-[% which_lc %]-marc-order-record-label">MARC Order Record</h3>
+            <h3 id="acq-[% which_lc %]-marc-real-record-label">MARC ILS Record</h3>
+            <div>
+                <div dojoType="dijit.form.Button" jsId="acq[% which %]EditOrderMarc" class="hidden">Edit MARC Order Record</div>
+            </div>
+            <div id="acq-[% which_lc %]-marc-div" style="margin-top:20px;"> </div>
+        </div>
+[% END %]
+    </div>
diff --git a/Open-ILS/src/templates/acq/common/inv_dialog.tt2 b/Open-ILS/src/templates/acq/common/inv_dialog.tt2
new file mode 100644 (file)
index 0000000..3bec75c
--- /dev/null
@@ -0,0 +1,30 @@
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/inv_dialog.js">
+</script>
+<big><strong>Choose invoice</strong></big>
+<table class="acq-link-invoice-dialog">
+    <tr>
+        <th>
+            <label for="acq-[% which %]-link-invoice-inv_ident">
+                Invoice #
+            </label>
+        </th>
+        <td>
+            <input id="acq-[% which %]-link-invoice-inv_ident"
+                dojoType="dijit.form.TextBox" />
+        </td>
+    </tr>
+    <tr>
+        <th>
+            <label for="acq-[% which %]-link-invoice-provider">Provider</label>
+        </th>
+        <td>
+            <span id="acq-[% which %]-link-invoice-provider"></span>
+        </td>
+    </tr>
+    <tr>
+        <td colspan="2" style="text-align: center;">
+            <button id="acq-[% which %]-link-invoice-link"
+                dojoType="dijit.form.Button" type="submit">Link</button>
+        </td>
+    </tr>
+</table>
diff --git a/Open-ILS/src/templates/acq/common/jubgrid.tt2 b/Open-ILS/src/templates/acq/common/jubgrid.tt2
new file mode 100644 (file)
index 0000000..ce13d56
--- /dev/null
@@ -0,0 +1,209 @@
+[%#-
+This template creates a split screen Dojo layout. The top frame
+of the screen holds a list of of JUBs, or titles. Clicking on a
+title in the top frame will load the purchase details for all the
+copies on order for that title into the bottom frame.
+
+To create a display for a set of JUBs, create a Dojo store and
+model for the set of JUBs, then place the following lines in your
+HTML where you want the display to appear:
+
+    <%namespace file='/oils/default/common/jubgrid.html' name='jubgrid'/>
+    ${jubgrid.jubgrid('dom_prefix', 'grid_jsid')}
+
+where 'dom_prefix' is a string that will be used as the prefix
+for the DOM notes that are created by this template, and
+'grid_jsid' is a valid JavaScript identifier that will name the
+DOM node to which the list of JUBs will be attached.  For example
+
+    ${jubgrid.jubgrid('oils-acq-picklist', 'pickListGrid', hideDetails)}
+
+will create a Dojo grid with the DOM id of
+
+    'oils-acq-picklist-JUB-grid'
+
+and a jsid of
+
+    pickListGrid
+
+To fill the grid with data, call the javascript function
+
+    JUBGrid.populate(grid_jsid, model)
+
+'grid_jsid' is the same javascript id that was used to
+instantiate the template, and model is a javascript variable
+pointing to the JUB model (and store) that you have created.
+-#%]
+
+[% UNLESS hide_details %]
+<div dojoType='dijit.layout.ContentPane' style='height:100%;'>
+[% END %]
+
+    <style type='text/css'>
+        .grid_container {width: 100%; height: 100%;}
+    </style>
+
+    <script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/common/jubgrid.js'> </script>
+    <script type="text/javascript" src='[% ctx.media_prefix %]/js/dojo/openils/CopyLocation.js'> </script>
+    <script type="text/javascript">
+    JUBGrid.getPO = function(rowIndex) {
+        var data = JUBGrid.jubGrid.model.getRow(rowIndex);
+        if (!(data && data.purchase_order)) return '';
+        return "<a href='[% ctx.base_path %]/acq/po/view/" + data.purchase_order+"'>"+data.purchase_order+"</a>";
+    }
+    JUBGrid.jubGridLayout = [{
+        //noscroll: true,
+        cells: [[
+            {name: 'ID', field: 'id', width:'auto'},
+            {name: 'Title', width: "180px", get:JUBGrid.getJUBTitle},
+            {name: 'Author', get:JUBGrid.getJUBAuthor, width:'auto'},
+            {name: 'ISBN', get:JUBGrid.getJUBIsbn, width:'auto'},
+            {name: 'Pubdate', get:JUBGrid.getJUBPubdate, width:'auto'},
+            {name: 'Actual Price', 
+                field:'actual_price',
+                get:JUBGrid.getJUBActualPrice,
+                editor:dojox.grid.editors.Dijit, width:'auto', 
+                editorClass: "dijit.form.CurrencyTextBox" 
+            },
+            {name: 'Estimated Price', 
+                field:'estimated_price',
+                get:JUBGrid.getJUBEstimatedPrice, width:'auto',
+                editor:dojox.grid.editors.Dijit, 
+                editorClass: "dijit.form.CurrencyTextBox" 
+            },
+            {name: 'Vendor', width:'auto',
+            field: 'provider', get:JUBGrid.getProvider,
+            editor:openils.editors.ProviderSelectEditor,
+           },
+            {name: 'No. Copies', field: 'item_count', width:'auto'},
+            {name: 'State', field: 'state', width:'auto'},
+            {name: 'PO', get:JUBGrid.getPO, width:'auto'}
+        ]]
+    }];
+
+    JUBGrid.jubDetailGridLayout = [{
+        cells: [[
+            {name:"ID", field:"id"},
+            {name:"Fund", field:"fund",
+                get:JUBGrid.getLIDFundCode,
+                editor: openils.editors.FundSelectEditor,
+            },
+            {name:"Branch", field:"owning_lib",
+                   get:JUBGrid.getLIDLibName,
+                   editor: openils.editors.OrgUnitSelectEditor
+               },
+            {name:"Barcode", field:"barcode", width:'auto',
+                editor:dojox.grid.editors.Dijit, 
+                editorClass: "dijit.form.TextBox" 
+               },
+            {name:"Call Number", field:"cn_label", width:'auto',
+                editor:dojox.grid.editors.Dijit, 
+                editorClass: "dijit.form.TextBox" 
+               },
+            {name:"Shelving Location", field:"location", width:'auto',
+                editor:openils.editors.CopyLocationSelectEditor,
+                get:JUBGrid.getCopyLocation
+               },
+            {name:"Receive Time", width:'auto',
+                get:JUBGrid.getRecvTime
+               },
+        ]]
+    }];
+
+    JUBGrid.jubDetailGridLayoutReadOnly = [{
+        cells: [[
+            {name:'ID', field:"id"},
+            {name:'Fund', field:"fund",
+             get:JUBGrid.getLIDFundCode,
+            },
+            {name:'Branch', field:"owning_lib",
+                   get:JUBGrid.getLIDLibName,
+               },
+           {name:'Barcode', field:"barcode", width:'auto'},
+            {name:'Call Number', field:"cn_label", width:'auto'},
+           {name:'Shelving Location', field:"location", 
+                width:'auto', get:JUBGrid.getCopyLocation},
+        ]]
+    }];
+    </script>
+
+[% UNLESS hide_details %]
+    <!-- button bar for lineitems -->
+    <script type="text/javascript">JUBGrid.showDetails = true;</script>
+    <div id="[% domprefix %]-container" class='container'
+        dojoType="dijit.layout.ContentPane" sizeMin="" sizeShare="">
+        <div dojoType="dijit.layout.ContentPane"
+             id='[% domprefix %]-jub-buttonbar'>
+            <button dojoType="dijit.form.Button" onclick="JUBGrid.approveJUB">
+                Approve Selected Titles
+            </button>
+            <button dojoType="dijit.form.Button" onclick="JUBGrid.removeSelectedJUBs">
+                Remove Selected Titles
+            </button>
+        </div>
+    </div>
+    <div style='height:40%;'>
+[% ELSE %]
+    <div style='height:100%;'>
+[% END %]
+        <div structure='JUBGrid.jubGridLayout' jsid='[% grid_jsid %]' class='grid_container'
+            dojoType='dojox.Grid' id="[% domprefix %]-JUB-grid">
+        </div>
+    </div>
+[% UNLESS hide_details %]
+    <!-- button bar for lineitem details -->
+    <div dojoType="dijit.layout.ContentPane" sizeMin="" sizeShare="" class='container'>
+        <div dojoType="dijit.layout.ContentPane" id='[% domprefix %]-details-buttonbar'>
+            <div dojoType="dijit.form.DropDownButton">
+                <span>New Copy</span>
+                <div dojoType="dijit.TooltipDialog" execute="JUBGrid.createLID(arguments[0]);">
+                    <script type='dojo/connect' event='onOpen'>
+                        new openils.User().buildPermOrgSelector('MANAGE_FUND', copyOwnerSelect);
+                        openils.acq.Fund.buildPermFundSelector('MANAGE_FUND', acqlidFund);
+                    </script>
+                    <table class="dijitTooltipTable">
+                        <tr>
+                            <td><label for="fund">Fund: </label></td>
+                            <td>
+                                <input dojoType="openils.widget.FundSelector"
+                                jsId="acqlidFund" searchAttr="name" autocomplete="true" name="fund"></input>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td><label for="owning_lib">Location: </label></td>
+                            <td><input dojoType="openils.widget.OrgUnitFilteringSelect"
+                                jsId="copyOwnerSelect"
+                                searchAttr="shortname"
+                                name="owning_lib" autocomplete="true"
+                                labelAttr="shortname"></input>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td colspan="2" align="center">
+                                <button dojotype="dijit.form.Button" type="submit">
+                                Create
+                                </button>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+            <button dojoType='dijit.form.Button' onclick='JUBGrid.deleteLID'>
+                Delete Selected Copy
+            </button>
+            <button dojoType='dijit.form.Button' onclick='JUBGrid.receiveLID'>
+                Mark Selected Copies Received
+            </button>
+        </div>
+    </div>
+    <!-- end button bar -->
+
+    <div style='height:40%;'>
+           <div class='grid_container'>
+            <div structure='JUBGrid.jubDetailGridLayout' jsid="JUBGrid.jubDetailGrid" dojoType="dojox.Grid"
+                id='[% domprefix %]-details-grid'>
+            </div>
+        </div>
+    </div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/common/li_table.tt2 b/Open-ILS/src/templates/acq/common/li_table.tt2
new file mode 100644 (file)
index 0000000..268e987
--- /dev/null
@@ -0,0 +1,473 @@
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/base64.js"> </script>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/common/li_table.js'> </script>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/claim_voucher.js'> </script>
+<div id='acq-lit-table-container'>
+    <div id='acq-lit-table-div' class='hidden'>
+
+        <!-- Lineitem (bib record) list -->
+        <table id='acq-lit-table' class='oils-generic-table'>
+            <thead>
+                <tr>
+                    <th colspan='0'>
+                        <table style='width:100%;'>
+                            <tr>
+                                <td>
+                                    <span>
+                                        <select id="acq-lit-li-actions-selector">
+                                            <option mask='*'  value='_'>--Actions--</option>
+                                            <option mask='sr' value='save_picklist'>Save Items To Selection List</option>
+                                            <option mask='pl' value='selector_ready'>Mark Ready for Selector</option>
+                                            <option mask='pl' value='order_ready'>Mark Ready for Order</option>
+                                            <option mask='*'  value='delete_selected'>Delete Selected Items</option>
+                                            <option mask='*'  value='add_brief_record'>Add Brief Record</option>
+                                            <option mask='*'  value='export_attr_list'>Export Single Attribute List</option>
+                                            <option mask='*'  value='batch_apply_funds'>Apply Funds to Selected Items</option>
+                                            <option mask='po' value='' disabled='disabled'>----PO----</option>
+                                            <option mask='sr|pl' value='create_order'>Create Purchase Order</option>
+                                            <option mask='po' value='create_assets'>Load Bibs and Items</option>
+                                            <option mask='po' value='cancel_lineitems'>Cancel Selected Lineitems</option>
+                                            <option mask='po' value='change_claim_policy'>Change Claim Policy</option>
+                                            <option mask='po' value='receive_po'>Mark Purchase Order as Received</option>
+                                            <option mask='po' value='rollback_receive_po'>Un-Receive Purchase Order</option>
+                                            <option mask='po' value='print_po'>Print Purchase Order</option>
+                                            <option mask='po' value='po_history'>View PO History</option>
+                                        </select>
+                                        <span id="acq-lit-export-attr-holder" class="hidden">
+                                            <input dojoType="dijit.form.FilteringSelect" id="acq-lit-export-attr" jsId="acqLitExportAttrSelector" labelAttr="description" searchAttr="description" />
+                                            <span dojoType="dijit.form.Button" jsId="acqLitExportAttrButton">Export List</span>
+                                        </span>
+                                        <span id="acq-lit-cancel-reason" class="hidden">
+                                            <span id="acq-lit-cancel-reason-selector"></span>
+                                            <span dojoType="dijit.form.Button" jsId="acqLitCancelLineitemsButton">Cancel Line Items</span>
+                                        </span>
+                                    </span>
+                                    <span id='acq-lit-generic-progress' class='hidden'>
+                                        <span dojoType="dijit.ProgressBar" style="width:300px" jsId="litGenericProgress"></span>
+                                    </span>
+                                </td>
+                                <td>
+                                    <div style='width:100%;text-align:right;'>
+                                        <span style='padding-right:15px;'>
+                                            <a href='javascript:void(0);' id='acq-lit-prev' style='visibility:hidden'>&#171; Previous</a>
+                                            <a href='javascript:void(0);' id='acq-lit-next' style='visibility:hidden'>Next &#187;</a>
+                                        </span>
+                                    </div>
+                                </td>
+                            </tr>
+                        </table>
+                    </th>
+                </tr>
+            </thead>
+            <tbody><tr><td colspan='0' style='height:20px;'/></tr></tbody>
+            <tbody style='font-weight:bold;border:1px solid #aaa;'>
+                <tr>
+                    <td><span><a id='acq-lit-select-toggle' href='javascript:void(0);'>&#x2713</a></span></td>
+                    <td>Line Items</td>
+                    <td>Items</td>
+                    <td>Notes</td>
+                    <td>Actions</td>
+                    <td>Status</td>
+                    <td>Estimated Price</td>
+                </tr>
+            </tbody>
+            <tbody id='acq-lit-tbody'>
+                <tr id='acq-lit-row' class='acq-lit-row'>
+                    <td name='selector'><input type='checkbox' name='selectbox'/></td>
+                    <td style='width:75%;'>
+                        <table style='width:100%;'>
+                            <tbody>
+                                <tr>
+                                    <td rowspan='3' style='width:43px;'><img style='width:40px;height:65px;' name='jacket'></td>
+                                    <td style='width:70%;font-weight:bold;'>
+                                        <span name="bib_origin" class="hidden">
+                                            <img src="/opac/images/book-icon.png" />
+                                        </span><a attr='title' href='javascript:void(0);'></a>
+                                    </td>
+                                    <td rowspan='2' style='text-align:right'>
+                                    </td>
+                                </tr>
+                                <tr class='acq-lit-alt-row'>
+                                    <td colspan='0'>
+                                        <span attr='author'></span>
+                                        <span attr='isbn'></span>
+                                        <span attr='issn'></span>
+                                        <span attr='edition'></span>
+                                        <span attr='pubdate'></span>
+                                        <span attr='publisher'></span>
+                                        <span name='source_label'></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td colspan='0'>
+                                        <span name="liid"># </span> 
+                                        <span name="catalog" class='hidden'> | <a title='Show In Catalog' name="catalog_link" href="javascript:void(0);">&#x279F; catalog</a></span> 
+                                        <span name="link_to_catalog" class='hidden'> | <a title='Link To Catalog Record' name="link_to_catalog_link" href="javascript:void(0);">&#x27BE; link to catalog</a></span> 
+                                        <span name="worksheet"> | <a title='Generate Worksheet' name="worksheet_link" href="javascript:void(0);">&#x270D; worksheet</a></span>
+                                        <span name='pl' class='hidden'> | <a title='Select List' name='pl_link' href='javascript:void(0);'>&#x2756; </a></span>
+                                        <span name='po' class='hidden'> | <a title='Purchase Order' name='po_link' href='javascript:void(0);'>&#x2318; </a></span>
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </td>
+                    <td><a title='FOOOBAR' name='copieslink' href='javascript:void(0);'>Copies(<span name='count'>0</span>)</a></td>
+                    <td>
+                        <a name='noteslink' href='javascript:void(0);'>Notes(<span name='notes_count'>0</span>)</a><span name="notes_alert_flag"></span>
+                    </td>
+                    <td>
+                        <select name='actions'>
+                            <option name='action_none'>-- Actions --</option>
+                            <option name='action_mark_recv' disabled='disabled'>Mark Received</option>
+                            <option name='action_mark_unrecv' disabled='disabled'>Un-Receive</option>
+                            <option name='action_update_barcodes' disabled='disabled'>Update Barcodes</option>
+                            <option name='action_holdings_maint' disabled='disabled'>Holdings Maint.</option>
+                            <option name='action_new_invoice' disabled='disabled'>New Invoice</option>
+                            <option name='action_link_invoice' disabled='disabled'>Link to Invoice</option>
+                            <option name='action_view_invoice' disabled='disabled'>View Invoice(s)</option>
+                            <option name='action_view_claim_policy'>Apply Claim Policy</option>
+                            <option name='action_manage_claims' disabled='disabled'>Claims</option>
+                            <option name='action_view_history'>View History</option>
+                        </select>
+                    </td>
+                    <td><span name='li_state'></span></td>
+                    <td><input type='text' size='8' name='price'/></td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+
+    <!-- Bib record / Lineitem info table -->
+    [% INCLUDE "acq/common/info.tt2" which = "Lit" %]
+
+    <!-- Lineitem notes table -->
+    [% INCLUDE "acq/common/notes.tt2" which = "Lit" %]
+
+    <!-- Copies table -->
+    <div id='acq-lit-li-details' class='hidden'>
+
+        <div id='acq-lit-copies-li-summary'></div>
+
+        <h3>Add/Edit Items</h3>
+        <hr/>
+
+        <div class='acq-lit-li-menu-bar'>
+            <table style='width:100%'>
+                <tr>
+                    <td class="acq-lit-li-menu-left">
+                        <div dojoType='dijit.form.Button' id='acq-lit-copies-back-button' scrollOnFocus='false'>&#x2196; Return</div>
+                        <span style='margin-left:10px;padding-left:10px;border-left:2px solid #aaa;'>
+                            Item Count: 
+                            <input dojoType='dijit.form.NumberTextBox' jsId='acqLitCopyCountInput'  
+                                constraints="{min:0,max:1000,places:0}" style='width:40px' value='0'></input> 
+                            <div dojoType='dijit.form.Button' jsId='acqLitAddCopyCount' scrollOnFocus='false'>Go</div>
+                        </span>
+                        <span style='margin-left:10px;padding-left:10px;border-left:2px solid #aaa;'>
+                            <div dojoType='dijit.form.Button' jsId='acqLitSaveCopies' scrollOnFocus='false'>Save Changes</div>
+                        </span>
+                        <span id='acq-lit-update-copies-progress' class='hidden'>
+                            <span dojoType="dijit.ProgressBar" style="width:300px" jsId="litUpdateCopiesProgress"></span>
+                        </span>
+                    </td>
+                </tr>
+            </table>
+        </div>
+
+        <hr/>
+        <table id='acq-lit-distrib-formula-table'>
+            <tbody id='acq-lit-distrib-formula-tbody'>
+                <tr id='acq-lit-distrib-form-row'>
+                    <td colspan='0'>
+                        <span>Distribution Formulas</span>
+                        <div name='selector'></div>
+                        <div name='set_button'></div>
+                        <div name="reset_button"></div>
+                    </td>
+                </tr>
+            </tbody>
+            <tbody id="acq-lit-distrib-applied-tbody" class="hidden">
+                <tr>
+                    <td colspan="5" id="acq-lit-distrib-applied-heading">
+                        Distribution formulas applied to this lineitem:
+                    </td>
+                </tr>
+                <tr id="acq-lit-distrib-applied-row" class="acq-lit-distrib-applied-row">
+                    <th></th>
+                    <td colspan="4"></td>
+                </tr>
+            </tbody>
+        <table>
+
+        <table id='acq-lit-li-details-table'>
+            <tbody><tr><td class='acq-lit-table-spacer' colspan='0'/></tr></tbody>
+            <tbody style='font-weight:bold;'>
+                <tr>
+                    <td style='margin-top:30px;'>Owning Branch</td>
+                    <td>Shelving Location</td>
+                    <td>Collection Code</td>
+                    <td>Fund</td>
+                    <td>Circ Modifier</td>
+                    <td>Callnumber</td>
+                    <td colspan='0'></td>
+                </tr>
+            </tbody>
+            <tbody style='background-color:#ddd;'>
+                <tr id='acq-lit-li-details-batch-row'>
+                    <td><div name='owning_lib'></div></td>
+                    <td><div name='location'></div></td>
+                    <td><div name='collection_code'></div></td>
+                    <td><div name='fund'></div></td>
+                    <td><div name='circ_modifier'></div></td>
+                    <td><div name='cn_label'></div></td>
+                    <td colspan='3' style='text-align:left;'>
+                        <div dojoType='dijit.form.Button' jsId='acqLitBatchUpdateCopies' scrollOnFocus='false'>Batch Update</div>
+                    </td>
+                </tr>
+            </tbody>
+
+
+            <tbody><tr><td class='acq-lit-table-spacer' colspan='0'></td></tr></tbody>
+            <tbody style='font-weight:bold;'>
+                <tr>
+                    <td style='margin-top:30px;'>Owning Branch</td>
+                    <td>Shelving Location</td>
+                    <td>Collection Code</td>
+                    <td>Fund</td>
+                    <td>Circ Modifier</td>
+                    <td>Callnumber</td>
+                    <td>Barcode</td>
+                    <td>Notes</td>
+                    <td>Receiver</td>
+                    <td colspan='0'></td>
+                </tr>
+            </tbody>
+            <tbody id='acq-lit-li-details-tbody' class='oils-generic-table'>
+                <tr id='acq-lit-li-details-row'>
+                    <td><div name='owning_lib'></div></td>
+                    <td><div name='location'></div></td>
+                    <td><div name='collection_code'></div></td>
+                    <td><div name='fund'></div></td>
+                    <td><div name='circ_modifier'></div></td>
+                    <td><div name='cn_label'></div></td>
+                    <td><div name='barcode'></div></td>
+                    <td><div name='note'></div></td>
+                    <td><div name='receiver'></div></td>
+                    <td><a href="javascript:void(0);" name="receive">Mark&nbsp;Received</a><a href="javascript:void(0);" name="unreceive">Un-Receive</a>&nbsp;<a href="javascript:void(0);" name="cancel">Cancel</a><span class="hidden" name="cancel_reason"></span>&nbsp;<a href="javascript:void(0);" name="claim">Claim</a></td>
+                    <td><div name='delete' dojoType='dijit.form.Button' style='color:red;' scrollOnFocus='false'>X</div></td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+
+
+    <!-- Copies table -->
+    <div id='acq-lit-real-copies-div' class='hidden'>
+        <h2>Copies</h2>
+
+        <div class='acq-lit-li-menu-bar'>
+            <table style='width:100%'>
+                <tr>
+                    <td style='text-align:left;'>
+                        <div dojoType='dijit.form.Button' id='acq-lit-real-copies-back-button' scrollOnFocus='false'>&#x2196; Return</div>
+                    </td>
+                    <td style='text-align:right;'>
+                        <span>
+                            <div dojoType='dijit.form.Button' jsId='acqLitSaveRealCopies' scrollOnFocus='false'>Save Changes</div>
+                        </span>
+                    </td>
+                </tr>
+            </table>
+        </div>
+
+        <table id='acq-lit-real-copies-table'>
+            <tbody style='font-weight:bold;'>
+                <tr>
+                    <td style='margin-top:30px;'>Owning Branch</td>
+                    <td>Shelving Location</td>
+                    <td>Circ Modifier</td>
+                    <td>Callnumber</td>
+                    <td>Barcode</td>
+                    <td colspan='0'></td>
+                </tr>
+            </tbody>
+            <tbody id='acq-lit-real-copies-tbody' class='oils-generic-table'>
+                <tr id='acq-lit-real-copies-row'>
+                    <td><div name='owning_lib'></div></td>
+                    <td><div name='location'></div></td>
+                    <td><div name='circ_modifier'></div></td>
+                    <td><div name='label'></div></td>
+                    <td><div name='barcode'></div></td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+
+    <div class="hidden">
+        <div jsId="acqLitLinkInvoiceDialog" dojoType="dijit.Dialog">
+            [% INCLUDE "acq/common/inv_dialog.tt2" which = "li" %]
+        </div>
+    </div>
+
+    <div class='hidden' id='acq-lit-progress-numbers'>
+        <table class='oils-generic-table'>
+            <tbody>
+                <tr>
+                    <td>Lineitems Processed</td>
+                    <td><span id='acq-pl-lit-li-processed'>0</span></td>
+                </tr>
+                <tr>
+                    <td>Items Processed</td>
+                    <td><span id='acq-pl-lit-lid-processed'>0</span></td>
+                </tr>
+                <tr>
+                    <td>Debits Encumbered</td>
+                    <td><span id='acq-pl-lit-debits-processed'>0</span></td>
+                </tr>
+                <tr>
+                    <td>Bib Records Imported</td>
+                    <td><span id='acq-pl-lit-bibs-processed'>0</span></td>
+                </tr>
+                <tr>
+                    <td>Bib Records Indexed</td>
+                    <td><span id='acq-pl-lit-indexed-processed'>0</span></td>
+                </tr>
+                <tr>
+                    <td>Copies Processed</td>
+                    <td><span id='acq-pl-lit-copies-processed'>0</span></td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+
+    <div class='hidden'>
+        <div dojoType='dijit.Dialog' jsId='acqLitPoCreateDialog'>
+            <table class='oils-generic-table'>
+                <tr>
+                    <td>Ordering Agency</td>
+                    <td><div name='ordering_agency' id='acq-lit-po-agency'></div></td>
+                </tr>
+                <tr>
+                    <td>Provider</td>
+                    <td><div name='provider' id='acq-lit-po-provider'></div></td>
+                </tr>
+                <tr>
+                    <td>Prepayment Required</td>
+                    <td><input id="acq-lit-po-prepay" name="prepayment_required" dojoType="dijit.form.CheckBox"/></td>
+                </tr>
+                <tr>
+                    <td>All Lineitems</td>
+                    <td><input checked='checked' name='create_from' value='all' dojoType='dijit.form.RadioButton'/></td>
+                </tr>
+                <tr>
+                    <td>Selected Lineitems</td>
+                    <td><input name='create_from' value='selected' dojoType='dijit.form.RadioButton'/></td>
+                </tr>
+                <tr>
+                    <td>Import Bibs and Create Copies</td>
+                    <td><input name='create_assets' dojoType='dijit.form.CheckBox'/></td>
+                </tr>
+                <tr>
+                    <td colspan='2'>
+                        <div dojoType='dijit.form.Button' type='submit' jsId='acqLitCreatePoSubmit'>Submit</div>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+
+    <div class="hidden">
+        <div dojoType="dijit.Dialog" jsId='acqLitSavePlDialog'>
+            <table class='dijitTooltipTable'>
+                <tr>
+                    <td colspan='2'>
+                        <input dojoType="dijit.form.RadioButton" name="which" type='radio' checked='checked' value='selected'/>
+                        <label for="name">Save selected</label>
+                        <input dojoType="dijit.form.RadioButton" name="which" type='radio' value='all'/>
+                        <label for="name">Save all</label>
+                    </td>
+                </tr>
+                <tr><td colspan='2'><hr/></td></tr>
+                <tr>
+                    <td><label for="new_name">Save as Selection List: </label></td>
+                    <td><input dojoType="dijit.form.TextBox" name="new_name"/></td>
+                </tr>
+                <tr>
+                    <td><label for="existing_pl">Add to Selection List: </label></td>
+                    <td>
+                        <input jsId="acqLitAddExistingSelect" dojoType="openils.widget.PCrudAutocompleteBox" fmclass="acqpl" searchAttr="name" name="existing_pl" />
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan='2' align='center'>
+                        <button dojoType='dijit.form.Button' type="submit" jsId='acqLitSavePlButton'>Save</button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+
+        <div dojoType="dijit.Dialog" jsId="lidCancelDialog">
+            <label for="acq-lit-lid-cancel-reason">Reason:</label>
+            <span id="acq-lit-lid-cancel-reason"></span>
+            <span dojoType="dijit.form.Button"
+                jsId="acqLidCancelButton">Cancel Copy</span>
+        </div>
+        <div dojoType="dijit.Dialog" jsId="liClaimPolicyDialog">
+            <label for="acq-lit-li-claim-policy">Claim policy:</label>
+            <span id="acq-lit-li-claim-policy"></span> &nbsp;
+            <span dojoType="dijit.form.Button"
+                jsId="liClaimPolicySave">Save</span>
+        </div>
+        <div dojoType="dijit.Dialog" jsId="liClaimDialog">
+            [% INCLUDE "acq/common/claim_dialog.tt2" %]
+        </div>
+        <div dojoType="dijit.Dialog" jsId="finalClaimDialog">
+            [% INCLUDE "acq/common/final_claim_dialog.tt2" %]
+        </div>
+        <div dojoType="dijit.Dialog" jsId="batchFundUpdateDialog" title="Batch Update Funds">
+            <div>
+                This will update the fund for all copies attached to these lineitems.<br/>
+                This will also update any existing encumbered or spent debits.
+            </div>
+            <br/>
+            <table class='oils-generic-table'>
+                <tr>
+                    <td>
+                        <span>Select a new fund:</span>
+                    </td>
+                    <td>
+                        <div id='acq-lit-batch-fund-selector'></div>
+                    </td>
+                </tr>
+                <tr>
+                    <td><button dojoType='dijit.form.Button' jsId='batchFundUpdateCancel'>Cancel</button></td>
+                    <td><button dojoType='dijit.form.Button' jsId='batchFundUpdateSubmit'>Submit</button></td>
+                </tr>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.Dialog" jsId='acqLitChangeLiStateDialog'>
+        <table class='dijitTooltipTable'>
+            <tr>
+                <td>
+                    <input dojoType="dijit.form.RadioButton" name="which" type='radio' checked='checked' value='selected'/>
+                    <label for="name">Mark selected</label>
+                    <input dojoType="dijit.form.RadioButton" name="which" type='radio' value='all'/>
+                    <label for="name">Mark all</label>
+                </td>
+            </tr>
+            <tr>
+                <td colspan='2' align='center'>
+                    <button dojoType='dijit.form.Button' type="submit" jsId='acqLitCancelLiStateButton'>Cancel</button>
+                    <button dojoType='dijit.form.Button' type="submit" jsId='acqLitSaveLiStateButton'>Go</button>
+                </td>
+            </tr>
+        </table>
+    </div>
+
+
+    <div class='hidden'>
+        <div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'></div>
+    </div>
+
+</div>
+
diff --git a/Open-ILS/src/templates/acq/common/li_table_pager.tt2 b/Open-ILS/src/templates/acq/common/li_table_pager.tt2
new file mode 100644 (file)
index 0000000..bdae5b2
--- /dev/null
@@ -0,0 +1,17 @@
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/li_table_pager.js">
+</script>
+<div id="acq-litpager-controls">
+    <button id="acq-litpager-controls-prev" disabled="disabled">
+        &laquo; Prev
+    </button>
+    <span id="acq-litpager-controls-batch-range" class="hidden">
+        <span id="acq-litpager-controls-batch-start"></span> &mdash;
+        <span id="acq-litpager-controls-batch-end"></span>
+        <span id="acq-litpager-controls-total-holder" class="hidden">
+            of <span id="acq-litpager-controls-total"></span>
+        </span>
+    </span>
+    <button id="acq-litpager-controls-next" disabled="disabled">
+        Next &raquo;
+    </button>
+</div>
diff --git a/Open-ILS/src/templates/acq/common/notes.tt2 b/Open-ILS/src/templates/acq/common/notes.tt2
new file mode 100644 (file)
index 0000000..609cf6c
--- /dev/null
@@ -0,0 +1,62 @@
+[% which_lc = which | lower %]
+    <div id="acq-[% which_lc %]-notes-div" class="hidden">
+        <div class="acq-menu-bar">
+            <table style="width:100%">
+                <tr>
+                    <td style="text-align:left;">
+                        <div dojoType="dijit.form.Button" id="acq-[% which_lc %]-notes-back-button">&#x2196; Return</div>
+                    </td>
+                    <td style="text-align:right;">
+                        <div dojoType="dijit.form.DropDownButton">
+                            <span>New Note</span>
+                            <div dojoType="dijit.TooltipDialog">
+                                <div class="acq-notes-note-row">
+                                    <div jsId="acq[% which %]CreateNoteText" dojoType="dijit.form.Textarea" style="height:5em; width:25em;" name="note"></div>
+                                    <div style="margin: 8px 0;">
+                                        <div dojoType="dijit.form.CheckBox" jsId="acq[% which %]CreateNoteVendorPublic" name="vendor_public" id="acq-[% which_lc %]-create-note-vendor-public"></div><label for="acq-[% which_lc %]-create-note-vendor-public">Note is vendor-public</label>
+                                    </div>
+                                </div>
+                                <button jsId="acq[% which %]CreateNoteSubmit" dojoType="dijit.form.Button" type="submit">Create</button>
+                            </div>
+                        </div>
+[% IF which == "Lit" %]
+                        <div dojoType="dijit.form.DropDownButton">
+                            <span>New Alert</span>
+                            <div dojoType="dijit.TooltipDialog">
+                                <div class="acq-notes-note-row">
+                                    <label for="acq-lit-alert-alert-text">Choose alert code &nbsp;&nbsp;</label>
+                                    <input id="acq-lit-alert-alert-text" jsId="acqLitAlertAlertText" dojoType="dijit.form.FilteringSelect" labelAttr="code" searchAttr="code" required="true" />
+                                </div>
+                                <div class="acq-notes-note-row">
+                                    <label for="acq-lit-alert-value">Additional comments</label>
+                                    <div jsId="acqLitAlertNoteValue" id="acq-lit-alert-value" dojoType="dijit.form.Textarea" name="value"></div>
+                                </div>
+                                <button jsId="acqLitCreateAlertSubmit" dojoType="dijit.form.Button" type="submit">Create</button>
+                            </div>
+                        </div>
+[% END %]
+                    </td>
+                </tr>
+            </table>
+        </div>
+
+        <ol id="acq-[% which_lc %]-notes-tbody">
+            <li id="acq-[% which_lc %]-notes-row">
+                <table style="width:100%;" class="oils-generic-table">
+                    <tr>
+                        <td width="70%" align="left">
+                            <span name="vendor_public"></span>
+                            <span name="alert_code"></span>
+                            <span style="font-size:120%" name="value"></span>
+                        </td>
+                        <td align="right" style="padding-right:30px;">
+                            <span name="edit_time"></span>
+                            <span style="padding-left:4px;">
+                                <a name="delete" href="javascript:void(0);" style="color:red;">Delete</a>
+                            </span>
+                        </td>
+                    </tr>
+                </table>
+            </li>
+        </ol>
+    </div>
diff --git a/Open-ILS/src/templates/acq/financial/claim_eligible.tt2 b/Open-ILS/src/templates/acq/financial/claim_eligible.tt2
new file mode 100644 (file)
index 0000000..fc87842
--- /dev/null
@@ -0,0 +1,57 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "Items Eligible For Claiming" %]
+<script type="text/javascript">var filter = "[% ctx.page_args.0 %]";</script>
+<div>
+    <h1>Items Eligible For Claiming</h1>
+    <div class="oils-acq-basic-roomy">
+        Show items ready to claim for:
+        <select
+            dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId="orderingAgency" searchAttr="shortname"
+            labelAttr="shortname"></select>
+        <span dojoType="openils.widget.ProgressDialog"
+            jsId="progressDialog"></span>
+    </div>
+    <div class="oils-acq-basic-roomy">
+        <button name="claim_submit">Claim selected items</button>
+    </div>
+    <table id="acq-eligible-li-table">
+        <thead>
+            <tr>
+                <th><input type="checkbox" name="selector_all" /></th>
+                <th>Items</th>
+            </tr>
+        </thead>
+        <tbody>
+            <tr><!-- item template -->
+                <td>
+                    <input type="checkbox" name="selector" />
+                </td>
+                <td>
+                    <div name="description"></div>
+                    <div name="lid_link_holder" class="hidden">
+                        [ <a href="javascript:void(0);"
+                            name="lid_link">Consider individual copies
+                            for claiming</a> ]
+                    </div>
+                </td>
+            </tr>
+            <tr><!-- empty template -->
+                <td colspan="2">
+                    <em>There were no items matching your search.</em>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+    <div class="oils-acq-basic-roomy">
+        <button name="claim_submit">Claim selected items</button>
+    </div>
+</div>
+<div class="hidden">
+    <div dojoType="dijit.Dialog" jsId="finalClaimDialog">
+        [% INCLUDE "acq/common/final_claim_dialog.tt2" %]
+    </div>
+</div>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/financial/claim_eligible.js"> </script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/financial/claim_voucher.js"> </script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/financial/list_currency_types.tt2 b/Open-ILS/src/templates/acq/financial/list_currency_types.tt2
new file mode 100644 (file)
index 0000000..dfa5d2d
--- /dev/null
@@ -0,0 +1,35 @@
+[% WRAPPER base.tt2 %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+    <div>Currency Type</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='ctGrid.showCreateDialog()'>New Currency Type</button>
+        <button dojoType='dijit.form.Button' onClick='ctGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="ctGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['code', 'label']"
+            defaultCellWidth='25'
+            query="{code: '*'}"
+            fmClass='acqct'
+            editOnEnter='true'>
+    </table>
+</div>
+
+<script type="text/javascript">
+    dojo.require('dijit.layout.ContentPane');
+    dojo.require('dijit.form.Button');
+    dojo.require('openils.widget.AutoGrid');
+    dojo.require('openils.Util');
+    openils.Util.addOnLoad(
+        function() {
+            ctGrid.loadAll({order_by:{acqct : 'code'}});
+        }
+    );
+</script>
+
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/acq/financial/list_funding_sources.tt2 b/Open-ILS/src/templates/acq/financial/list_funding_sources.tt2
new file mode 100644 (file)
index 0000000..432c471
--- /dev/null
@@ -0,0 +1,51 @@
+[% WRAPPER 'base.tt2' %]
+
+<!-- The main grid lives here -->
+<script type="text/javascript">
+    function getName(rowIndex, item) {
+        if(!item) return '';
+        var name = this.grid.store.getValue(item, 'name');
+        var id = this.grid.store.getValue(item, 'id');
+        // weird hack to pass the data we need to the formatter which is now required for HTML cell values
+        return id + ':' + name;
+    }
+
+    function formatName(value) {
+        if(value) {
+            var vals = value.split(/:/);
+            return '<a href="[% ctx.base_path %]/acq/funding_source/view/'+vals[0]+'">'+vals[1]+'</a>';
+        }
+    }
+</script>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Funding Sources</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='fsGrid.showCreateDialog()'>New Funding Source</button>
+            <button dojoType='dijit.form.Button' onClick='fsGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+
+    <table  jsId="fsGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['id', 'name', 'owner', 'code', 'currency_type', 'balance']"
+            query="{name: '*'}"
+            defaultCellWidth='"auto"'
+            fmClass='acqfs'
+            editOnEnter='true'>
+        <thead>
+            <tr>
+                <th field="name" get='getName' formatter='formatName'/>
+                <th field="owner" get='getOrgInfo'/>
+                <th field="balance" get='getBalanceInfo'/>
+            </tr>
+        </thead>
+    </table>
+</div>
+
+<!-- load the page-specific JS -->
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/list_funding_sources.js'></script>
+
+[% END %]
diff --git a/Open-ILS/src/templates/acq/financial/list_funds.tt2 b/Open-ILS/src/templates/acq/financial/list_funds.tt2
new file mode 100644 (file)
index 0000000..dca2a0a
--- /dev/null
@@ -0,0 +1,162 @@
+[% WRAPPER 'base.tt2' %]
+[% ctx.page_title = 'Funds' %]
+
+<!-- load the page-specific JS -->
+<script type="text/javascript">
+    function getFundName(rowIndex, item) {
+        if (!item) return null;
+        return {
+            "name": this.grid.store.getValue(item, "name"),
+            "id": this.grid.store.getValue(item, "id")
+        };
+    }
+
+    function formatName(value) {
+        if (!value) return ""; // XXX
+
+        var link = "<a href='/eg/acq/financial/view_fund/" +
+            value.id + "'>" +
+            value.name + "</a>";
+
+        /* TODO: add another element here to which we can attach a tooltip
+           showing tags */
+        return link;
+    }
+
+    function createNewFund() {
+        /* Set the display constraints before drawing the edit dialog;
+           introduce Y2K and Y2K2C problem */
+        lfGrid.overrideWidgetArgs = {year: { dijitArgs: {constraints : {min: 2000, max: 2200, pattern : '####'}}}};
+        lfGrid.showCreateDialog();
+    }
+
+</script>
+
+<table style='width:100%;'>
+    <tr>
+        <!-- TODO CSS -->
+        <td style='text-align:left;font-size:130%;font-weight: bold;'>Funds</td>
+        <td style='text-align:right;width:90%;'>
+
+            <button dojoType='dijit.form.Button' onClick='createNewFund()'>New Fund</button>
+            <button dojoType='dijit.form.Button' onClick='lfGrid.deleteSelected()'>Delete Selected</button>
+
+            <div dojoType="dijit.form.DropDownButton">
+                <span>Fund Propagation &amp; Rollover</span>
+                <div dojoType="dijit.TooltipDialog" execute="performRollover(arguments[0]);">
+                    <table class='dijitTooltipTable' id='oils-acq-rollover-tooltip-table'>
+                        <tr>
+                            <td colspan='2'>
+                                <div style='width:400px;'>
+                                Propagation creates new funds for the subsequent fiscal year based on the
+                                funds for the selected fiscal year.  Only funds with the propagate setting
+                                enabled will be affected.  No money or encumbrances are altered
+                                during this process.
+                                </div>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td><label for="rollover">Perform Fiscal Year Close-out Operation: </label></td>
+                            <td>
+                                <input dojoType="dijit.form.CheckBox" name="rollover"> </input>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td colspan='2'>
+                                <div style='width:400px;'>
+                                The year end close out operation moves encumbrances from the selected fiscal
+                                year to the analogous funds in the subsequent fiscal year and it deactivates
+                                funds for the selected fiscal year.  Additionally, for all funds that have
+                                the "Rollover" setting enabled, this process will move all unspent money to
+                                the analogous fund in the subsequent fiscal year.
+                                </div>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>Context Org Unit:</td>
+                            <td><span id='oils-acq-rollover-ctxt-org'></span></td>
+                        </tr>
+                        <tr>
+                            <td>Include Funds for Descendant Org Units:</td>
+                            <td><input dojoType=dijit.form.CheckBox name='child_orgs'/></td>
+                        </tr>
+                        <tr>
+                            <td><label for="dry_run">Dry Run: </label></td>
+                            <td>
+                                <input dojoType="dijit.form.CheckBox" name="dry_run" checked='checked'> </input>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td colspan='2'>
+                                <div style='width:400px;'>
+                                When Dry Run is selected, the system will generate a summary of
+                                the changes that would occur during the selected operation(s).
+                                No data will be changed.
+                                </div>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td colspan='2' align='center'>
+                                <button dojoType=dijit.form.Button type="submit">Process</button>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+        </td>
+    </tr>
+</table>
+
+<div class="oils-acq-basic-roomy">
+    <span>Context Org Unit</span>
+    <select
+        dojoType="openils.widget.OrgUnitFilteringSelect"
+        jsId="contextOrgSelector"
+        searchAttr="shortname"
+        labelAttr="shortname">
+    </select>
+
+    <span>Year</span>
+    <select dojoType="dijit.form.FilteringSelect"
+        jsId="fundFilterYearSelect"
+        labelAttr="year"
+        searchAttr="year">
+    </select>
+
+    <div dojoType='dijit.form.Button' jsId='refreshButton'>Refresh</div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div id='acq-fund-list-rollover-summary-wrapper'>
+        <div id='acq-fund-list-rollover-summary' class='hidden'>
+            <div id='acq-fund-list-rollover-summary-header'> </div>
+            <ul>
+                <li id='acq-fund-list-rollover-summary-dry-run'>These changes have <span class='oils-notify-text'>not</span> been committed yet.</li>
+                <li id='acq-fund-list-rollover-summary-funds'></li>
+                <li id='acq-fund-list-rollover-summary-rollover-amount'></li>
+            </ul>
+        </div>
+    </div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="lfGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['id', 'name', 'code', 'year', 'org', 'currency_type', 'combined_balance']"
+            requiredFields="['name', 'code', 'year', 'org', 'currency_type']"
+            query="{id: '*'}"
+            defaultCellWidth='"auto"'
+            fmClass='acqf'
+            showPaginator='true'
+            editOnEnter='true'>
+        <thead>
+            <tr>
+                <th field="name" get="getFundName" formatter="formatName"></th>
+                <th field="combined_balance" name="Combined Balance" get="getBalanceInfo"></th>
+            </tr>
+        </thead>
+    </table>
+</div>
+<div dojoType="openils.widget.ProgressDialog" jsId="progressDialog"></div>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/list_funds.js'> </script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/financial/view_fund.tt2 b/Open-ILS/src/templates/acq/financial/view_fund.tt2
new file mode 100644 (file)
index 0000000..7eb63e3
--- /dev/null
@@ -0,0 +1,257 @@
+[% WRAPPER 'base.tt2' %]
+<script type="text/javascript"> var fundID = [% ctx.page_args.0 %] </script>
+
+<div id='oils-acq-list-header' class='container'>
+    <div id='oils-acq-list-header-label'>Fund Details</div>
+</div>
+
+<div class='oils-acq-actions-div' style='margin:8px;'> <!-- XXX CSS -->
+    <!-- Dropdown menu for creating a new funding source credit -->
+    <div dojoType="dijit.form.DropDownButton">
+        <span>Create Allocation</span>
+        <div dojoType="dijit.TooltipDialog" execute="createAllocation(arguments[0]);">
+            <script type='dojo/connect' event='onOpen'>
+                openils.acq.FundingSource.createStore(
+                    function(store) {
+                        fundingSourceSelector.store = 
+                            new dojo.data.ItemFileReadStore({data:store});
+                            fundingSourceSelector.setValue(store.items[0].code);
+                    }, 
+                    'MANAGE_FUNDING_SOURCE'
+                );
+            </script>
+            <table class='dijitTooltipTable'>
+                <tr>
+                    <td><label for="amount">Funding Source: </label></td>
+                    <td>
+                        <input jsId='fundingSourceSelector' name="funding_source" 
+                               dojoType="dijit.form.FilteringSelect" searchAttr='code' labelAttr='code'>
+                        </input>
+                    </td>
+                </tr>
+                <tr>
+                    <td><label for="amount">Amount: </label></td>
+                    <td>
+                        <input dojoType="dijit.form.CurrencyTextBox" name="amount"> </input>
+                    </td>
+                </tr>
+
+                <!-- Percent-based allocations are not supported.  Will implement or remove later.
+                <tr>
+                    <td><label for="amount">Percent: </label></td>
+                    <td>
+                        <input 
+                             dojoType="dijit.form.NumberTextBox" 
+                             constraints="{min:0,max:100}" 
+                             promptMessage="Please enter an amount between 0 and 100"
+                             name="percent"> 
+                        </input>
+                    </td>
+                </tr>
+                -->
+
+                <tr>
+                    <td><label for="note">Note: </label></td>
+                    <td>
+                        <input dojoType="dijit.form.TextBox" name="note"> </input>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan='2' align='center'>
+                        <button dojoType="dijit.form.Button" type="submit">Apply</button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div> 
+    <div dojoType="dijit.form.DropDownButton">
+        <span>Transfer Money</span>
+        <div jsId="xferDialog" dojoType="dijit.TooltipDialog">
+            <script type="dojo/connect" event="onOpen">
+                /* If a fund is selected (from a previous time that the
+                user popped open this dialog), unselect it. Wouldn't want to
+                accidentally encourage a transfer that the user didn't mean. */
+                xferManager.clearFundSelector();
+                xferManager.setFundName(fund);
+            </script>
+            <table id="oils-acq-fund-xfer-table">
+                <tr>
+                    <th>
+                        <label for="oils-acq-fund-xfer-o-amount">
+                            Source amount<br />
+                            <em>Amount to transfer from<br />
+                                <span id="oils-acq-fund-xfer-name-fund"></span>
+                            </em>
+                        </label>
+                    </th>
+                    <td>
+                        <input dojoType="dijit.form.CurrencyTextBox"
+                            id="oils-acq-fund-xfer-o-amount"
+                            name="o_amount" />
+                    </td>
+                </tr>
+                <tr>
+                    <th>
+                        <label for="oils-acq-fund-xfer-d-selector">
+                            Destination fund
+                        </label>
+                    </th>
+                    <td>
+                        <span id="oils-acq-fund-xfer-d-selector"></span>
+                    </td>
+                </tr>
+                <tr id="oils-acq-fund-xfer-dest-amount" class="hidden">
+                    <th>
+                        <label for="oils-acq-fund-xfer-d-selector">
+                            Destination amount
+                        </label>
+                    </th>
+                    <td>
+                        <div class="oils-acq-basic-roomy">
+                            <input id="oils-acq-fund-xfer-same-o-d"
+                                dojoType="dijit.form.CheckBox" checked="checked"
+                                value="1" name="same_o_d" />
+                            <label for="oils-acq-fund-xfer-same-o-d">
+                                Same as source amount?
+                            </label>
+                        </div>
+                        <div class="oils-acq-basic-roomy">
+                            <input id="oils-acq-fund-xfer-d-amount"
+                                dojoType="dijit.form.CurrencyTextBox"
+                                name="d_amount" disabled="disabled" />
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <th>
+                        <label for="oils-acq-fund-xfer-note">Note</label>
+                    </th>
+                    <td>
+                        <input dojoType="dijit.form.TextBox" name="note"
+                            id="oils-acq-fund-xfer-note" />
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" id="oils-acq-fund-xfer-submit-row">
+                        <button onclick="xferManager.submit();"
+                            dojoType="dijit.form.Button" type="submit">
+                            Transfer
+                        </button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+</div>
+
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top">
+    <div dojoType="dijit.layout.TabContainer">
+
+        <!-- Fund Summary -->
+        <div dojoType="dijit.layout.ContentPane" 
+             class='oils-acq-detail-content-pane' title="Summary" selected='true'>
+            
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
+                <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px;'> 
+                    <table jsId="fundGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector='20px'> 
+                        <thead> 
+                            <tr> 
+                                <th field="id">ID</th> 
+                                <th field="name">Name</th> 
+                                <th field="code">Code</th> 
+                                <th field="currency_type">Currency Type</th> 
+                                <th field="org" get='getOrgInfo'>Owner</th> 
+                                <th field="combined_balance" get='getSummaryInfo'>Balance</th> 
+                                <th field="allocation_total" get='getSummaryInfo'>Total Allocated</th>
+                                <th field="spent_balance" get='getSummaryInfo'>Spent Balance</th>
+                                <th field="debit_total" get='getSummaryInfo'>Total Debits</th>
+                                <th field="spent_total" get='getSummaryInfo'>Total Spent</th>
+                                <th field="encumbrance_total" get='getSummaryInfo'>Total Encumbered</th>
+                            </tr> 
+                        </thead> 
+                    </table>     
+                </div>
+            </div>
+        </div>
+
+        <!-- Fund Allocations -->
+        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Allocations">
+            <script type='dojo/connect' event='onShow'>loadAllocationGrid();</script>
+            
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
+                <div dojoType="dijit.layout.ContentPane" layoutAlign="client"> 
+
+                    <table 
+                        jsId="fundAllocationGrid" 
+                        autoHeight='true'
+                        dojoType="openils.widget.AutoGrid"
+                        fieldOrder="['funding_source', 'amount', 'create_time', 'allocator', 'note']"
+                        suppressFields="['id', 'fund']"
+                        defaultCellWidth='"auto"'
+                        fmClass="acqfa"
+                        query="{id: '*'}"
+                        showPaginator='true'>
+
+                        <thead>
+                            <tr>
+                                <th field='funding_source' get='getFundingSource' formatter='formatFundingSource'/>
+                            </tr>
+                        </thead>
+                    </table>
+                </div> 
+            </div> 
+        </div>
+
+        <!--- Fund Debits -->
+        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Debits">
+            <script type='dojo/connect' event='onShow'>loadDebitGrid();</script>
+            
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top" style='height:600px;'> 
+                <button dojoType="dijit.form.Button" onClick="fundDebitGrid.refresh();">Refresh Grid</button>
+                <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+
+                    <table 
+                        jsId="fundDebitGrid" 
+                        autoHeight='true'
+                        dojoType="openils.widget.AutoGrid"
+                        fieldOrder="['amount', 'encumbrance', 'debit_type', 'origin_amount', 'origin_currency_type']"
+                        suppressFields="['id', 'fund']"
+                        defaultCellWidth='"auto"'
+                        fmClass="acqfdeb"
+                        query="{id: '*'}"
+                        showPaginator='true'>
+                    </table>
+                </div> 
+            </div> 
+        </div>
+
+        <div dojoType="dijit.layout.ContentPane" class="oils-acq-detail-content-pane" title="Tags">
+            <script type="dojo/connect" event="onShow">
+                tagManager.displayFund(fund);
+            </script>
+            <div id="oils-acq-tag-manager-display"></div>
+            <div id="oils-acq-tag-manager-add">
+                <div dojoType="dijit.form.DropDownButton">
+                    <span>Add Tag</span>
+                    <div dojoType="dijit.TooltipDialog">
+                        <select dojoType="dijit.form.FilteringSelect"
+                            jsId="tagSelector">
+                        </select>
+                        <button onclick="tagManager.addMapping(
+                            fund, new acqft().fromStoreItem(tagSelector.item)
+                        );" type="submit" dojoType="dijit.form.Button">
+                            Add
+                        </button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!-- load the page-specific JS -->
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/tag_manager.js"></script>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/view_fund.js'></script>
+
+[% END %]
diff --git a/Open-ILS/src/templates/acq/financial/view_funding_source.tt2 b/Open-ILS/src/templates/acq/financial/view_funding_source.tt2
new file mode 100644 (file)
index 0000000..6ab5794
--- /dev/null
@@ -0,0 +1,173 @@
+[% WRAPPER 'base.tt2' %]
+<script type="text/javascript"> var fundingSourceID = [% ctx.page_args.0 %]; </script>
+
+<div id='oils-acq-list-header' class='container'>
+    <div id='oils-acq-list-header-label'>Funding Source Details</div>
+</div>
+
+<div class='oils-acq-actions-div' style='margin:8px;'> <!-- XXX CSS -->
+
+    <!-- Dropdown menu for creating a new funding source credit -->
+    <div dojoType="dijit.form.DropDownButton">
+        <span>Apply Credit</span>
+        <div dojoType="dijit.TooltipDialog" execute="applyFSCredit(arguments[0]);">
+            <table class='dijitTooltipTable'>
+                <tr>
+                    <td><label for="amount">Amount: </label></td>
+                    <td>
+                        <input dojoType="dijit.form.CurrencyTextBox" name="amount"> </input>
+                    </td>
+                </tr>
+                <tr>
+                    <td><label for="note">Note: </label></td>
+                    <td>
+                        <input dojoType="dijit.form.TextBox" name="note"> </input>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan='2' align='center'>
+                        <button dojoType=dijit.form.Button type="submit">Apply</button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div> 
+    <div dojoType="dijit.form.DropDownButton">
+        <span>Allocate to Fund</span>
+        <div dojoType="dijit.TooltipDialog" execute="applyFSAllocation(arguments[0]);">
+            <script type='dojo/connect' event='onOpen'>
+                openils.acq.Fund.createStore(
+                    function(store) {
+                        fundingSourceFundSelector.store = 
+                            new dojo.data.ItemFileReadStore({data:store});
+                        fundingSourceFundSelector.setValue(store.items[0].code);
+                    }, 'MANAGE_FUND'
+                );
+            </script>
+            <table class='dijitTooltipTable'>
+                <tr>
+                    <td><label for="amount">Fund: </label></td>
+                    <td>
+                        <input jsId='fundingSourceFundSelector' name="fund" 
+                            dojoType="dijit.form.FilteringSelect" searchAttr='code' labelAttr='code'>
+                        </input>
+                    </td>
+                </tr>
+                <tr>
+                    <td><label for="amount">Amount: </label></td>
+                    <td>
+                        <input dojoType="dijit.form.CurrencyTextBox" name="amount"> </input>
+                    </td>
+                </tr>
+                <!-- Percent-based allocations are not supported.  Will implement or remove later.
+                <tr>
+                    <td><label for="amount">Percent: </label></td>
+                    <td>
+                        <input 
+                            dojoType="dijit.form.NumberTextBox" 
+                            constraints="{min:0,max:100}" 
+                            promptMessage="Please enter an amount between 0 and 100"
+                            name="percent"> 
+                        </input>
+                    </td>
+                </tr>
+                -->
+                <tr>
+                    <td><label for="note">Note: </label></td>
+                    <td>
+                        <input dojoType="dijit.form.TextBox" name="note"> </input>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan='2' align='center'>
+                        <button dojoType=dijit.form.Button type="submit">Apply</button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div> 
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top">
+    <div dojoType="dijit.layout.TabContainer">
+
+        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Summary" selected='true'>
+            <script type='dojo/connect' event='onShow'>loadFSGrid();</script>
+
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
+                <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px;'> 
+                    <table jsId="fundingSourceGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector='20px'> 
+                        <thead> 
+                            <tr> 
+                                <th field="id">ID</th> 
+                                <th field="name" width='auto'>Name</th> 
+                                <th field="code">Code</th> 
+                                <th field="balance" get='getSummaryInfo'>Balance</th>
+                                <th field="credit_total" get='getSummaryInfo'>Total Credits</th>
+                                <th field="allocation_total" get='getSummaryInfo'>Total Debits</th>
+                                <th field="currency_type">Currency Type</th> 
+                                <th field="owner" width='auto' get='getOrgInfo'>Owner</th>
+                            </tr> 
+                        </thead> 
+                    </table>     
+                </div> 
+            </div>               
+        </div>
+        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Credits">
+            <script type='dojo/connect' event='onShow'>loadCreditGrid(); </script> 
+
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
+                <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+
+                    <table 
+                        jsId="fsCreditGrid"
+                        autoheight="true"
+                        dojoType="openils.widget.AutoGrid"
+                        fieldOrder="['amount', 'effective_date', 'deadline_date', 'note']"
+                        suppressFields="['id', 'funding_source']"
+                        defaultCellWidth='"auto"'
+                        fmClass="acqfscred"
+                        query="{id: '*'}"
+                        showPaginator='true'>
+                    </table>
+                </div> 
+            </div> 
+        </div>
+
+        <!-- Fund Allocations -->
+        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Allocations">
+            <script type='dojo/connect' event='onShow'>loadAllocationGrid();</script>
+            
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
+                <div dojoType="dijit.layout.ContentPane" layoutAlign="client"> 
+
+                    <table 
+                        jsId="fsAllocationGrid" 
+                        autoHeight='true'
+                        dojoType="openils.widget.AutoGrid"
+                        fieldOrder="['fund', 'amount', 'create_time', 'allocator', 'note']"
+                        suppressFields="['id', 'funding_source']"
+                        defaultCellWidth='"auto"'
+                        fmClass="acqfa"
+                        query="{id: '*'}"
+                        showPaginator='true'>
+
+                        <thead>
+                            <tr>
+                                <th field='fund' get='getFund' formatter='formatFund'/>
+                            </tr>
+                        </thead>
+                    </table>
+                </div> 
+            </div> 
+        </div>
+
+    </div>
+</div>
+
+<!-- load the page-specific JS -->
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/view_funding_source.js'> </script>
+
+[% END %]
+
diff --git a/Open-ILS/src/templates/acq/financial/view_provider.tt2 b/Open-ILS/src/templates/acq/financial/view_provider.tt2
new file mode 100644 (file)
index 0000000..6fdc425
--- /dev/null
@@ -0,0 +1,118 @@
+[% WRAPPER base.tt2 %]
+<script type="text/javascript">var providerId = [% ctx.page_args.0 %]</script>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top">
+    <div dojoType="dijit.layout.TabContainer">
+
+        <div dojoType="dijit.layout.ContentPane" 
+                class='oils-acq-detail-content-pane' title="Summary" selected='true' style='height:400px;'>
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
+                <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px;'> 
+                    <table jsId="providerGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector='20px'> 
+                        <thead> 
+                            <tr> 
+                                <th field="id">ID</th> 
+                                <th field="name" width='auto'>Name</th> 
+                                <th field="code">Code</th> 
+                                <th field="owner" get='getOrgInfo'>Owner</th> 
+                                <th field="currency_type">Currency Type</th> 
+                            </tr> 
+                        </thead> 
+                    </table>     
+                </div> 
+            </div>             
+        </div>
+
+        <div dojoType="dijit.layout.ContentPane" 
+                class='oils-acq-detail-content-pane' title="Order Record Format" style='height:400px;'>
+
+            <div class='oils-acq-actions-div' style='margin:8px;'>
+
+                <!-- 
+                    Dropdown menu for creating a new order record data type
+                -->
+                <div dojoType="dijit.form.DropDownButton">
+                    <span>Create Order Record Field</span>
+                    <div dojoType="dijit.TooltipDialog" execute="createOrderRecordField(arguments[0]);">
+                        <script type='dojo/connect' event='onOpen'>setORDesc();</script>
+                        <table class='dijitTooltipTable'>
+                            <tr>
+                                <td><label for="code">Code: </label></td>
+                                <td>
+                                    <select id='oils-acq-provider-or-code' name="code" dojoType="dijit.form.ComboBox">
+                                        <script type='dojo/connect' event='onChange'>setORDesc();</script>
+                                        <option value='fund_code'>Fund Code</option>
+                                        <option value='shelving_location'>Shelving Location</option>
+                                        <option value='quantity'>Quantity</option>
+                                        <option value='order_date'>Order Date</option>
+                                        <option value='volume_count'>Volume Count </option>
+                                        <option value='currency_type'>Currency Type</option>
+                                        <option value='internal_notes'>Internal Notes </option>
+                                        <option value='vendor_notes'>Vendor Notes</option>
+                                        <option value='estimated_price'>Estimated Price</option>
+                                    </select>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td><label for="description">Description: </label></td>
+                                <td><input id='oils-acq-provider-or-desc' dojoType="dijit.form.TextBox" name="description"> </input></td>
+                            </tr>
+                            <tr>
+                                <td><label for="amount">Tag: </label></td>
+                                <td><input dojoType="dijit.form.TextBox" name="tag"></input></td>
+                            </tr>
+                            <tr>
+                                <td><label for="amount">Subfield: </label></td>
+                                <td><input dojoType="dijit.form.TextBox" name="subfield"></input></td>
+                            </tr>
+                            <tr>
+                                <td><label for="ident">Identifer Field?: </label></td>
+                                <td>
+                                    <select dojoType="dijit.form.FilteringSelect" name="ident">
+                                        <option value='f' selected='selected'>False</option>
+                                        <option value='t'>True</option>
+                                    </select>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td><label for="amount">XPath (advanced): </label></td>
+                                <td><input dojoType="dijit.form.TextBox" name="xpath"></input></td>
+                            </tr>
+                            <tr>
+                                <td colspan='2' align='center'>
+                                    <button dojoType='dijit.form.Button' type="submit">Apply</button>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+                </div> 
+
+                <!--
+                    Delete order record data types button
+                -->
+                <button dojoType="dijit.form.Button" onclick='deleteORDataFields();'>
+                    Delete Selected
+                </button>
+            </div>
+
+            <script type='dojo/connect' event='onShow'>loadPADGrid();</script>
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
+                <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px;'> 
+                    <table jsId="padGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector='20px'> 
+                        <thead> 
+                            <tr> 
+                                <th field="id">ID</th> 
+                                <th field="code" width='auto'>Code</th> 
+                                <th field="description" width='auto'>Description</th>                                 
+                                <th field="tag" get='getTag'>Tag</th> 
+                                <th field="subfield" get='getSubfield'>Subfield</th> 
+                                <th field="xpath" width='auto'>XPath</th> 
+                            </tr> 
+                        </thead> 
+                    </table>     
+                </div> 
+            </div>             
+        </div>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/view_provider.js'></script>
+[% END %]
+
diff --git a/Open-ILS/src/templates/acq/invoice/view.tt2 b/Open-ILS/src/templates/acq/invoice/view.tt2
new file mode 100644 (file)
index 0000000..0ddca25
--- /dev/null
@@ -0,0 +1,137 @@
+[% WRAPPER 'base.tt2' %]
+[% ctx.page_title = 'Invoicing' %]
+<script type="text/javascript">var invoiceId = '[% ctx.page_args.0 %]';</script>
+<div dojoType="dijit.layout.ContentPane" style="height:100%">
+
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+        <div> Invoice </div>
+        <div> </div>
+    </div>
+
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div id='acq-view-invoice-div'/>
+    </div>
+
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <table class='oils-acq-invoice-table'>
+            <thead/>
+            <tbody id='acq-invoice-entry-header' class='hidden'>
+                <tr>
+                    <td colspan='0'>
+                        <h3>Bibliographic Items</h3>
+                    </td>
+                </tr>
+            </tbody>
+            <!-- acq.invoice_entry -->
+            <thead id='acq-invoice-entry-thead' class='hidden'>
+                <tr>
+                    <th colspan='2'>Title Details</th>
+                    <th class='acq-invoice-center-col'>#&nbsp;Invoiced&nbsp;/&nbsp;#&nbsp;Paid</th>
+                    <th class='acq-invoice-center-col'>Billed</th>
+                    <th class='acq-invoice-paid-col'>Paid</th>
+                    <th class='acq-invoice-center-col hide-complete'>Detach</th>
+                </tr>
+            </thead>
+            <tbody id='acq-invoice-entry-tbody' class='hidden'>
+                <tr id='acq-invoice-entry-template' class='acq-invoice-row'>
+                    <td colspan='2'>
+                        <div name='title_details'></div>
+                        <div name='note'></div>
+                    </td>
+                    <td class='acq-invoice-center-col'>
+                        <span name='inv_item_count'></span>&nbsp;/&nbsp;<span name='phys_item_count'></span>
+                    </td>
+                    <td class='acq-invoice-billed-col'><div name='cost_billed'/></td>
+                    <td class='acq-invoice-paid-col'><div name='amount_paid'/></td>
+                    <td class='acq-invoice-center-col hide-complete'><a href='javascript:void(0);' name='detach'>Detach</a></td>
+                </tr>
+            </tbody>
+            <tbody>
+                <tr>
+                    <td  style='margin-top:15px;' colspan='0'>
+                        <h3>Direct Charges, Taxes, Fees, etc.</h3>
+                    </td>
+                </tr>
+            </tbody>
+            <!-- acq.invoice_item -->
+            <thead>
+                <tr>
+                    <th>Charge Type</th>
+                    <th class='acq-invoice-center-col'>Fund</th>
+                    <th>Title/Description</th>
+                    <th class='acq-invoice-center-col'>Billed</th>
+                    <th class='acq-invoice-paid-col'>Paid</th>
+                    <th class='acq-invoice-center-col hide-complete'>Delete</th>
+                </tr>
+            </thead>
+            <tbody id='acq-invoice-item-tbody'>
+                <tr id='acq-invoice-item-template' class='acq-invoice-row acq-invoice-item-row'>
+                    <td><div name='inv_item_type'/></td>
+                    <td class='acq-invoice-center-col'><div name='fund'/></td>
+                    <td><div name='title'/></td>
+                    <td class='acq-invoice-center-col' class='acq-invoice-billed-col'><div name='cost_billed'/></td>
+                    <td class='acq-invoice-paid-col'><div name='amount_paid'/></td>
+                    <td class='acq-invoice-center-col hide-complete'><a href='javascript:void(0);' name='delete'>Delete</a></td>
+                </tr>
+            </tbody>
+            <tbody class='hide-complete'>
+                <tr>
+                    <td colspan='0'>
+                        <a href='javascript:void(0);' id='acq-invoice-new-item'>Add Charge...</a>
+                    </td>
+                </tr>
+            </tbody>
+            <tbody>
+                <tr>
+                    <td style='margin-top:15px;' colspan='0'> 
+                        <h3> </h3>
+                    </td>
+                </tr>
+            </tbody>
+            <thead>
+                <tr>
+                    <th colspan='3'/>
+                    <th class='acq-invoice-center-col' class='acq-invoice-billed-col'>Total</th>
+                    <th class='acq-invoice-paid-col'>Total</th>
+                    <th class='acq-invoice-center-col' class='acq-invoice-balance-col'>Balance</th>
+                </tr>
+            </thead>
+            <tbody>
+                <tr>
+                    <td colspan='3' style='text-align:right;'>
+                        <button jsId='invoiceSaveButton' class='hide-complete'
+                            dojoType='dijit.form.Button' onclick='saveChanges();'>Save</button>
+                        <button jsId='invoiceProrateButton' class='hide-complete'
+                            dojoType='dijit.form.Button' onclick='saveChanges(true);'>Save &amp; Prorate</button>
+                        <button jsId='invoiceCloseButton' class='hide-complete'
+                            dojoType='dijit.form.Button' onclick='saveChanges(false, true);'>Save &amp; Close</button>
+                        <span class='hidden' id='acq-invoice-reopen-button-wrapper'>
+                            <button jsId='invoiceReopenButton' 
+                                dojoType='dijit.form.Button' onclick='saveChanges(false, false, true);'>Reopen Invoice</button>
+                        </span>
+                    </td>
+                    <td class='acq-invoice-center-col'><div jsId='totalInvoicedBox' dojoType='dijit.form.CurrencyTextBox' style='width:9em;'/></td>
+                    <td class='acq-invoice-paid-col'><div jsId='totalPaidBox' dojoType='dijit.form.CurrencyTextBox' style='width:9em;'/></td>
+                    <td class='acq-invoice-center-col'><div jsId='balanceOwedBox' dojoType='dijit.form.CurrencyTextBox' style='width:9em;'/></td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+<div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'/>
+<div jsId='extraItemsDialog' dojoType="dijit.Dialog" title="Extra Items">
+    <div dojoType="dijit.layout.ContentPane" style='text-align:center;'>
+        <div id='acq-invoice-extra-copies-message'></div>
+        <br/>
+        Select a fund for the new items: <div id='acq-invoice-extra-copies-fund'></div>
+        <br/><br/>
+        <br/><br/>
+        <span style='padding-right: 10px;'>
+            <button dojoType='dijit.form.Button' jsId='extraCopiesCancel'>Cancel</button>
+        </span>
+        <button dojoType='dijit.form.Button' jsId='extraCopiesGo'>Add New Items</button>
+    </div>
+</div>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/invoice/common.js'> </script>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/invoice/view.js'> </script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/lineitem/findbib.tt2 b/Open-ILS/src/templates/acq/lineitem/findbib.tt2
new file mode 100644 (file)
index 0000000..7eedc44
--- /dev/null
@@ -0,0 +1,73 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "Locate Bib Record" %]
+<script type="text/javascript">
+    function iterateSubfields(item) {
+        var out = '';
+        dojo.query('subfield', item).forEach(
+            function(item) { out += item.textContent + ' '; } );
+        return out;
+    }
+</script>
+
+<div id='acq-findbib-search' style='margin:30px; border:1px solid #333; text-align:center;'>
+    <input dojoType='dijit.form.TextBox' jsId='searchQuery' style='width:500px;'></input>
+    <button dojoType='dijit.form.Button' onclick='doSearch'>Search</button>
+</div>
+
+<div style='width:100%; ' id='acq-findbib-container'>
+    <div id='acq-findbib-template' style='border-bottom:1px solid #333; padding:10px;'>
+        <div style='font-weight:bold;'>
+            <div type='opac/slot-data' query='datafield[tag=245]'>
+                <script type='opac/slot-format'>return iterateSubfields(item)</script>
+            </div>
+        </div>
+        <div style='margin-left:20px;'>
+            <div>
+                <div type='opac/slot-data' query='datafield[tag=100]'>
+                    <script type='opac/slot-format'>return iterateSubfields(item)</script>
+                </div>
+            </div>
+            <div>
+                <span><a name='view-marc' href='javascript:void(0);'>View MARC</a></span>
+                <span><a name='select-rec' href='javascript:void(0);'>Select</a></span>
+                <span type='opac/slot-data' query='datafield[tag=020]'>
+                    <script type='opac/slot-format'>return iterateSubfields(item)</script>
+                </span> 
+                <span type='opac/slot-data' query='datafield[tag=024]'>
+                    <script type='opac/slot-format'>return iterateSubfields(item)</script>
+                </span> 
+                <span type='opac/slot-data' query='datafield[tag=022]'>
+                    <script type='opac/slot-format'>return iterateSubfields(item)</script>
+                </span>
+                <span type='opac/slot-data' query='datafield[tag=260] subfield[code=c]'></span>
+            </div>
+        </div>
+    </div>
+</div>
+
+<style>
+    #marc-div {
+        position: fixed;
+        top:100px;
+        right:10px;
+        left:200px;
+        bottom:100px;
+        border: 3px solid #333;
+        -moz-border-radius: 5px;
+        padding: 30px;
+        text-align:center;
+        background: #FFF;
+        overflow: auto;
+    }
+</style>
+
+<div id='marc-div' class='hidden'>
+    <button dojoType='dijit.form.Button' onclick='openils.Util.hide("marc-div");'>Hide</button>
+    <div style='text-align:left;'>
+        <div id='marc-html-div'/>
+    </div>
+</div>
+<div jsId='progressDialog' dojoType='openils.widget.ProgressDialog' message='Searching....'/>
+
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/findbib.js"></script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/lineitem/history.tt2 b/Open-ILS/src/templates/acq/lineitem/history.tt2
new file mode 100644 (file)
index 0000000..d4743a7
--- /dev/null
@@ -0,0 +1,30 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "Lineitem History" %]
+<h1>Lineitem History</h1>
+<br/>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="lhGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            defaultCellWidth="'auto'"
+            fieldOrder="['audit_time', 'state', 'picklist', 'purchase_order', 'provider', 'estimated_unit_price', 'claim_policy', 'create_time', 'edit_time', 'creator', 'editor', 'selector']"
+            query="{audit_id: '*'}"
+            suppressFields='["id", "audit_id", "marc", "audit_action"]'
+            fmClass='acqlih'
+            editOnEnter='true'
+            editReadOnly='true'
+            showPaginator='true'>
+    </table>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    var liId = "[% ctx.page_args.0 %]";
+    openils.Util.addOnLoad(
+        function() {
+            lhGrid.loadAll({order_by : {acqlih :  'audit_time DESC'}}, {id : liId});
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/lineitem/related.tt2 b/Open-ILS/src/templates/acq/lineitem/related.tt2
new file mode 100644 (file)
index 0000000..487baaf
--- /dev/null
@@ -0,0 +1,71 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "Related Lineitems" %]
+<script type="text/javascript">var targetId = "[% ctx.page_args.0 %]";</script>
+<h1>Related Lineitems</h1>
+<div id="acq-related-mini">
+    <script type="text/javascript">
+        function iterateSubfields(item) {
+            var out = '';
+            dojo.query('subfield', item).forEach(
+                function(item) { out += item.textContent + ' '; } );
+            return out;
+        }
+    </script>
+    <ul id="acq-related-mini-display">
+        <li>
+            <div type='opac/slot-data' query='datafield[tag=245]'>
+                <script type='opac/slot-format'>return iterateSubfields(item)</script>
+            </div>
+        </li>
+        <li>
+            <div type='opac/slot-data' query='datafield[tag=100] subfield[code=a]'/>
+        </li>
+        <li>
+            <div type='opac/slot-data' query='datafield[tag=020]'>
+                <script type='opac/slot-format'>return iterateSubfields(item)</script>
+            </div> 
+            <div type='opac/slot-data' query='datafield[tag=024]'>
+                <script type='opac/slot-format'>return iterateSubfields(item)</script>
+            </div> 
+            <div type='opac/slot-data' query='datafield[tag=022]'>
+                <script type='opac/slot-format'>return iterateSubfields(item)</script>
+            </div>
+        </li>
+        <li>
+            <div type='opac/slot-data' query='datafield[tag=260] subfield[code=c]'/>
+        </li>
+    </ul>
+
+    <div id="acq-related-li-create-holder">
+        <button jsId="addToPlButton" dojoType="dijit.form.Button">
+            Add to Selection List
+        </button>
+        <button jsId="addToPoButton" dojoType="dijit.form.Button">
+            Add to Purchase Order
+        </button>
+        <button jsId="createPoButton" dojoType="dijit.form.Button">
+            Create Purchase Order
+        </button>
+    </div>
+
+    <div class="hidden">
+        <div dojoType="dijit.Dialog" jsId='addToPoDialog'>
+            <table class='dijitTooltipTable'>
+                <tr>
+                    <td><label>Enter the PO #: </label></td>
+                    <td><input jsId='addToPoInput' dojoType="dijit.form.TextBox" /></td>
+                </tr>
+                <tr>
+                    <td colspan='2' align='center'>
+                        <button dojoType='dijit.form.Button' jsId='addToPoSave' type="submit">Save</button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+
+</div>
+[% INCLUDE "acq/common/info.tt2" which = "Related" %]
+[% INCLUDE "acq/common/li_table.tt2" %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/related.js"></script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/lineitem/search.tt2 b/Open-ILS/src/templates/acq/lineitem/search.tt2
new file mode 100644 (file)
index 0000000..730f910
--- /dev/null
@@ -0,0 +1,115 @@
+[% WRAPPER 'base.tt2' %]
+[% ctx.page_title = 'Lineitem Search' %]
+<!-- later: "[% ctx.page_args.0 %]" -->
+<div id="oils-acq-li-search-form-holder" class="hidden">
+    <h1 class="oils-acq-li-search">Lineitem Search</h1>
+    <form dojoType="dijit.form.Form" action="" method=""
+        id="oils-acq-li-search-form" jsId="searchForm">
+        <script type="dojo/method" event="onSubmit">
+            doSearch(this.getValues());
+            return false; /* no redirect */
+        </script>
+
+        <div class="oils-acq-li-search-form-row">
+            <label class="oils-acq-li-search" for="state_selector">
+                Lineitem state
+            </label>
+            <input class="oils-acq-li-search" name="state"
+                dojoType="dijit.form.FilteringSelect" required="false"
+                id="state_selector" jsId="stateSelector"
+                labelAttr="description" searchAttr="description"
+                />
+            <label class="oils-acq-li-search" for="agency_selector">
+                PO ordering agency
+            </label>
+            <input class="oils-acq-li-search" id="agency_selector" />
+        </div>
+        <div class="oils-acq-li-search-form-row">
+            <input class="oils-acq-li-search" dojoType="dijit.form.RadioButton"
+                name="attr_search_type" jsId="attrSearchTypeNone"
+                id="attr_search_type_none" value="none" checked="checked"
+                onChange="toggleAttrSearchType(this.value, this.checked);" />
+            <label for="attr_search_type_none" class="oils-acq-li-search">
+                No further attributes to search by
+            </label>
+        </div>
+        <div class="oils-acq-li-search-form-row">
+            <!-- the "style" attribute on this input seems to be necessary as
+                I can't get the same effect from CSS for some reason -->
+            <input class="oils-acq-li-search" dojoType="dijit.form.RadioButton"
+                name="attr_search_type" jsId="attrSearchTypeScalar"
+                id="attr_search_type_scalar" value="scalar"
+                style="vertical-align: top;"
+                onChange="toggleAttrSearchType(this.value, this.checked);" />
+            <label for="attr_search_type_scalar" class="oils-acq-li-search">
+                Search by attribute values
+            </label>
+            <div id="oils-acq-li-search-attr-scalar" class="hidden">
+<!--            <div class="oils-acq-li-search-conjunction">
+                    <em>Show results for which:</em><br />
+                    <input dojoType="dijit.form.RadioButton"
+                        id="scalar_search_conjuction_or"
+                        name="scalar_search_conjunction" value="or"
+                        checked="checked" class="oils-acq-li-search" />
+                    <label for="scalar_search_conjuction_or"
+                        class="oils-acq-li-search">ANY of the following terms match</label>
+                    <br />
+                    <input dojoType="dijit.form.RadioButton"
+                        id="scalar_search_conjuction_and"
+                        name="scalar_search_conjunction" value="and"
+                        class="oils-acq-li-search" />
+                    <label for="scalar_search_conjuction_and"
+                        class="oils-acq-li-search">ALL of the following terms match</label>
+                </div> -->
+                <div class="oils-acq-li-search-scalar hidden"
+                    id="oils-acq-li-search-scalar-template">
+                    <input class="oils-acq-li-search" name="def" />
+                    <input class="oils-acq-li-search" name="value" />
+                    <a class="oils-acq-li-search" title="Remove this row"
+                        href="javascript:void(0);" />(X)</a>
+                </div>
+                <div id="oils-acq-li-search-scalar-adder">
+                    <span dojoType="dijit.form.Button"
+                        class="oils-acq-li-search"
+                        onclick="scalarAttrSearchManager.add();">
+                        Add more search terms
+                    </span>
+                    <span dojoType="dijit.form.Button"
+                        class="oils-acq-li-search"
+                        onclick="scalarAttrSearchManager.newBrief();">
+                        New brief record like this
+                    </span>
+                </div>
+            </div>
+        </div>
+        <div class="oils-acq-li-search-form-row">
+            <input class="oils-acq-li-search" dojoType="dijit.form.RadioButton"
+                name="attr_search_type" jsId="attrSearchTypeArray"
+                id="attr_search_type_array" value="array"
+                onChange="toggleAttrSearchType(this.value, this.checked);" />
+            <label for="attr_search_type_array" class="oils-acq-li-search">
+                Provide a file of search terms
+            </label>
+            <div id="oils-acq-li-search-attr-array" class="hidden">
+                <input class="oils-acq-li-search"
+                    name="array_def" dojoType="dijit.form.FilteringSelect"
+                    jsId="attrArrayDefSelector"
+                    labelAttr="description" searchAttr="description" />
+                <span class="oils-acq-li-search">
+                    <span id="records-up">0</span> term(s) prepared for search
+                </span>
+                <span class="oils-acq-li-search" dojoType="dijit.form.Button"
+                    onClick="loadTermsFromFile();">Add file</span>
+                <span class="oils-acq-li-search" dojoType="dijit.form.Button"
+                    onClick="clearTerms();">Clear loaded search terms</span>
+            </div>
+        </div>
+        <div class="oils-acq-li-search-form-row"
+            id="oils-acq-li-search-attr-submit">
+            <span dojoType="dijit.form.Button" type="submit">Search</span>
+        </div>
+    </form>
+</div>
+[% INCLUDE 'acq/common/li_table.tt2' %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/search.js"></script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/lineitem/worksheet.tt2 b/Open-ILS/src/templates/acq/lineitem/worksheet.tt2
new file mode 100644 (file)
index 0000000..58548f6
--- /dev/null
@@ -0,0 +1,11 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "Lineitem Worksheet" %]
+<script type="text/javascript">var liId = "[% ctx.page_args.0 %]";</script>
+<h1>Lineitem Worksheet</h1>
+<br/>
+<div id="acq-worksheet-contents"></div>
+<div class='hidden'>
+    <div jsId='progressDialog' dojoType='openils.widget.ProgressDialog' message='Loading Worksheet...'/>
+</div>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/worksheet.js"></script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/picklist/bib_search.tt2 b/Open-ILS/src/templates/acq/picklist/bib_search.tt2
new file mode 100644 (file)
index 0000000..dd7e83c
--- /dev/null
@@ -0,0 +1,74 @@
+[% WRAPPER 'base.tt2' %]
+<style type="text/css">
+    @import "[% ctx.media_prefix %]/js/dojo/dojox/form/resources/CheckedMultiSelect.css";
+</style>
+
+<script type="text/javascript">
+    var searchOffset = 0;
+</script>
+
+<div id='oils-acq-search-block' class='container'>
+
+    <form dojoType='dijit.form.Form' action='' method=''>
+        <script type="dojo/method" event="onSubmit">
+            doSearch(this.getValues());
+            return false; /* don't redirect */
+        </script>
+        <div id='oils-acq-search-sources-block'>
+            <div id='oils-acq-search-sources-label'>Search Sources</div>
+            <select style='overflow-y:auto;' id='oils-acq-search-source-select' 
+                    multiple='true' jsId="bibSourceSelect" dojoType="dojox.form.CheckedMultiSelect">
+                <option selected='selected' value='native-evergreen-catalog'>Evergreen Catalog</option>
+            </select>
+        </div>
+        <div id='oils-acq-search-form-block'>
+            <div id='oils-acq-search-fields-label'>Search Fields</div>
+            <div id='oils-acq-search-fields'>
+            </div>
+            <table>
+                <tbody id='oils-acq-search-fields-tbody'>
+                    <tr id='oils-acq-search-fields-template'>
+                        <td name='label'> </td>
+                        <td name='input'> </td>
+                    </tr>
+                    <tr id='oils-acq-seach-fields-count-row'>
+                        <td name='label'>Hits Per Source</td>
+                        <td><input name='limit'
+                            dojoType='dijit.form.NumberSpinner'
+                            constraints='{min:5,max:50}'
+                            value='10'></input>
+                        </td>
+                    </tr>
+                    <tr id='oils-acq-search-fields-submit-block'>
+                        <td><div dojoType='dijit.form.Button' type='submit'>Submit</div></td>
+                        <td><div dojoType='dijit.form.Button' onclick='clearSearchForm()'>Clear Form</div></td>
+                    </tr>
+                </tbody>
+            </table>
+        </div>
+    </form>
+</div>
+
+<div id='oils-acq-pl-search-results'>
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Search Results</div>
+        <div>
+            <div id='oils-acq-update-li-progress' class='hidden'>
+                <div dojoType="dijit.ProgressBar" style="width:300px" jsId="liUpdateProgress"></div>
+            </div>
+            <div dojoType='dijit.form.Button' onClick='showDiv("oils-acq-search-block");'>New Search</div>
+        </div>
+    </div>
+    <div dojoType='dijit.layout.ContentPane' layoutAlign='client'>
+        [% INCLUDE 'acq/common/li_table.tt2' %]
+    </div>
+</div>
+
+<div id='oils-acq-pl-loading' style='width:100%;margin-top:100px;display:none;text-align:center'>
+    <img src='[% ctx.media_prefix %]/opac/images/progressbar_green.gif'/>
+</div>
+
+<script type="text/javascript">dojo.style('oils-acq-pl-search-results', 'display', 'none');</script>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/bib_search.js'></script>
+[% END %]
+
diff --git a/Open-ILS/src/templates/acq/picklist/brief_record.tt2 b/Open-ILS/src/templates/acq/picklist/brief_record.tt2
new file mode 100644 (file)
index 0000000..9e10102
--- /dev/null
@@ -0,0 +1,35 @@
+[% WRAPPER 'base.tt2' %]
+<h1>New Brief Record</h1><br/>
+<form dojoType='dijit.form.Form'>
+    <script type='dojo/method' event='onSubmit'>
+        return saveBriefRecord(this.getValues());
+    </script>
+    <table class='oils-generic-table'>
+        <tbody id='acq-brief-record-tbody'>
+            <tr id='acq-brief-record-pl-row'>
+                <td>Add To Selection List</td>
+                <td><select dojoType='dijit.form.ComboBox' jsId='plSelector'/></td>
+            </tr>
+            <tr id='acq-brief-record-po-row'>
+                <td>Adding to Purchase Order</td>
+                <td><input dojoType='dijit.form.TextBox' jsId='poNumber' disabled='disabled'/></td>
+            </tr>
+            <tr id='acq-brief-record-row'>
+                <td><div name='name'/></td>
+                <td><div name='widget'/></td>
+            </tr>
+        </tbody>
+        <tbody>
+            <tr>
+                <td><button dojoType='dijit.form.Button' type='submit'>Save Record</button></td>
+                <!--
+                <td><button dojoType='dijit.form.Button' type='submit' jsId='marcEditButton'>Edit MARC</button></td>
+                -->
+            </tr>
+        </tbody>
+    </table>
+</form>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/brief_record.js'> </script>
+
+[% END %]
diff --git a/Open-ILS/src/templates/acq/picklist/from_bib.tt2 b/Open-ILS/src/templates/acq/picklist/from_bib.tt2
new file mode 100644 (file)
index 0000000..4cd61e0
--- /dev/null
@@ -0,0 +1,24 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "Items by Bibliographic ID" %]
+<div id="acq-frombib-upload-box">
+    <div class="oils-acq-basic-roomy">
+        Provide one or more CSV files whose first columns
+        contain Evergreen bibliographic record IDs.
+    </div>
+    <div class="oils-acq-basic-roomy">
+        <span id="acq-frombib-upload"></span>
+    </div>
+    <div id="acq-frombib-begin-holder" class="oils-acq-basic-roomy hidden">
+        <button id="acq-frombib-begin" onclick="beginSearch();">
+            Retrieve records
+        </button>
+    </div>
+</div>
+<div id="acq-frombib-reload-box" class="oils-acq-basic-roomy hidden">
+    <button onclick="location.href=location.href;">Begin a new search</button>
+</div>
+<hr />
+[% INCLUDE "acq/common/li_table_pager.tt2" %]
+[% INCLUDE "acq/common/li_table.tt2" %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/picklist/from_bib.js"> </script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/picklist/list.tt2 b/Open-ILS/src/templates/acq/picklist/list.tt2
new file mode 100644 (file)
index 0000000..1fd98a6
--- /dev/null
@@ -0,0 +1,107 @@
+[% WRAPPER 'base.tt2' %]
+[% ctx.page_title = 'Selection Lists' %]
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div id='oils-acq-list-header' class='container'>
+        <div id='oils-acq-picklist-my-list-header'>
+            <div id='oils-acq-list-header-label'>My Selection Lists</div>
+        </div>
+    </div>
+</div>
+
+<div class='oils-acq-actions-div' dojoType="dijit.layout.ContentPane" layoutAlign="client">
+
+    <div dojoType="dijit.form.DropDownButton">
+        <span>New Selection List</span>
+        <div dojoType="dijit.TooltipDialog" execute="createPL(arguments[0]);">
+            <table class='dijitTooltipTable'>
+                <tr>
+                    <td><label for="name">Name:</label></td>
+                    <td><input dojoType="dijit.form.TextBox" name="name"/></td>
+                </tr>
+                <tr>
+                    <td colspan='2' align='center'>
+                        <button dojoType='dijit.form.Button' type="submit">Create</button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.form.DropDownButton">
+        <span>Clone Selected</span>
+        <div dojoType="dijit.TooltipDialog" execute="cloneSelectedPl(arguments[0]);">
+            <table class='dijitTooltipTable'>
+                <tr>
+                    <td><label for="name">New Name:</label></td>
+                    <td><input dojoType="dijit.form.TextBox" name="name"/></td>
+                </tr>
+                <tr>
+                    <td colspan='2' align='center'>
+                        <button dojoType='dijit.form.Button' type="submit">Clone</button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.form.DropDownButton">
+        <span>Merge Selected</span>
+        <div dojoType="dijit.TooltipDialog" execute="mergeSelectedPl(arguments[0]);" jsId='plMergeDialog'>
+            <table class='dijitTooltipTable'>
+                <tr>
+                    <td><label for="name">Choose the Lead Selection List:</label></td>
+                    <td><input jsId='plMergeLeadSelector' dojoType="dijit.form.FilteringSelect" name="lead"/></td>
+                </tr>
+                <tr>
+                    <td colspan='2' align='center'>
+                        <button dojoType='dijit.form.Button' type="submit">Merge</button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+    <button dojoType="dijit.form.Button" onclick="deleteFromGrid();">Delete Selected</button>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table 
+            autoHeight='true'
+            jsId="plListGrid" 
+            dojoType="openils.widget.AutoGrid" 
+            query="{id: '*'}" 
+            fieldOrder="['name', 'owner', 'entry_count', 'create_time', 'edit_time']"
+            suppressFields="['editor', 'creator']"
+            query="{id: '*'}"
+            defaultCellWidth='"auto"'
+            fmClass='acqpl'
+            showPaginator='true'
+            editOnEnter='true'>
+        <thead>
+            <tr>
+                <th field="name" formatter='formatName'/>
+                <th field="owner" get='getOwnerName'/>
+                <th field="entry_count">Entry Count</th>
+            </tr>
+        </thead>
+    </table>
+    <div class='hidden'>
+        <div jsId='progressDialog' dojoType='openils.widget.ProgressDialog'/>
+    </div>
+</div>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/view_list.js'></script>
+
+<script type="text/javascript">
+    function formatName(inDatum) {
+        for(var i in plCache){
+            var pl = plCache[i];
+            var id = pl.id();
+            if (inDatum  == pl.name()){
+                return '<a href="[% ctx.base_path %]/acq/picklist/view/'+id+'">'+inDatum+'</a>';
+            }
+        }
+    }
+</script>
+
+[% END %]
diff --git a/Open-ILS/src/templates/acq/picklist/upload.tt2 b/Open-ILS/src/templates/acq/picklist/upload.tt2
new file mode 100644 (file)
index 0000000..31b7620
--- /dev/null
@@ -0,0 +1,97 @@
+[% WRAPPER 'base.tt2' %]
+
+<h1>Upload</h1><br/>
+<form id="acq-pl-upload-form" enctype="multipart/form-data">
+    <input type='hidden' name='ses' id='acq-pl-upload-ses'/>
+    <table class='oils-generic-table'>
+        <tbody>
+            <tr>
+                <td>Create Purchase Order</td>
+                <td>
+                    <input dojoType='dijit.form.CheckBox' name='create_po'></input>
+                </td>
+            </tr>
+            <tr>
+                <td>Activate Purchase Order</td>
+                <td>
+                    <input dojoType='dijit.form.CheckBox' name='activate_po'></input>
+                </td>
+            </tr>
+            <tr>
+                <!-- XXX CHECK IMPORT PERMS TO ENABLE -->
+                <td>Load Bibs and Items into the ILS</td>
+                <td>
+                    <input dojoType='dijit.form.CheckBox' name='create_assets'></input>
+                </td>
+            </tr>
+            <tr>
+                <td>Provider</td>
+                <td><div id='acq-pl-upload-provider'></div></td>
+            </tr>
+            <tr id='acq-pl-upload-agency-row'>
+                <td>Context Org Unit</td>
+                <td><div id='acq-pl-upload-agency'></div></td>
+            </tr>
+            <tr id='acq-pl-upload-picklist'>
+                <td>Add to Selection List</td>
+                <td>
+                    <select jsId='acqPlUploadPlSelector' dojoType='dijit.form.ComboBox'></select>
+                </td>
+            </tr>
+            <tr>
+                <td>Records File</td>
+                <td><input size='36' type="file" name="marc_upload"></input></td>
+            </tr>
+            <tr>
+                <td align='center' colspan='2'>
+                    <button dojoType="dijit.form.Button" onClick="acqUploadRecords()">Upload</button>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+
+    <br/>
+    <br/>
+    <div id="acq-pl-upload-progress" class='hidden'>
+        <div id='acq-pl-upload-progress-bar'>
+            <div dojoType="dijit.ProgressBar" style="width:300px" indeterminate="true"></div>
+        </div>
+        <div>
+            <table class='oils-generic-table'>
+                <tbody>
+                    <tr>
+                        <td>Lineitems Processed</td>
+                        <td><span id='acq-pl-upload-li-processed'>0</span></td>
+                    </tr>
+                    <tr>
+                        <td>Items Processed</td>
+                        <td><span id='acq-pl-upload-lid-processed'>0</span></td>
+                    </tr>
+                    <tr>
+                        <td>Debits Encumbered</td>
+                        <td><span id='acq-pl-upload-debits-processed'>0</span></td>
+                    </tr>
+                    <tr>
+                        <td>Bib Records Imported</td>
+                        <td><span id='acq-pl-upload-bibs-processed'>0</span></td>
+                    </tr>
+                    <tr>
+                        <td>Bib Records Indexed</td>
+                        <td><span id='acq-pl-upload-indexed-processed'>0</span></td>
+                    </tr>
+                    <tr>
+                        <td>Copies Created</td>
+                        <td><span id='acq-pl-upload-copies-processed'>0</span></td>
+                    </tr>
+                </tbody>
+                <tbody id='acq-pl-upload-complete' class='hidden'>
+                    <tr><td colspan='2'>Upload Complete!</td></tr>
+                    <tr><td colspan='2'><a id='acq-pl-upload-complete-po'>View Purchase Order</a></td></tr>
+                    <tr><td colspan='2'><a id='acq-pl-upload-complete-pl'>View Selection List</a></td></tr>
+                </tbody>
+            </table>
+        </div>
+    </div>
+</form>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/upload.js'> </script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/picklist/user_request.tt2 b/Open-ILS/src/templates/acq/picklist/user_request.tt2
new file mode 100644 (file)
index 0000000..3622a60
--- /dev/null
@@ -0,0 +1,66 @@
+[% WRAPPER 'base.tt2' %]
+[% ctx.page_title = 'Patron Requests' %]
+<script type="text/javascript">var reqId = '[% ctx.page_args.0 %]';</script>
+
+    <div dojoType="dijit.layout.StackContainer" id="stackContainer" doLayout="false">
+        <!-- *** List View ********************************************************************************* -->
+        <div dojoType="dijit.layout.ContentPane">
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+                <div>[% ctx.page_title %]</div>
+            </div>
+            <div>
+                <span>Context Org Unit</span>
+                <select 
+                    dojoType="openils.widget.OrgUnitFilteringSelect" 
+                    jsId='contextOrgSelector'
+                    searchAttr='shortname' 
+                    labelAttr='shortname'> 
+                </select>
+            </div>
+            <table  jsId="rGrid"
+                    dojoType="openils.widget.AutoGrid"
+                    query="{id: '*'}"
+                    suppressFields='["id", "usr", "pickup_lib", "holdable_formats", "phone_notify", "email_notify", "lineitem", "eg_bib", "max_fee", "cancel_reason"]'
+                    fieldOrder='["title", "author", "isxn", "article_title", "article_pages", "request_type", "volume", "pubdate", "publisher", "location", "other_info", "mentioned"]'
+                    fmClass='aur'
+                    editStyle='pane'
+                    autoHeight='true'
+                    defaultCellWidth='"auto"'
+                    suppressFields="['id']"
+                    showPaginator='true'
+                    showColumnPicker='true'
+                    columnPickerPrefix='"acq.picklist.user_request"'>
+                    <thead>
+                        <tr>
+                            <th field='title' get='getTitle' formatter='formatTitle'/>
+                        </tr>
+                    </thead>
+            </table>
+        </div>
+        <!-- *** Detail View ********************************************************************************* -->
+        <div dojoType="dijit.layout.ContentPane" style="height: 100%;">
+            <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+                <div>Patron Request</div>
+                <div>
+                    <button dojoType="dijit.form.Button" onClick="location.href=oilsBasePath+'/acq/picklist/user_request'">[% ctx.page_title %]</button>
+                    <button dojoType="dijit.form.Button" onClick="fooPicklist()"><span id="add_to_picklist">Add to Selection List</span><span id="view_picklist">View Selection List</span></button>
+                    <button dojoType="dijit.form.Button" onClick="setNoHold()">Set No Hold</button>
+                    <span dojoType="dijit.form.DropDownButton">
+                        <span>Cancel Request</span>
+                        <span dojoType="dijit.TooltipDialog">
+                            <label for="acq-ur-cancel-reason">
+                                Reason:
+                            </label>
+                            <span id="acq-ur-cancel-reason"></span>
+                            <button jsId="acqUrCancelReasonSubmit"
+                                dojoType="dijit.form.Button"
+                                type="submit">Cancel Request</button>
+                        </span>
+                    </span>
+                </div>
+            </div>
+            <div id="detail_content_pane" />
+        </div>
+    </div>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/user_request.js'></script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/picklist/view.tt2 b/Open-ILS/src/templates/acq/picklist/view.tt2
new file mode 100644 (file)
index 0000000..a209c3e
--- /dev/null
@@ -0,0 +1,20 @@
+[% WRAPPER 'base.tt2' %]
+[% ctx.page_title = 'Selection List' %]
+<div dojoType="dijit.layout.ContentPane" style="height:100%">
+    <div class='container'>
+        <div id='oils-acq-picklist-header'>
+            Selection list <span id='oils-acq-picklist-name'> </span>
+            <div class='oils-acq-picklist-attributes'>
+                <div>Create date: <span id="oils-acq-picklist-attr-cdate"></span></div>
+                <div>Last updated: <span id="oils-acq-picklist-attr-edate"></span></div>
+                <div>Selector: <span id="oils-acq-picklist-attr-owner"></span></div>
+                <div>Entry Count: <span id="oils-acq-picklist-attr-count"></span></div>
+            </div>
+        </div>
+    </div>
+    <script type="text/javascript">var plId = '[% ctx.page_args.0 %]';</script>
+    [% INCLUDE 'acq/common/li_table.tt2' %]
+</div>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/view.js'></script>
+[% END %]
+
diff --git a/Open-ILS/src/templates/acq/po/create.tt2 b/Open-ILS/src/templates/acq/po/create.tt2
new file mode 100644 (file)
index 0000000..01473d2
--- /dev/null
@@ -0,0 +1,5 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "Create Purchase Order" %]
+<h1>Create Purchase Order</h1>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/po/create.js"> </script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/po/edi_messages.tt2 b/Open-ILS/src/templates/acq/po/edi_messages.tt2
new file mode 100644 (file)
index 0000000..c936616
--- /dev/null
@@ -0,0 +1,46 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "EDI Messages" %]
+[% IF ctx.page_args.0 %]
+<h1>EDI Messages (Purchase Order [% ctx.page_args.0 %])</h1>
+[% ELSE %]
+<h1>EDI Messages</h1>
+[% END  %]
+<br/>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="edimGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            defaultCellWidth="'auto'"
+            query="{id: '*'}"
+            [% IF ctx.page_args.0 %]
+            fieldOrder="['message_type', 'status', 'create_time', 'translate_time', 'process_time', 'error_time', 'error', 'account', 'remote_file']"
+            suppressFields="['id', 'edi', 'jedi', 'purchase_order']"
+            [% ELSE %]
+            fieldOrder="['purchase_order', 'message_type', 'status', 'create_time', 'translate_time', 'process_time', 'error_time', 'error', 'account', 'remote_file']"
+            suppressFields="['id', 'edi', 'jedi']"
+            [% END  %]
+            editStyle='pane'
+            fmClass='acqedim'
+            editOnEnter='true'
+            editReadOnly='true'
+            showPaginator='true'>
+    </table>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    dojo.require('openils.widget.Textarea');
+
+    var poId = "[% ctx.page_args.0 %]";
+    openils.Util.addOnLoad(
+        function() {
+            if (poId) {
+                edimGrid.loadAll({order_by : {acqedim :  'create_time DESC'}}, {purchase_order : poId});
+            } else  {
+                edimGrid.loadAll({order_by : {acqedim :  'create_time DESC'}});
+            }
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/po/events.tt2 b/Open-ILS/src/templates/acq/po/events.tt2
new file mode 100644 (file)
index 0000000..03c183e
--- /dev/null
@@ -0,0 +1,64 @@
+[% WRAPPER base.tt2 %]
+
+<!-- grid -->
+
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+            <div>PO Triggered Events</div>
+            <div>
+                <button dojoType="dijit.form.Button" onClick="eventGrid.cancelSelected()">Cancel Selected</button>
+                <button dojoType="dijit.form.Button" onClick="eventGrid.resetSelected()">Reset Selected</button>
+            </div>
+        </div>
+        <div class="oils-acq-basic-form-div">
+            <span>
+                <label for="state">State</label>
+                <select name="state"
+                    dojoType="dijit.form.FilteringSelect"
+                    jsId="eventStateSelect"
+                    searchAttr="name"
+                    labelAttr="name"></select>
+            </span>
+            <span>
+                <label for="orgUnit">Context Org Unit</label>
+                <select name="orgUnit" 
+                    dojoType="openils.widget.OrgUnitFilteringSelect" 
+                    jsId="eventContextOrgSelect"
+                    searchAttr="shortname" 
+                    labelAttr="shortname"></select>
+            </span>
+            <span>
+                <label for="startDate">Start Date Range</label>
+                <input name="startDate"
+                    type="text"
+                    dojoType="dijit.form.DateTextBox"
+                    jsId="eventStartDatePicker" />
+            </span>
+            <span>
+                <label for="endDate">End Date Range</label>
+                <input name="endDate"
+                    type="text"
+                    dojoType="dijit.form.DateTextBox"
+                    jsId="eventEndDatePicker" />
+            </span>
+            <button dojoType="dijit.form.Button" onClick="eventGrid.doSearch()">Search</button>
+        </div>
+        <table  jsId="eventGrid"
+                dojoType="openils.widget.AutoGrid"
+                query="{id: '*'}"
+                fmClass="atev"
+                suppressFields="['update_process','user_data','template_output','error_output','async_output','event_def']"
+                defaultCellWidth="'auto'"
+                editOnEnter="false">
+            <thead>
+                <tr>
+                    <th field="target" formatter="format_po_link">Purchase Order</th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+</div>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/po/events.js"> </script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/acq/po/history.tt2 b/Open-ILS/src/templates/acq/po/history.tt2
new file mode 100644 (file)
index 0000000..ad92007
--- /dev/null
@@ -0,0 +1,30 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "PO History" %]
+<h1>Purchase Order History</h1>
+<br/>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="pohGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            defaultCellWidth="'auto'"
+            fieldOrder="['audit_time', 'name', 'state', 'ordering_agency', 'provider', 'create_time', 'edit_time', 'order_date', 'creator', 'editor', 'owner']"
+            query="{audit_id: '*'}"
+            suppressFields='["id", "audit_id", "audit_action"]'
+            fmClass='acqpoh'
+            editOnEnter='true'
+            editReadOnly='true'
+            showPaginator='true'>
+    </table>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    var poId = "[% ctx.page_args.0 %]";
+    openils.Util.addOnLoad(
+        function() {
+            pohGrid.loadAll({order_by : {acqpoh :  'audit_time DESC'}}, {id : poId});
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/po/item_table.tt2 b/Open-ILS/src/templates/acq/po/item_table.tt2
new file mode 100644 (file)
index 0000000..1948b6d
--- /dev/null
@@ -0,0 +1,34 @@
+<div id="acq-po-item-table" class="hidden">
+    <h3>Direct Charges, Taxes, Fees, etc.</h3>
+    <table>
+        <thead id="acq-po-item-table-headings">
+            <tr>
+                <th>Charge Type</th>
+                <th>Fund</th>
+                <th>Title/Description</th>
+                <th>Author</th>
+                <th>Note</th>
+                <th>Estimated Cost</th>
+                <th><!-- Delete --></th>
+            </tr>
+        </thead>
+        <tbody id="acq-po-item-table-items">
+            <tr>
+                <td name="inv_item_type" em="12"></td>
+                <td name="fund" em="10"></td>
+                <td name="title" em="12"></td>
+                <td name="author" em="8"></td>
+                <td name="note" em="12"></td>
+                <td name="estimated_cost" em="8"></td>
+                <td><button name="delete">X</button></td>
+            </tr>
+        </tbody>
+    </table>
+    <div id="acq-po-item-table-i-am-empty" class="hidden">
+        <em>There are no miscellanea attached to this purchase order.</em>
+    </div>
+    <div id="acq-po-item-table-controls">
+        <button id="acq-po-item-table-new-charge">New Charge</button> &nbsp;
+        <button id="acq-po-item-table-save-new">Save New Charges</button>
+    </div>
+</div>
diff --git a/Open-ILS/src/templates/acq/po/search.tt2 b/Open-ILS/src/templates/acq/po/search.tt2
new file mode 100644 (file)
index 0000000..ff3a1c1
--- /dev/null
@@ -0,0 +1,143 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Purchase Orders' %]
+<script type="text/javascript">
+    var poIds = function(s) {
+        return s == "" ? undefined :
+            s.split(",").map(function(t) { return Number(t); });
+    }("[% ctx.page_args.0 %]");
+</script>
+<div id='oils-acq-list-header' class='container'>
+    <div id='oils-acq-list-header-label'>PO Search</div>
+</div>
+
+<div id="oils-acq-po-heading-template" class="hidden">
+    <span>Purchase Order: <a attr="name"></a></span>
+    <span>Total Lineitems: <span attr="lineitem_count"></span></span>
+    <span>Total Encumbered: $<span attr="amount_encumbered"></span></span>
+    <span>Total Spent: $<span attr="amount_spent"></span></span>
+    <span>Total Copies: <span attr="copies"></span></span>
+    <span>Status: <span attr="state"></span></span>
+    <span><a class="hidden" attr="activator" href="javascript:void(0);">Activate Order</a></span>
+</div>
+
+<script type="text/javascript">
+    function formatId(id) {
+        if(id) return '<a href="[% ctx.base_path %]/acq/po/view/' + id + '">'+id;
+    }
+</script>
+
+
+<form dojoType='dijit.form.Form' action='' method='' id='oils-acq-po-search-form'>
+
+    <script type="dojo/method" event="onSubmit">
+        doSearch(this.getValues());
+        return false; /* don't redirect */
+    </script>
+
+    <div class='oils-acq-basic-form-div'>
+
+        <label for='id'>ID</label>
+        <input dojoType='dijit.form.NumberTextBox' name='id'> </input>
+
+        <label for='provider'>Provider</label>
+        <input id='po-search-provider-selector'/>
+
+        <label for='state'>State</label></td>
+        <script type="text/javascript">
+            dojo.require('dojo.data.ItemFileReadStore');
+            var stateStore = new dojo.data.ItemFileReadStore({
+                data : {
+                    identifier:"value",
+                    label: "name",
+                    items: [
+                        /* FIXME This is probably not the correct final list of 
+                        possible states */
+                        {name:"New", value:'new'},
+                        {name:"In Process", value:'in-process'},
+                        {name:"Pending", value:'pending'},
+                        {name:"On order", value:'on-order'}
+                    ]
+                }
+            });
+        </script>
+        <input dojoType='dijit.form.FilteringSelect' 
+            name='state' 
+            required='false' 
+            store='stateStore' 
+            labelAttr='name' 
+            valueAttr='value' 
+            searchAttr='name'/>
+
+        <label for='ordering_agency'>Ordering Agency</label>
+        <input id='po-search-agency-selector'/>
+
+        <span dojoType='dijit.form.Button' type='submit'>Search</span>
+    </div>
+    <div class="oils-acq-basic-form-div">
+        <input dojoType="dijit.form.CheckBox" value="1" name="metapo_view"
+            id="metapo_view" type="checkbox" />
+        <label for="metapo_view">Show results as a virtual combined PO</label>
+    </div>
+</form>
+<br/>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" id="holds_po_grid">
+    <table 
+            id="po-grid" 
+            autoHeight='true'
+            jsId="poGrid" 
+            dojoType="openils.widget.AutoGrid" 
+            query="{id: '*'}" 
+            fieldOrder="['id', 'owner', 'ordering_agency', 'provider', 'create_time', 'edit_time', 'state']"
+            suppressFields="['owner', 'editor', 'creator']"
+            query="{id: '*'}"
+            defaultCellWidth='"auto"'
+            showSequenceFields='true'
+            showPaginator='true'
+            fmClass='acqpo'> 
+        <thead> 
+            <tr> 
+                <th field="id" formatter='formatId'>ID</th> 
+                <!--
+                <th field="owner" get='getPOOwner'/>
+                -->
+            </tr> 
+        </thead> 
+    </table>     
+    <div comment='dojo-needs-me'></div>
+</div>
+<div id="oils-acq-holds-metapo-summary" class="hidden">
+    <table id="oils-acq-metapo-summary">
+        <thead>
+            <tr>
+                <th colspan="2">Results Summary</th>
+            </tr>
+        </thead>
+        <tbody>
+            <tr>
+                <th>Total Purchase Orders:</th>
+                <td id="oils-acq-metapo-summary-po"></td>
+            </tr>
+            <tr>
+                <th>Total Lineitems:</th>
+                <td id="oils-acq-metapo-summary-lineitem_count"></td>
+            </tr>
+            <tr>
+                <th>Total Copies:</th>
+                <td id="oils-acq-metapo-summary-copies"></td>
+            </tr>
+            <tr>
+                <th>Total Encumbered:</th>
+                <td>$<span id="oils-acq-metapo-summary-amount_encumbered"></span></td>
+            </tr>
+            <tr>
+                <th>Total Spent:</th>
+                <td>$<span id="oils-acq-metapo-summary-amount_spent"></span></td>
+            </tr>
+        </tbody>
+    </table>
+</div>
+[% INCLUDE 'acq/common/li_table.tt2' %]
+
+<!-- load the page-specific JS -->
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/po/search.js'> </script>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/po/view.tt2 b/Open-ILS/src/templates/acq/po/view.tt2
new file mode 100644 (file)
index 0000000..55f6679
--- /dev/null
@@ -0,0 +1,138 @@
+[% WRAPPER 'base.tt2' %]
+[% ctx.page_title = "Purchase Order" %]
+<div dojoType="dijit.layout.ContentPane" style="height:100%">
+    <div>
+        <div id='oils-acq-picklist-header'>
+            <big>
+                Purchase Order (<span id="acq-po-view-state"></span>) 
+            </big>
+            <span id='acq-po-activated-on' class='hidden'></span>
+            <table class="oils-generic-table acq-po-info">
+                <tr>
+                    <th>ID</th><td><a id="acq-po-view-id"/></td>
+                    <th>Prepayment Required?</th>
+                    <td><span id="acq-po-view-prepay"/></td>
+                </tr>
+                <tr>
+                    <th>Name</th>
+                    <td><a id="acq-po-view-name" href="javascript:void(0);"
+                        onclick="updatePoName()"></a></td>
+                    <th>Activatable?</th>
+                    <td>
+                        <span id="acq-po-activate-checking"></span>
+                        <a class="hidden" id="acq-po-activate-link" href="javascript:void(0);" onclick="activatePo()">Activate Order</a>
+                    </td>
+                </tr>
+                <tr>
+                    <th>Provider</th>
+                    <td><span id="acq-po-view-provider"/></td>
+                    <th>Notes</th>
+                    <td>
+                        <a href="javascript:void(0);"
+                            id="acq-po-view-notes"></a>
+                    </td>
+                </tr>
+                <tr>
+                    <th>Total Lineitems</th>
+                    <td><span id="acq-po-view-total-li"/></td>
+                    <th>EDI Messages</th>
+                    <td>
+                        <a href="javascript:void(0);"
+                            id="acq-po-view-edi-messages"></a>
+                    </td>
+                </tr>
+                <tr>
+                    <th>Total Estimated</th>
+                    <td>$<span id="acq-po-view-total-estimated"/></td>
+                    <th>History</th>
+                    <td>
+                        <a class="hidden" href="javascript:void(0);"
+                            id="acq-po-view-history">View</a>
+                    </td>
+                </tr>
+                <tr>
+                    <th>Total Encumbered</th>
+                    <td>$<span id="acq-po-view-total-enc"/></td>
+                    <th>Invoicing</th>
+                    <td id="acq-po-invoice-stuff" class="hidden">
+                        <button dojoType="dijit.form.Button"
+                            id="acq-po-view-invoice-link">
+                            View Invoices
+                            (<span id="acq-po-view-invoice-count"></span>)
+                        </button> &nbsp;
+                        <button dojoType="dijit.form.Button"
+                            id="acq-po-create-invoice-link">
+                            Create Invoice
+                        </button> &nbsp;
+                        <button dojoType="dijit.form.DropDownButton">
+                            <span>Link Invoice</span>
+                            <div dojoType="dijit.TooltipDialog"
+                                id="acq-po-link-invoice">
+                                <script type="dojo/connect" event="onOpen">
+                                    if (!invoiceLinkDialogManager) {
+                                        invoiceLinkDialogManager =
+                                            new InvoiceLinkDialogManager(
+                                                "po", PO
+                                            );
+                                    }
+                                </script>
+                                [% INCLUDE "acq/common/inv_dialog.tt2"
+                                    which = "po" %]
+                            </div>
+                        </button>
+                    </td>
+                </tr>
+                <tr>
+                    <th>Total Spent</th>
+                    <td>$<span id="acq-po-view-total-spent"/></td>
+                    <th id="acq-po-cancel-label"></th>
+                    <td>
+                        <span id="acq-po-view-cancel-reason"></span>
+                        <span id="acq-po-choose-cancel-reason" class="hidden">
+                            <span dojoType="dijit.form.DropDownButton">
+                                <span>Cancel order</span>
+                                <span dojoType="dijit.TooltipDialog">
+                                    <label for="acq-po-cancel-reason">
+                                        Reason:
+                                    </label>
+                                    <span id="acq-po-cancel-reason"></span>
+                                    <button jsId="acqPoCancelReasonSubmit"
+                                        dojoType="dijit.form.Button"
+                                        type="submit">Cancel order</button>
+                                </span>
+                            </span>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan='3'>
+                        <a class="hidden" id="acq-po-split" href="javascript:void(0);"
+                            onclick="if (confirm(localeStrings.CONFIRM_SPLIT_PO)) splitPo();">
+                            Split Order by Lineitems
+                        </a>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+    <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/base64.js"></script>
+    <script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/po/view_po.js'></script>
+    <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/po/item_table.js"></script>
+    <script type="text/javascript">
+        var poId = "[% ctx.page_args.1 %]";
+        var liFocus = "[% ctx.page_args.0 %]";
+        if (liFocus && !poId) {
+            poId = liFocus;
+            liFocus = null;
+        }
+    </script>
+    [% INCLUDE 'acq/common/li_table.tt2' %]
+    [% INCLUDE "acq/common/notes.tt2" which = "Po" %]
+    <div class='hidden' id='acq-po-no-lineitems'>
+        <button type='dijit.form.Button' onclick='location.href = oilsBasePath + "/acq/picklist/brief_record?po=" + poId'>
+            Add Brief Record
+        </button>
+    </div>
+    [% INCLUDE "acq/po/item_table.tt2" %]
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/receiving/process.tt2 b/Open-ILS/src/templates/acq/receiving/process.tt2
new file mode 100644 (file)
index 0000000..17ff83c
--- /dev/null
@@ -0,0 +1,38 @@
+[% WRAPPER base.tt2 %]
+    <h1>Receiving Processing</h1><br/>
+    <div id='oils-acq-recv-search-block' class='container'>
+        <form dojoType='dijit.form.Form' action='' method=''>
+            <script type="dojo/method" event="onSubmit">
+                doSearch(this.getValues());
+                return false; /* don't redirect */
+            </script>
+            <table class='oils-acq-basic-form-table'>
+                <tr>
+                    <td><label for='identifier'>Identifier</label></td>
+                    <td>
+                        <input dojoType='dijit.form.TextBox' name='identifier'/>
+                    </td>
+                </tr>
+                <tr>
+                    <td><label for="name">Ordering Agency:</label></td>
+                    <td>
+                        <input dojoType="openils.widget.OrgUnitFilteringSelect" jsId='orderingAgencySelect'
+                            searchAttr="shortname" name="ordering_agency" autocomplete="true" labelAttr='shortname'> </input>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan='2'><div dojoType='dijit.form.Button' type='submit'>Search</div></td>
+                </tr>
+            </table>
+        </form>
+    </div>
+    <div dojoType="dijit.ProgressBar" style="width:300px" jsId="searchProgress" id="searchProgress"></div>
+    <script type="text/javascript">dojo.style('searchProgress', 'visibility', 'hidden');</script>
+    <div id='oils-acq-recv-grid' style='height:100%'>
+        [% grid_jsid = 'liGrid'; domprefix = 'oils-acq-recv' %]
+        [% INCLUDE 'acq/common/jubgrid.tt2' %]
+    </div>
+    <script type="text/javascript">dojo.style('oils-acq-recv-grid', 'visibility', 'hidden');</script>
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/receiving/process.js'> </script>
+[% END %]
+
diff --git a/Open-ILS/src/templates/acq/search/unified.tt2 b/Open-ILS/src/templates/acq/search/unified.tt2
new file mode 100644 (file)
index 0000000..68e7dcd
--- /dev/null
@@ -0,0 +1,246 @@
+[% WRAPPER "base.tt2" %]
+[% ctx.page_title = "Acquisitions Search" %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/base64.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/search/unified.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/search/invoice.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/search/picklist.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/search/purchase_order.js"></script>
+<div id="acq-unified-body" class="hidden">
+    <div id="acq-unified-heading">
+        <span id="acq-unified-heading-actual">Acquisitions Search</span>
+        <span id="acq-unified-heading-controls">
+            <button id="acq-unified-hide-form" onclick="hideForm();">
+                Hide Search Form
+            </button>
+            <button id="acq-unified-reveal-form" onclick="revealForm();"
+                class="hidden">
+                Reveal Search Form
+            </button>
+        </span>
+        <div style="clear: both;"><!-- layout; don't remove --></div>
+    </div>
+    <div id="acq-unified-form">
+        <div>
+            <label for="acq-unified-result-type">Search for</label>
+            <select id="acq-unified-result-type">
+                <option value="lineitem">line items</option>
+                <option value="lineitem_and_bib">
+                    line items &amp; catalog records
+                </option>
+                <option value="picklist">selection lists</option>
+                <option value="purchase_order">purchase orders</option>
+                <option value="invoice">invoices</option>
+            </select>
+            <label for="acq-unified-conjunction">matching</label>
+            <select id="acq-unified-conjunction">
+                <option value="and">all</option>
+                <option value="or">any</option>
+            </select>
+            <label for="acq-unified-conjunction">
+                of the following terms:
+            </label>
+        </div>
+        <div id="acq-unified-terms">
+            <table id="acq-unified-terms-table">
+                <tbody id="acq-unified-terms-tbody">
+                    <tr id="acq-unified-terms-row-tmpl"
+                        class="acq-unified-terms-row">
+                        <td name="selector"
+                            class="acq-unified-terms-selector"></td>
+                        <td name="match"
+                            class="acq-unified-terms-match">
+                            <select>
+                                <option value="">is</option>
+                                <option value="__not">is NOT</option>
+                                <option value="__fuzzy" disabled="disabled">
+                                    contains
+                                </option>
+                                <option value="__not,__fuzzy"
+                                    disabled="disabled">
+                                    does NOT contain
+                                </option>
+                                <option value="__lte" disabled="disabled">
+                                    is on or BEFORE
+                                </option>
+                                <option value="__gte" disabled="disabled">
+                                    is on or AFTER
+                                </option>
+                                <option value="__in" disabled="disabled">
+                                    matches a term from a file
+                                </option>
+                            </select>
+                        </td>
+                        <td name="widget"
+                            class="acq-unified-terms-widget"></td>
+                        <td name="remove"
+                            class="acq-unified-terms-remove"></td>
+                    </tr>
+                </tbody>
+            </table>
+        </div>
+        <div id="acq-unified-add-term">
+            <button onclick="termManager.addRow()">Add Search Term</button>
+        </div>
+        <div>
+            <button
+                onclick="resultManager.go(termManager.buildSearchObject())">
+                Search
+            </button>
+        </div>
+    </div>
+    <div id="acq-unified-results-purchase_order" class="hidden">
+        <div class="acq-unified-result-specific-controls">
+            <button onclick="dijit.byId('acq-unified-po-grid').refresh();">
+                Refresh Grid
+            </button>
+        </div>
+        <table
+            id="acq-unified-po-grid"
+            autoHeight="true"
+            dojoType="openils.widget.AutoGrid"
+            query="{id: '*'}"
+            fieldOrder="['name', 'owner', 'ordering_agency', 'provider',
+                'create_time', 'edit_time', 'state']"
+            suppressFields="['owner', 'editor', 'creator']"
+            defaultCellWidth="'auto'"
+            showPaginator="true"
+            fmClass="acqpo">
+            <thead>
+                <tr>
+                    <th field="name" get="getName" formatter="formatPoName">
+                        Name
+                    </th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+    <div id="acq-unified-results-picklist" class="hidden">
+        <div class="acq-unified-result-specific-controls">
+            <button dojoType="dijit.form.Button"
+                onClick="dijit.byId('acq-unified-pl-grid').refresh();">
+                Refresh Grid
+            </button>
+            <div dojoType="dijit.form.DropDownButton">
+                <span>New Selection List</span>
+                <div dojoType="dijit.TooltipDialog"
+                    execute="createPl(arguments[0]);">
+                    <table class="dijitTooltipTable">
+                        <tr>
+                            <td><label for="name">Name:</label></td>
+                            <td><input dojoType="dijit.form.TextBox"
+                                name="name"/></td>
+                        </tr>
+                        <tr>
+                            <td colspan="2" align="center">
+                                <button dojoType="dijit.form.Button"
+                                    type="submit">Create</button>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+            <div dojoType="dijit.form.DropDownButton">
+                <span>Clone Selected</span>
+                <div dojoType="dijit.TooltipDialog"
+                    execute="cloneSelectedPl(arguments[0]);">
+                    <table class="dijitTooltipTable">
+                        <tr>
+                            <td><label for="name">New Name:</label></td>
+                            <td><input dojoType="dijit.form.TextBox"
+                                name="name"/></td>
+                        </tr>
+                        <tr>
+                            <td colspan="2" align="center">
+                                <button dojoType="dijit.form.Button"
+                                    type="submit">Clone</button>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+            <div dojoType="dijit.form.DropDownButton">
+                <span>Merge Selected</span>
+                <div dojoType="dijit.TooltipDialog"
+                    execute="mergeSelectedPl(arguments[0]);"
+                    jsId="plMergeDialog">
+                    <script type="dojo/connect" event="onOpen">
+                        loadLeadPlSelector();
+                    </script>
+                    <table class="dijitTooltipTable">
+                        <tr>
+                            <td><label for="name">Choose the Lead
+                                 Selection List:</label></td>
+                             <td><input jsId="plMergeLeadSelector"
+                                 dojoType="dijit.form.FilteringSelect"
+                                 name="lead" /></td>
+                        </tr>
+                        <tr>
+                            <td colspan="2" align="center">
+                                <button dojoType="dijit.form.Button"
+                                    type="submit">Merge</button>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+            <button dojoType="dijit.form.Button"
+                onclick="deleteSelectedPl();">Delete Selected</button>
+        </div>
+        <table
+            id="acq-unified-pl-grid"
+            autoHeight="true"
+            dojoType="openils.widget.AutoGrid"
+            query="{id: '*'}"
+            fieldOrder="['name', 'owner', 'entry_count',
+                'create_time', 'edit_time']"
+            suppressFields="['editor', 'creator']"
+            defaultCellWidth="'auto'"
+            showPaginator="true"
+            fmClass="acqpl">
+            <thead>
+                <tr>
+                    <th field="name" get="getName" formatter="formatPlName">
+                        Name
+                    </th>
+                    <th field="owner" get="getPlOwnerName">Owner</th>
+                    <th field="entry_count">Entry Count</th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+    <div id="acq-unified-results-invoice" class="hidden">
+        <div class="acq-unified-result-specific-controls">
+            <button onclick="dijit.byId('acq-unified-inv-grid').refresh();">
+                Refresh Grid
+            </button>
+            <button onclick="printInvoiceVouchers();">
+                Print Selected Invoices
+            </button>
+        </div>
+        <table
+            id="acq-unified-inv-grid"
+            autoHeight="true"
+            dojoType="openils.widget.AutoGrid"
+            query="{id: '*'}"
+            fieldOrder="['inv_ident', 'receiver', 'provider', 'shipper']"
+            defaultCellWidth="'auto'"
+            showPaginator="true"
+            fmClass="acqinv">
+            <thead>
+                <tr>
+                    <th field="inv_ident" get="getInvIdent"
+                        formatter="formatInvIdent"></th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+    <div id="acq-unified-results-no_results" class="hidden">
+        There are no results from your search.
+    </div>
+    <div id="acq-unified-results-lineitem" class="hidden">
+        [% INCLUDE "acq/common/li_table_pager.tt2" %]
+        [% INCLUDE "acq/common/li_table.tt2" %]
+    </div>
+    <div jsId='progressDialog' dojoType='openils.widget.ProgressDialog'/>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/acq/settings/li_attr.tt2 b/Open-ILS/src/templates/acq/settings/li_attr.tt2
new file mode 100644 (file)
index 0000000..d096f96
--- /dev/null
@@ -0,0 +1,74 @@
+[% WRAPPER base.tt2 %]
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top">
+    <div dojoType="dijit.form.DropDownButton">
+        <span>Lineitem Attribute Attribute</span>
+        <div dojoType="dijit.TooltipDialog" execute="createOrderRecordField(arguments[0]);">
+            <script type='dojo/connect' event='onOpen'>//setORDesc();</script>
+            <table class='dijitTooltipTable'>
+                <tr>
+                    <td><label for="code">Code:</label></td>
+                    <td><input dojoType='dijit.form.TextBox' name='code'/></td>
+                </tr>
+                <tr>
+                    <td><label for="description">Description: </label></td>
+                    <td><input id='oils-acq-provider-or-desc' dojoType="dijit.form.TextBox" name="description"> </input></td>
+                </tr>
+                <tr>
+                    <td><label for="amount">Tag: </label></td>
+                    <td><input dojoType="dijit.form.TextBox" name="tag"></input></td>
+                </tr>
+                <tr>
+                    <td><label for="amount">Subfield: </label></td>
+                    <td><input dojoType="dijit.form.TextBox" name="subfield"></input></td>
+                </tr>
+                <tr>
+                    <td><label for="ident">Identifer Field?: </label></td>
+                    <td>
+                        <select dojoType="dijit.form.FilteringSelect" name="ident">
+                            <option value='f' selected='selected'>False</option>
+                            <option value='t'>True</option>
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <td><label for="amount">XPath (advanced): </label></td>
+                    <td><input dojoType="dijit.form.TextBox" name="xpath"></input></td>
+                </tr>
+                <tr>
+                    <td colspan='2' align='center'>
+                        <button dojoType=dijit.form.Button type="submit">Apply</button>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+    <script type="text/javascript">
+        var liAttrGridLayout = [{
+            cells : [[
+                {name: 'ID', field: 'id'},
+                {name: 'Code', field:'code', width:'auto'},
+                {name: 'Description', field: "description", width:'auto'}, 
+                {name: 'Tag', get:getTag},
+                {name: 'Subfield', get:getSubfield},
+                {name: 'Identifier', field:'ident'},
+                {name: 'XPath', field:'xpath', width:'auto'}
+            ]]
+        }];
+    </script>
+    <div dojoType="dijit.layout.TabContainer">
+        <div dojoType="dijit.layout.ContentPane" 
+                class='oils-acq-detail-content-pane' title="MARC Attributes" style='height:600px;'>
+            <script type='dojo/connect' event='onShow'>loadMarcAttrGrid();</script>
+            <div jsId='liMarcAttrGrid' dojoType="dojox.Grid" structure='liAttrGridLayout'> </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" 
+                class='oils-acq-detail-content-pane' title="Generated Attributes" style='height:600px;'>
+            <script type='dojo/connect' event='onShow'>loadGeneratedAttrGrid();</script>
+            <div jsId='liGeneratedAttrGrid' dojoType="dojox.Grid" structure='liAttrGridLayout'> </div>
+        </div>
+    </div>
+</div>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/settings/li_attr.js'></script>
+[% END %]
diff --git a/Open-ILS/src/templates/actor/user/register.tt2 b/Open-ILS/src/templates/actor/user/register.tt2
new file mode 100644 (file)
index 0000000..71f0f4e
--- /dev/null
@@ -0,0 +1,73 @@
+[% ctx.page_title = 'User Editor' %]
+[% WRAPPER base.tt2 %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/actor/user/register.js'></script>
+<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/register.css" />
+
+<div dojoType="dijit.form.Form" id="myForm" jsId="myForm" encType="multipart/form-data" action="" method="">
+    <script type="dojo/method" event="onSubmit">
+        /* we don't want to use the form action, but uEditSave and UEditSaveClone from the Save buttons.  We
+            do want to use the Form's validation features, which we do from within UEditSave, etc. */
+        return false;
+    </script>
+    <table>
+        [% INCLUDE actor/user/register_table.tt2 %]
+    </table>
+</div>
+
+<div id='uedit-save-div'>
+    <button dojoType='dijit.form.Button' jsId='saveButton' onClick='uEditSave' scrollOnFocus='false'></button>
+    <button dojoType='dijit.form.Button' jsId='saveCloneButton' onClick='uEditSaveClone' scrollOnFocus='false'></button>
+    <div id='require-toggle'>
+        <a href='javascript:uEditToggleRequired(1);' id='uedit-show-required'>Show Only Required Fields</a><br id='uedit-show-required-br'/>
+        <a href='javascript:uEditToggleRequired(2);' id='uedit-show-suggested'>Show Suggested Fields</a><br id='uedit-show-suggested-br'/>
+        <a href='javascript:uEditToggleRequired(0);' id='uedit-show-all' class='hidden'>Show All Fields</a>
+    </div>
+</div>
+
+<!-- context help widget -->
+<a class='hidden' id='uedit-help-template'><img src='/opac/images/advancedsearch-icon.png'></img></a>
+<fieldset id='uedit-help-div' class='hidden'>
+    <legend id='uedit-help-field'/>
+    <div id='uedit-help-text'/>
+</fieldset>
+
+<!-- duplicate patron search results -->
+<div id='uedit-dupe-div' class='hidden'>
+    <div><a href='javascript:void(0);' id='uedit-dupe-names-link'></a></div>
+    <div><a href='javascript:void(0);' id='uedit-dupe-email-link'></a></div>
+    <div><a href='javascript:void(0);' id='uedit-dupe-ident-link'></a></div>
+    <div><a href='javascript:void(0);' id='uedit-dupe-phone-link'></a></div>
+    <div><a href='javascript:void(0);' id='uedit-dupe-address-link'></a></div>
+</div>
+
+<div class='hidden'>
+    <span id='true' style='color:green;'>&#x2713;</span>
+    <span id='false' style='color:red;'>&#x2717;</span>
+    <div dojoType='dijit.Dialog' jsId='allCardsDialog'>
+        <table class='oils-generic-table' style='margin:10px;'>
+            <thead>
+                <tr>
+                    <th>Barcode</th>
+                    <th>Active</th>
+                </tr>
+            </thead>
+            <tbody id='uedit-all-cards-tbody'>
+                <tr id='uedit-all-cards-tr-template'>
+                    <td><div name='barcode'></div></td>
+                    <td><div name='active'></div></td>
+                </tr>
+            </tbody>
+            <tbody>
+                <tr>
+                    <td colspan='2' style='text-align:center;'>
+                        <button dojoType='dijit.form.Button' onClick='allCardsDialog.hide()' scrollOnFocus='false'>Close</button>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+
+
+[% END %]
+
diff --git a/Open-ILS/src/templates/actor/user/register_table.tt2 b/Open-ILS/src/templates/actor/user/register_table.tt2
new file mode 100644 (file)
index 0000000..5528252
--- /dev/null
@@ -0,0 +1,112 @@
+<tbody id='uedit-tbody'>
+    <tr fmclass='ac' fmfield='barcode' required='required'>
+        <td/><td/><td/>
+        <td>
+            <button dojoType='dijit.form.Button' jsId='replaceBarcode' scrollOnFocus='false'></button>
+            <span id='uedit-dupe-barcode-warning' style='color:red; font-weight:bold' class='hidden'>
+            </span>
+        </td>
+        <td id='uedit-all-barcodes' class='hidden'>
+            <button dojoType='dijit.form.Button' jsId='allCards' scrollOnFocus='false'></button>
+        </td>
+    </tr>
+    <tr fmclass='au' fmfield='usrname' required='required'>
+        <td/><td/><td/>
+        <td>
+            <span id='uedit-dupe-username-warning' style='color:red; font-weight:bold' class='hidden'>
+            </span>
+        </td>
+    </tr>
+    <tr fmclass='au' fmfield='passwd' required='required'>
+        <td/><td/><td/>
+        <td>
+            <button dojoType='dijit.form.Button' jsId='generatePassword' scrollOnFocus='false' tabIndex='-1'></button>
+        </td>
+    </tr>
+    <tr fmclass='au' fmfield='passwd2' required='required'><td/><td id='verifyPassword'></td><td/></tr>
+    <tr fmclass='au' fmfield='first_given_name' required='required'/>
+    <tr fmclass='au' fmfield='second_given_name'/>
+    <tr fmclass='au' fmfield='family_name' required='required'/>
+    <tr fmclass='au' fmfield='suffix'/>
+    <tr fmclass='au' fmfield='alias'/>
+    <tr fmclass='au' fmfield='dob'/>
+    <tr fmclass='au' fmfield='juvenile'/>
+    <tr fmclass='au' fmfield='ident_type' required='required'/>
+    <tr fmclass='au' fmfield='ident_value'/>
+    <tr fmclass='au' fmfield='ident_value2'><td/><td id='parentGuardian'></td></tr>
+    <tr fmclass='au' fmfield='email'/>
+    <tr fmclass='au' fmfield='day_phone'/>
+    <tr fmclass='au' fmfield='evening_phone'/>
+    <tr fmclass='au' fmfield='other_phone'/>
+    <tr fmclass='au' fmfield='home_ou' required='required'/>
+    <tr fmclass='au' fmfield='profile' required='required'/>
+    <tr fmclass='au' fmfield='expire_date' required='required'/>
+    <tr fmclass='au' fmfield='net_access_level' required='required'/>
+    <tr fmclass='au' fmfield='active'/>
+    <tr fmclass='au' fmfield='barred'/>
+    <tr fmclass='au' fmfield='master_account'/>
+    <tr fmclass='au' fmfield='claims_returned_count' wclass='dijit.form.NumberSpinner' wconstraints="{min:0,places:0}" wvalue='0'/>
+    <tr fmclass='au' fmfield='claims_never_checked_out_count' wclass='dijit.form.NumberSpinner' wconstraints="{min:0,places:0}" wvalue='0'/>
+    <tr fmclass='au' fmfield='alert_message' wclass='dijit.form.Textarea' wstyle='height:5em'/>
+
+    <tr class='divider hidden' id='uedit-settings-divider'><td colspan='0' id='userSettings'></td></tr>
+    <tr class='hidden' id='uedit-user-setting-template'>
+        <td/>
+        <td><span name='label'></span></td>
+        <td><div name='widget'></div></td>
+    </tr>
+
+    <!-- Address -->
+    <tr name='uedit-addr-divider' class='divider' type='addr-template' required='show'>
+        <td colspan='2' name='addressHeader'></td>
+        <td>
+            <span name='mailingAddress'></span><input type='radio' name='mailing_address'>
+            <span name='billingAddress'></span><input type='radio' name='billing_address'>
+            <button dojoType='dijit.form.Button' scrollOnFocus='false' name='delete-button' class='uedit-addr-del-button'>X</button>
+        </td>
+    </tr>
+
+    <tr name='uedit-addr-pending-row' type='addr-template' class='pending-addr-row hidden'>
+        <td colspan='3'>
+            <span style='padding-right:10px;' name='addressPending'></span>
+            <button dojoType='dijit.form.Button' scrollOnFocus='false'  name='approve-button'></button>
+            <div name='replaced-addr-div'>
+                <div name='replaced-addr'></div>
+            </div>
+        </td>
+    </tr>
+
+    <tr name='uedit-addr-owner-row' type='addr-template' class='pending-addr-row hidden'>
+        <td colspan='3'>
+            <span style='padding-right:10px;' name='address-already-owned'></span>
+            <a href='javascript:void(0);'  name='addr-owner'></a>
+        </td>
+    </tr>
+
+
+    <tr fmclass='aua' fmfield='address_type' type='addr-template' required='required'/>
+    <tr fmclass='aua' fmfield='post_code' type='addr-template' required='required'/>
+    <tr fmclass='aua' fmfield='street1' type='addr-template' required='required'/>
+    <tr fmclass='aua' fmfield='street2' type='addr-template' required='show'/>
+    <tr fmclass='aua' fmfield='city' type='addr-template' required='required'/>
+    <tr fmclass='aua' fmfield='county' type='addr-template' required='show'/>
+    <tr fmclass='aua' fmfield='state' type='addr-template' required='required'/>
+    <tr fmclass='aua' fmfield='country' type='addr-template' required='required'/>
+    <tr fmclass='aua' fmfield='valid' type='addr-template' required='show'/>
+    <tr fmclass='aua' fmfield='within_city_limits' type='addr-template' required='show'/>
+
+    <tr id='new-addr-row' class='newaddr-row' required='show'>
+        <td colspan='0' style='text-align:center;'>
+            <button dojoType='dijit.form.Button' onClick='uEditNewAddr' scrollOnFocus='false' name='addressNew'></button>
+        </td>
+    </tr>
+
+    <!-- stat cats -->
+    <tr class='divider' id='stat-cat-divider' required='suggested'><td colspan='0' id='statCats'></td></tr>
+    <tr id='stat-cat-row-template' required='suggested'><td class='uedit-help'/><td name='name'/><td name='widget'/></tr>
+
+    <!-- surveys -->
+    <tr id='survey-row-template' class='divider' required='suggested'><td colspan='0' name='name'/></tr>
+    <tr id='survey-question-row-template' required='suggested'><td class='uedit-help'/><td name='question'/><td name='answers'/></tr>
+</tbody>
+
diff --git a/Open-ILS/src/templates/actor/user/trigger_events.tt2 b/Open-ILS/src/templates/actor/user/trigger_events.tt2
new file mode 100644 (file)
index 0000000..ec0c2f4
--- /dev/null
@@ -0,0 +1,29 @@
+[% ctx.page_title = 'Events' %]
+[% WRAPPER base.tt2 %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/actor/user/trigger_events.js'></script>
+<script type="text/javascript">patronId = '[% ctx.page_args.0 %]'</script>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+    <div>User Events</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='evtCancelSelected()'>Cancel Selected Events</button>
+    </div>
+</div>
+
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:100%;'> 
+    <table jsId="evtGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}">
+        <thead> 
+            <tr> 
+                <th field="event_def" get='getField' width='auto'>Event Def.</th> 
+                <th field="hook" get='getField' width='auto'>Hook</th> 
+                <th field="reactor" get='getField' width='auto'>Reactor</th> 
+                <th field="validator" get='getField' width='auto'>Validator</th> 
+                <th field="target" get='getField' width='auto'>Target</th> 
+                <th field="state" get='getField' width='auto'>State</th> 
+            </tr> 
+        </thead> 
+    </table>     
+</div>
+
+[% END %]
index d4f4ebb..8a7d682 100644 (file)
@@ -1,27 +1,39 @@
 [%- ctx.final_dtd = 
-    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' -%]
+'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' -%]
 [%- IF !ctx.dtd; ctx.dtd = ctx.final_dtd; END -%]
 [% ctx.dtd %]
+<!-- note: after vandelay strings are ported to l('...'), we can remove the DTD conditional -->
 <html xmlns='http://www.w3.org/1999/xhtml' lang='[% ctx.locale %]' xml:lang='[% ctx.locale %]'>
     <head>
         <title>[% ctx.page_title %]</title>
         <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-        <link rel='stylesheet' type='text/css'
-            href='[% ctx.media_prefix %]/css/skin/[% ctx.skin %].css' />
-        <link rel='stylesheet' type='text/css'
-            href='[% ctx.media_prefix %]/css/theme/[% ctx.skin %].css' />
+        <link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/skin/[% ctx.skin %].css' />
+        <link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/theme/[% ctx.skin %].css' />
            <script language='javascript' src='/IDL2js' type='text/javascript'></script>
         <script type="text/javascript">var djConfig = {parseOnLoad:true,isDebug:false};</script>
         <script type="text/javascript" src="/js/dojo/dojo/dojo.js"></script>
         <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/openils_dojo.js"></script>
         <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/md5.js"></script>
+        <script type="text/javascript">var oilsBasePath = '[% ctx.base_path %]'</script>
+        <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/base.js"></script>
         <script type="text/javascript">
-            var oilsBasePath = '[% ctx.base_path %]';
+            dojo.require("dijit.layout.LayoutContainer");
+            dojo.require("dijit.layout.ContentPane");
         </script>
-        <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/base.js"></script>
     </head>
     <body class='tundra'>
         [% INCLUDE login.tt2 %] <!-- shared login page -->
-        [% content %] <!-- Page body -->
+        <div id="oils-base-body-block" class="tundra" dojoType="dijit.layout.LayoutContainer"> 
+            <div id="oils-base-header-block" dojoType="dijit.layout.ContentPane" layoutAlign="top">
+                <div id='oils-base-header-auto-login-block'>
+                    [% INCLUDE header.tt2 %]
+                </div>
+            </div>
+            <div id="oils-base-main-block" dojoType="dijit.layout.LayoutContainer" layoutAlign="client">
+                <div id="oils-base-content-block" dojoType="dijit.layout.ContentPane" layoutAlign="client">
+                    [% content %]
+                </div>
+            </div>
+        </div>
     </body>
 </html>
diff --git a/Open-ILS/src/templates/booking/capture.tt2 b/Open-ILS/src/templates/booking/capture.tt2
new file mode 100644 (file)
index 0000000..2e02d9c
--- /dev/null
@@ -0,0 +1,21 @@
+[% WRAPPER "base.tt2" %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/capture.js"></script>
+<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" id="booking_stylesheet_link" />
+<script type="text/javascript">openils.Util.addOnLoad(my_init);</script>
+<div id="auto_l10n_start_here">
+<!-- XXX This interface will probably go away soon in favor of merging its
+behavior into the regular checkin/process/capture interface. -->
+    <h1 class="AUTO_capture_heading booking"></h1>
+    <form class="nice_vertical_padding"
+        onsubmit="attempt_capture(); return false">
+        <label for="resource_barcode" class="AUTO_resource_barcode"></label>
+        <input id="resource_barcode" onfocus="clear_for_next();" />
+        <input type="button" class="AUTO_ATTR_VALUE_capture"
+            onclick="attempt_capture();" />
+        <span id="result_display"></span>
+    </form>
+    <div class="nice_vertical_padding" id="capture_info_top"></div>
+    <div class="nice_vertical_padding" id="capture_info_bottom"></div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/booking/pickup.tt2 b/Open-ILS/src/templates/booking/pickup.tt2
new file mode 100644 (file)
index 0000000..d8784c9
--- /dev/null
@@ -0,0 +1,78 @@
+[% WRAPPER "base.tt2" %]
+<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" />
+<div id="auto_l10n_start_here">
+    <h1 class="booking AUTO_h1"></h1>
+    <div class="nice_vertical_padding" id="contains_barcode_control">
+        <form id="lookup" onsubmit="return act(this);">
+            <label for="patron_barcode" class="AUTO_patron_barcode"></label>
+            <input id="patron_barcode" name="patron_barcode" />
+            <input type="submit" class="AUTO_ATTR_VALUE_go" />
+        </form>
+    </div>
+    <div class="nice_vertical_padding" id="contains_patron_info">
+        <div id="patron_info"></div>
+    </div>
+    <div class="nice_vertical_padding" id="contains_ready_bresv">
+        <h3 class="booking AUTO_ready_bresv"></h3>
+        <div class="AUTO_no_ready_bresv" id="no_ready_bresv"></div>
+        <table id="ready_bresv" jsId="ready_bresv"
+            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
+            rowSelector="20px" autoHeight="true" width="auto">
+            <thead>
+                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
+                        too late to take care of the below elements. -->
+                    <th width="35%" field="type">Title</th>
+                    <th width="25%" field="resource">Barcode</th>
+                    <th width="20%" field="start_time">Start time</th>
+                    <th width="20%" field="end_time">End time</th>
+                </tr>
+            </thead>
+        </table>
+        <div class="nice_vertical_padding" id="controls_ready_bresv">
+            <form>
+                <input type="button" id="pickup_button"
+                    class="AUTO_ATTR_VALUE_pickup"
+                    onclick="p.act_on_selected('pickup', 'ready');" />
+            </form>
+        </div>
+    </div>
+    <div class="nice_vertical_padding" id="contains_out_bresv">
+        <hr />
+        <h3 class="booking AUTO_out_bresv"></h3>
+        <div class="AUTO_no_out_bresv" id="no_out_bresv"></div>
+        <table id="out_bresv" jsId="out_bresv"
+            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
+            rowSelector="20px" autoHeight="true" width="auto">
+            <thead>
+                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
+                        too late to take care of the below elements. -->
+                    <th width="35%" field="type">Title</th>
+                    <th width="25%" field="resource">Barcode</th>
+                    <th width="20%" field="pickup_time">Pickup time</th>
+                    <th width="20%" field="end_time">Due time</th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+    <div class="nice_vertical_padding" id="contains_misc_controls">
+        <hr />
+        <form>
+            <input type="button" class="AUTO_ATTR_VALUE_reset"
+                onclick="p.reset();" />
+        </form>
+    </div>
+</div>
+
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/populator.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/pickup.js"></script>
+<script type="text/javascript">
+    dojo.require("dojox.grid.DataGrid");
+    openils.Util.addOnLoad(my_init);
+
+    function act(f) {
+        p.populate({"patron": f.patron_barcode.value});
+        return false; /* Always. */
+    }
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/booking/pull_list.tt2 b/Open-ILS/src/templates/booking/pull_list.tt2
new file mode 100644 (file)
index 0000000..002855f
--- /dev/null
@@ -0,0 +1,49 @@
+[% WRAPPER "base.tt2" %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/pull_list.js"></script>
+<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" />
+<script type="text/javascript">openils.Util.addOnLoad(my_init);</script>
+<div id="auto_l10n_start_here">
+    <h1 class="booking AUTO_pull_list_title"></h1>
+    <form onsubmit="populate_pull_list(this); return false;">
+        <div id="owning_lib_selector_row" class="nice_vertical_padding">
+            <label for="owning_lib_selector" class="AUTO_owning_lib_selector">
+            </label>
+            <select dojoType="openils.widget.OrgUnitFilteringSelect"
+                id="owning_lib_selector" jsId="owning_lib_selector"
+                searchAttr="shortname" labelAttr="shortname"></select>
+        </div>
+        <div id="interval_input_row" class="nice_vertical_padding">
+            <label for="interval_in_days" class="AUTO_interval_in_days"></label>
+
+            <!-- XXX Hardcoded values (like the ones below) are bad. -->
+            <input id="interval_in_days" name="interval_in_days"
+                value="5" maxlength="2" />
+
+        </div>
+        <input type="submit" class="AUTO_ATTR_VALUE_fetch" />
+    </form>
+    <hr />
+    <div id="table_goes_here" class="nice_vertical_padding">
+        <table id="the_table" width="100%">
+            <thead>
+                <tr>
+                    <th width="25%" class="AUTO_th_title_or_name"></th>
+                    <th width="10%" class="AUTO_th_barcode"></th>
+                    <th width="15%" class="AUTO_th_call_number"></th>
+                    <th width="10%" class="AUTO_th_copy_location"></th>
+                    <th width="40%" class="AUTO_th_resv_details"></th>
+                </tr>
+            </thead>
+            <tbody id="the_table_body">
+            </tbody>
+        </table>
+        <div id="print_holder" class="nice_vertical_padding">
+            <!-- XXX Print button probably won't stay right here -->
+            <input type="button" class="AUTO_ATTR_VALUE_print"
+                onclick="window.print();" /><!-- XXX too simplistic? -->
+        </div>
+    </div>
+    <div id="no_results" class="AUTO_no_results"></div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/booking/reservation.tt2 b/Open-ILS/src/templates/booking/reservation.tt2
new file mode 100644 (file)
index 0000000..5888049
--- /dev/null
@@ -0,0 +1,118 @@
+[% WRAPPER "base.tt2" %]
+<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" />
+<div id="auto_l10n_start_here">
+    <div id="brt_search_block" class="container">
+        <h1 class="booking AUTO_choose_a_brt"></h1>
+        <form onsubmit="return false;">
+            <div id="select_noncat_brt_block">
+                <div id="brt_selector_here" class="nice_vertical_padding"></div>
+                <div class="nice_vertical_padding">
+                    <input type="button" class="AUTO_ATTR_VALUE_next"
+                        onclick="init_resv_iface_sel(); return false"
+                        />
+                </div>
+                <hr />
+                <div class="nice_vertical_padding AUTO_or" id="or"></div>
+            </div>
+            <div id="arbitrary_resource_block">
+                <label for="arbitrary_resource" class="AUTO_arbitrary_resource">
+                </label>
+                <input id="arbitrary_resource" name="arbitrary_resource" />
+                <input type="button"
+                    onclick="init_resv_iface_arb(); return false;"
+                    class="AUTO_ATTR_VALUE_next" />
+                <p class="AUTO_explain_bookable"></p>
+            </div>
+        </form>
+    </div>
+
+    <div id="brt_reserve_block" class="container">
+        <form onsubmit="return false;">
+            <div id="brsrc_available_outer">
+                <h1 class="booking" id="brsrc_list_header"></h1>
+                <!-- I'm reluctantly hardcoding the size attribute below to 12
+                    since you can't get the behavior of the size attribute with
+                    anything in CSS. -->
+                <select id="brsrc_list" name="brsrc_list" multiple="multiple"
+                    size="12"></select>
+                <div id="contain_patron_barcode" class="nice_vertical_padding">
+                    <label class="AUTO_patron_barcode"
+                        for="patron_barcode" /></label>
+                    <input name="patron_barcode" id="patron_barcode"
+                        onchange="update_bresv_grid();" />
+                </div>
+                <div id="pickup_lib_selector_row" class="nice_vertical_padding">
+                    <label for="pickup_lib_selector"
+                        class="AUTO_pickup_lib_selector"></label>
+                    <select dojoType="openils.widget.OrgUnitFilteringSelect"
+                        id="pickup_lib_selector" jsId="pickup_lib_selector"
+                        searchAttr="shortname" labelAttr="shortname"></select>
+                </div>
+                <div class="nice_vertical_padding">
+                    <span class="two_buttons">
+                        <input type="button"
+                            class="AUTO_ATTR_VALUE_reserve_brsrc"
+                            onclick="create_bresv_on_brsrc();" />
+                        &nbsp;
+                        <input type="button"
+                            class="AUTO_ATTR_VALUE_reserve_brt"
+                            onclick="create_bresv_on_brt();" />
+                    </span>
+                </div>
+            </div>
+            <div id="reserve_right_side">
+                <h2 class="booking AUTO_i_need_this_resource"></h2>
+                <div id="reserve_datetime_start">
+                    <label class="reserve_datetime AUTO_starting_at"
+                        for="reserve_date_start"></label><br />
+                    <input id="reserve_date_start" />
+                    <input id="reserve_time_start" />
+                </div>
+                <div id="reserve_datetime_end">
+                    <label class="reserve_datetime AUTO_ending_at"
+                        for="reserve_date_end"></label><br />
+                    <input id="reserve_date_end" />
+                    <input id="reserve_time_end" />
+                </div>
+                <h2 id="bra_and_brav_header"
+                    class="booking AUTO_with_these_attr"></h2>
+                <div id="bra_and_brav"></div>
+            </div>
+        </form>
+    </div>
+
+    <div id="reserve_under">
+        <hr />
+        <h2 class="booking" id="existing_reservation_patron_line"></h2>
+        <div id="bresv_grid_alt_explanation"></div>
+        <table id="bresv_grid" jsId="bresvGrid"
+            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
+            rowSelector="20px" autoHeight="true" width="auto">
+            <thead>
+                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
+                        too late to take care of the below elements. -->
+                    <th width="35%" field="type">Type</th>
+                    <th width="25%" field="resource">Resource</th>
+                    <th width="20%" field="start_time">Start time</th>
+                    <th width="20%" field="end_time">End time</th>
+                </tr>
+            </thead>
+        </table>
+        <div class="nice_vertical_padding"
+            id="existing_bresv_under_buttons">
+            <!-- <input type="button" id="button_edit_existing"
+                class="AUTO_ATTR_VALUE_button_edit_existing" /> -->
+            <input type="button" id="button_cancel_existing"
+                class="AUTO_ATTR_VALUE_button_cancel_existing"
+                onclick="cancel_selected_bresv(bresvGrid.selection.getSelected());" />
+        </div>
+    </div>
+</div>
+
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/reservation.js"></script>
+<script type="text/javascript">
+    dojo.require("dojox.grid.DataGrid");
+    openils.Util.addOnLoad(my_init);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/booking/return.tt2 b/Open-ILS/src/templates/booking/return.tt2
new file mode 100644 (file)
index 0000000..40e1a32
--- /dev/null
@@ -0,0 +1,88 @@
+[% WRAPPER "base.tt2" %]
+<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" />
+<div id="auto_l10n_start_here">
+    <h1 class="booking AUTO_return_h1"></h1>
+    <div class="nice_vertical_padding" id="contains_barcode_control">
+        <form id="lookup" onsubmit="return act(this);">
+            <label for="barcode_type" class="AUTO_barcode_type"></label>
+            <select name="barcode_type" id="barcode_type"
+                onchange="var b = this.form.barcode; b.focus(); b.select();">
+                <option id="option_resource" value="resource"
+                    selected="selected" class="AUTO_resource"></option>
+                <option id="option_patron" value="patron"
+                    class="AUTO_patron"></option>
+            </select>
+            <input id="barcode" name="barcode" />
+            <input type="submit" class="AUTO_ATTR_VALUE_go" />
+        </form>
+    </div>
+    <div class="nice_vertical_padding" id="contains_patron_info">
+        <div id="patron_info"></div>
+    </div>
+    <div class="nice_vertical_padding" id="contains_out_bresv">
+        <h3 class="booking AUTO_out_bresv"></h3>
+        <div class="AUTO_no_out_bresv" id="no_out_bresv"></div>
+        <table id="out_bresv" jsId="out_bresv"
+            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
+            rowSelector="20px" autoHeight="true" width="auto">
+            <thead>
+                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
+                        too late to take care of the below elements. -->
+                    <th width="35%" field="type">Title</th>
+                    <th width="25%" field="resource">Barcode</th>
+                    <th width="20%" field="pickup_time">Pickup time</th>
+                    <th width="20%" field="end_time">Due time</th>
+                </tr>
+            </thead>
+        </table>
+        <div class="nice_vertical_padding" id="controls_out_bresv">
+            <form>
+                <input type="button" id="return_button"
+                    class="AUTO_ATTR_VALUE_return"
+                    onclick="p.act_on_selected('return', 'out');" />
+            </form>
+        </div>
+    </div>
+    <div class="nice_vertical_padding" id="contains_in_bresv">
+        <hr />
+        <h3 class="booking AUTO_in_bresv"></h3>
+        <div class="AUTO_no_in_bresv" id="no_in_bresv"></div>
+        <table id="in_bresv" jsId="in_bresv"
+            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
+            rowSelector="20px" autoHeight="true" width="auto">
+            <thead>
+                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
+                        too late to take care of the below elements. -->
+                    <th width="35%" field="type">Title</th>
+                    <th width="25%" field="resource">Barcode</th>
+                    <th width="20%" field="due_time">Due time</th>
+                    <th width="20%" field="return_time">Return time</th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+    <div class="nice_vertical_padding" id="contains_misc_controls">
+        <hr />
+        <form>
+            <input type="button" class="AUTO_ATTR_VALUE_reset"
+                onclick="p.reset();" />
+        </form>
+    </div>
+</div>
+
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/populator.js"></script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/return.js"></script>
+<script type="text/javascript">
+    dojo.require("dojox.grid.DataGrid");
+    openils.Util.addOnLoad(my_init);
+
+    function act(f) {
+        var key = f.barcode_type.options[f.barcode_type.selectedIndex].value;
+        var obj = {};
+        obj[key] = f.barcode.value;
+        p.populate(obj);
+        return false; /* Always. */
+    }
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/cat/authority/list.tt2 b/Open-ILS/src/templates/cat/authority/list.tt2
new file mode 100644 (file)
index 0000000..c58040b
--- /dev/null
@@ -0,0 +1,82 @@
+[% ctx.page_title = 'Authority record list' %]
+[% WRAPPER base.tt2 %]
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/cat/authority/list.js'> </script>
+
+<div dojoType="dijit.form.Form" id="myForm" jsId="myForm" encType="multipart/form-data" action="" method="">
+    <span style="white-space: nowrap;">
+        <label for="authTerm">Search term: </label>
+        <input type="text" name="authTerm" value="" dojoType="dijit.form.TextBox" trim="true" id="authTerm" propercase="false"/>
+    </span>
+    <span style="white-space: nowrap;">
+        <label for="authAxis">Authority type: </label>
+        <input
+            id="authAxis"
+            name="authAxis"
+            jsId="authAxis"
+            dojoType="openils.widget.PCrudAutocompleteBox"
+            fmclass="aba"
+            searchAttr="name"
+            fetchProperties="{ sort: [{attribute:'name'}] }"
+            propercase="false"
+            hasDownArrow="true"
+            store_options="{ honor_retrieve_all:true }"
+            trim="true"
+        />
+    </span>
+<!-- Not currently useful - see authOUListInit() above -->
+<!--    <label for="authOU">Library: </label><select dojoType="openils.widget.OrgUnitFilteringSelect" id="authOU" name="authOU" searchAttr="shortname" labelAttr="shortname"></select> -->
+
+    <span style="white-space: nowrap;">
+        <span dojoType="dijit.form.Button" type="button" value="Previous">Previous
+            <script type="dojo/method" event="onClick" args="evt">
+                displayRecords({"page":"prev"});
+            </script>
+        </span>
+
+        <label for="authPage">Page: </label>
+        <input dojoType="dijit.form.NumberSpinner" value="0" constraints="{min:-100,max:100,places:0}" smallDelta="1" id="authPage" name="authPage" style="width:5em;" />
+
+        <span dojoType="dijit.form.Button" type="button" value="Next">Next
+            <script type="dojo/method" event="onClick" args="evt">
+                displayRecords({"page":"next"});
+            </script>
+        </span>
+    </span>
+
+    <span style="white-space: nowrap;">
+        <span dojoType="dijit.form.Button" type="button" value="Submit">Submit
+            <script type="dojo/method" event="onClick" args="evt">
+                displayRecords();
+            </script>
+        </span>
+    </span>
+</div>
+
+<hr />
+
+<div id='mergebox-div' class='hidden' style='float:right; border: 4px solid; width: 25%;'>
+    <div style="border-bottom: 4px solid; text-align: center;">
+        <div dojoType="dijit.form.Form" encType="multipart/form-data" action="" method="">
+            <div dojoType="dijit.form.Button" type="button" value="Merge">Merge
+                <script type="dojo/method" event="onClick" args="evt">
+                    mergeRecords();
+                </script>
+            </div>
+            <div dojoType="dijit.form.Button" type="button" value="Clear">Clear
+                <script type="dojo/method" event="onClick" args="evt">
+                    clearMergeRecords();
+                </script>
+            </div>
+        </div>
+    </div>
+    <table>
+        <tbody id='mergebox-tbody'>
+        </tbody>
+    </table>
+</div>
+
+
+<div id='authlist-div'></div>
+
+[% END %]
diff --git a/Open-ILS/src/templates/circ/selfcheck/audio_config.tt2 b/Open-ILS/src/templates/circ/selfcheck/audio_config.tt2
new file mode 100644 (file)
index 0000000..fc1bdef
--- /dev/null
@@ -0,0 +1,13 @@
+[%#
+    Override the audio config values by copying this template into your local templates
+    directory (matching the relative path) and change the values accordingly.
+#%]
+
+<script type="text/javascript">
+    SelfCheckManager.audioConfig = {
+        'login-success' : '',
+        'login-failure' : '[% ctx.media_prefix %]/audio/question.wav',
+        'checkout-success' : '[% ctx.media_prefix %]/audio/bonus.wav',
+        'checkout-failure' : '[% ctx.media_prefix %]/audio/question.wav',
+    }
+</script>
diff --git a/Open-ILS/src/templates/circ/selfcheck/banner.tt2 b/Open-ILS/src/templates/circ/selfcheck/banner.tt2
new file mode 100644 (file)
index 0000000..cda4866
--- /dev/null
@@ -0,0 +1,10 @@
+<div id='oils-selfck-user-banner'></div>
+<div id='oils-selfck-logo-div'>
+    <img src='[% ctx.media_prefix %]/images/eg_logo.jpg'/>
+</div>
+<div id='oils-selfck-scan-div'>
+    <div id='oils-selfck-scan-text'></div>
+    <input jsId='selfckScanBox' dojoType='dijit.form.TextBox'/>
+</div>
+<div id='oils-selfck-status-div'></div>
+
diff --git a/Open-ILS/src/templates/circ/selfcheck/circ_page.tt2 b/Open-ILS/src/templates/circ/selfcheck/circ_page.tt2
new file mode 100644 (file)
index 0000000..868f5f9
--- /dev/null
@@ -0,0 +1,30 @@
+<div id='oils-selfck-circ-table-div'>
+    <table id='oils-selfck-circ-table' class='oils-selfck-item-table'>
+        <thead>
+            <tr>
+                <td id='oils-self-circ-pic-cell'></td>
+                <td>Barcode</td>
+                <td>Title</td>
+                <td>Author</td>
+                <td>Due Date</td>
+                <td class='hidden'>Renewals Left</td>
+                <td>Type</td>
+            </tr>
+        </thead>
+        <tbody id='oils-selfck-circ-tbody'>
+            <tr id='oils-selfck-circ-row'>
+                <td><img class='oils-selfck-jacket' name='jacket'/></td>
+                <td name='barcode'></td>
+                <td name='title'></td>
+                <td name='author'></td>
+                <td name='due_date'></td>
+                <td class='hidden' name='remaining'></td>
+                <td>
+                    <div name='checkout' class='hidden'>Checkout</div>
+                    <div name='renew' class='hidden'>Renewal</div>
+                </td>
+            </tr>
+        </tbody>
+        <tbody id='oils-selfck-circ-out-tbody' class='oils-selfck-item-table'></tbody>
+    </table>
+</div>
diff --git a/Open-ILS/src/templates/circ/selfcheck/fines.tt2 b/Open-ILS/src/templates/circ/selfcheck/fines.tt2
new file mode 100644 (file)
index 0000000..0c27047
--- /dev/null
@@ -0,0 +1,26 @@
+<span id='oils-selfck-selected-total'></span>
+<span style='padding-left:5px;'><a class='hidden' href='javascript:void(0);' id='oils-selfck-pay-fines-link'>Pay Fines</a></span>
+<div id='oils-selfck-fines-table-div'>
+    <table id='oils-selfck-fines-table' class='oils-selfck-item-table'>
+        <thead>
+            <tr>
+                <td><input type='checkbox' checked='checked' id='oils-selfck-fines-selector'/></td>
+                <td>Type</td>
+                <td>Details</td>
+                <td>Total Billed</td>
+                <td>Total Paid</td>
+                <td>Balance Owed</td>
+            </tr>
+        </thead>
+        <tbody id='oils-selfck-fines-tbody'>
+            <tr id='oils-selfck-fines-row'>
+                <td><input type='checkbox' name='selector' checked='checked'/></td>
+                <td name='type'></td>
+                <td name='details'></td>
+                <td name='total_owed'></td>
+                <td name='total_paid'></td>
+                <td name='balance' style='color:red;'></td>
+            </tr>
+        </tbody>
+    </table>
+</div>
diff --git a/Open-ILS/src/templates/circ/selfcheck/holds_page.tt2 b/Open-ILS/src/templates/circ/selfcheck/holds_page.tt2
new file mode 100644 (file)
index 0000000..3336249
--- /dev/null
@@ -0,0 +1,20 @@
+<div id='oils-selfck-hold-table-div'>
+    <table id='oils-selfck-hold-table' class='oils-selfck-item-table'>
+        <thead>
+            <tr>
+                <td id='oils-self-hold-pic-cell'></td>
+                <td>Title</td>
+                <td>Author</td>
+                <td>Status</td>
+            </tr>
+        </thead>
+        <tbody id='oils-selfck-hold-tbody'>
+            <tr id='oils-selfck-hold-row'>
+                <td><img class='oils-selfck-jacket' name='jacket'/></td>
+                <td name='title'></td>
+                <td name='author'></td>
+                <td name='status'></td>
+            </tr>
+        </tbody>
+    </table>
+</div>
diff --git a/Open-ILS/src/templates/circ/selfcheck/main.tt2 b/Open-ILS/src/templates/circ/selfcheck/main.tt2
new file mode 100644 (file)
index 0000000..3c2be14
--- /dev/null
@@ -0,0 +1,61 @@
+[% ctx.page_title = 'Self Checkout' %]
+[% WRAPPER base.tt2 %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/circ/selfcheck/selfcheck.js'> </script>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/circ/selfcheck/payment.js"></script>
+<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/selfcheck.css'/>
+[% INCLUDE 'circ/selfcheck/audio_config.tt2' %]
+
+<div id='oils-selfck-top-div'>
+    [% INCLUDE 'circ/selfcheck/banner.tt2' %]
+</div>
+<div id='oils-selfck-bottom-div'>
+    <div id='oils-selfck-content-div'>
+        <div id='oils-selfck-content-header'>
+            <span><a id='oils-selfck-print-list-link' href='javascript:void(0);'>Print List</a></span>
+        </div>
+        <div id='oils-selfck-circ-page' class='hidden'>
+            <!-- Checkout / renewal and items out interface -->
+            [% INCLUDE 'circ/selfcheck/circ_page.tt2' %]
+        </div>
+        <div id='oils-selfck-holds-page' class='hidden'>
+            <!-- Patron holds interface -->
+            [% INCLUDE 'circ/selfcheck/holds_page.tt2' %]
+        </div>
+        <div id='oils-selfck-fines-page' class='hidden'>
+            <!-- Fines and interface -->
+            [% INCLUDE 'circ/selfcheck/fines.tt2' %]
+        </div>
+        <div id='oils-selfck-payment-page' class='hidden'>
+            <!-- credit card payments interface -->
+            [% INCLUDE 'circ/selfcheck/payment.tt2' %]
+        </div>
+    </div>
+    <div id='oils-selfck-summary-div'>
+        [% INCLUDE 'circ/selfcheck/summary.tt2' %]
+    </div>
+</div>
+<div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'></div>
+<div dojoType="dijit.Dialog" jsId='oilsSelfckWsDialog' class='oils-login-dialog' style='display:none;'>
+    <form>
+        <table>
+            <tr>
+                <td>Choose a location</td>
+                <td><div dojoType='openils.widget.OrgUnitFilteringSelect' jsId='oilsSelfckWsLocSelector' 
+                    searchAttr='shortname' labelAttr='shortname'/></td>
+            </tr>
+            <tr>
+                <td>Enter a workstation name</td>
+                <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckWsName'/></td>
+            </tr>
+            <tr>
+                <td colspan='2' align='center'>
+                    <button jsId='oilsSelfckWsSubmit' dojoType='dijit.form.Button'>Submit</button>
+                </td>
+            </tr>
+        </table>
+    </form>
+</div>
+[% END %]
+
+
+
diff --git a/Open-ILS/src/templates/circ/selfcheck/patron_login.tt2 b/Open-ILS/src/templates/circ/selfcheck/patron_login.tt2
new file mode 100644 (file)
index 0000000..da65d79
--- /dev/null
@@ -0,0 +1,7 @@
+<div>Please login using your library barcode</div>
+<div class='oils-selfck-login-box'>
+    <input jsId='selfckBarcodeBox' dojoType='dijit.form.TextBox'></input>
+</div>
+<div id='oils-selfck-login-pw' class='hidden oils-selfck-login-box'>
+    <input jsId='selfckPwBox' dojoType='dijit.form.TextBox'></input>
+</div>
diff --git a/Open-ILS/src/templates/circ/selfcheck/payment.tt2 b/Open-ILS/src/templates/circ/selfcheck/payment.tt2
new file mode 100644 (file)
index 0000000..f4fe97e
--- /dev/null
@@ -0,0 +1,83 @@
+<div id='oils-selfck-cc-payment-summary'>
+    Total amount to pay: $<span></span>
+</div>
+<table id='oils-selfck-cc-payment-table'>
+    <tbody>
+        <!-- Technically not needed since card type is derived from the CC number
+        <tr>
+            <td>Type of Card</td>
+            <td>
+                <select dojoType='dijit.form.FilteringSelect' jsId='oilsSelfckCCType' required='true'>
+                    <option value='VISA'>VISA</option>
+                    <option value='MasterCard'>MasterCard</option>
+                    <option value='American Express'>American Express</option>
+                </select>
+            </td>
+        </tr>
+        -->
+        <tr>
+            <td>Credit Card #</td>
+            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCNumber' required='true'/></td>
+        </tr>
+        <tr>
+            <td>CVV #</td>
+            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCCVV' required='true'/></td>
+        </tr>
+        <tr>
+            <td>Exipration Month</td>
+            <td>
+                <select dojoType='dijit.form.FilteringSelect' jsId='oilsSelfckCCMonth' required='true'>
+                    <option value='01' selected='selected'>Jan</option>
+                    <option value='02'>Feb</option>
+                    <option value='03'>Mar</option>
+                    <option value='04'>April</option>
+                    <option value='05'>May</option>
+                    <option value='06'>June</option>
+                    <option value='07'>July</option>
+                    <option value='08'>Aug</option>
+                    <option value='09'>Sept</option>
+                    <option value='10'>Oct</option>
+                    <option value='11'>Nov</option>
+                    <option value='12'>Dec</option>
+                </select>
+            </td>
+        </tr>
+        <tr>
+            <td>Expiration Year</td>
+            <td><input dojoType='dijit.form.NumberSpinner' constraints='{pattern:"0000", places:0, maxlength:4}' jsId='oilsSelfckCCYear' required='true'/></td>
+        </tr>
+        <tr>
+            <td>Edit Billing Details</td>
+            <td><input dojoType='dijit.form.CheckBox' jsId='oilsSelfckEditDetails'/></td>
+        </tr>
+        <tr>
+            <td>First Name</td>
+            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCFName' disabled='disabled' required='true'/></td>
+        </tr>
+        <tr>
+            <td>Last Name</td>
+            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCLName' disabled='disabled' required='true'/></td>
+        </tr>
+        <tr>
+            <td>Street Address</td>
+            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCStreet' disabled='disabled' required='true'/></td>
+        </tr>
+        <tr>
+            <td>City</td>
+            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCCity' disabled='disabled' required='true'/></td>
+        </tr>
+        <tr>
+            <td>State or Province</td>
+            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCState' disabled='disabled' required='true'/></td>
+        </tr>
+        <tr>
+            <td>ZIP or Postal Code</td>
+            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCZip' disabled='disabled' required='true'/></td>
+        </tr>
+        <tr>
+            <td colspan='2' align='center'>
+                <button dojoType='dijit.form.Button' jsId='oilsSelfckCCSubmit'>Submit Payment</button>
+            </td>
+        </tr>
+    </tbody>
+</table>
diff --git a/Open-ILS/src/templates/circ/selfcheck/summary.tt2 b/Open-ILS/src/templates/circ/selfcheck/summary.tt2
new file mode 100644 (file)
index 0000000..b037ad7
--- /dev/null
@@ -0,0 +1,27 @@
+<div id='oils-selfck-circ-info-div'>
+    <div id='oils-selfck-info-nav'>
+        <span><a id='oils-selfck-nav-home' href='javascript:void(0);' class='selected'>Home</a></span>
+        <span><a id='oils-selfck-nav-logout-print' href='javascript:void(0);'>Logout</a></span>
+        <span><a id='oils-selfck-nav-logout' href='javascript:void(0);'>Logout (No Receipt)</a></span>
+    </div>
+    <fieldset>
+        <legend>Items Checked Out</legend>
+        <div id='oils-selfck-circ-session-total'></div>
+        <div id='oils-selfck-circ-account-total'></div>
+        <div><a href='javascript:void(0);' id='oils-selfck-items-out-details-link'>View Items Out</a></div>
+    </fieldset>
+    <fieldset>
+        <legend>Holds</legend>
+        <div id='oils-selfck-holds-ready'></div>
+        <div id='oils-selfck-holds-total'></div>
+        <div><a href='javascript:void(0);' id='oils-selfck-hold-details-link'>View Holds</a></div>
+    </fieldset>
+    <fieldset>
+        <legend>Fines</legend>
+        <div id='oils-selfck-fines-total'></div>
+        <div>
+            <span><a href='javascript:void(0);' id='oils-selfck-view-fines-link'>View Details</a></span>
+        </div>
+    </fieldset>
+</div>
+
diff --git a/Open-ILS/src/templates/conify/global/acq/cancel_reason.tt2 b/Open-ILS/src/templates/conify/global/acq/cancel_reason.tt2
new file mode 100644 (file)
index 0000000..63597a6
--- /dev/null
@@ -0,0 +1,33 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Cancel Reasons' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/cancel_reason.js'> </script>
+
+<!-- grid -->
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>PO / Item / Request Cancellation Reasons</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='crGrid.showCreateDialog()'>New Cancel Reason</button>
+                <button dojoType='dijit.form.Button' onClick='crGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div>
+            <span>Context Org Unit</span>
+            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='contextOrgSelector'
+                searchAttr='shortname' labelAttr='shortname'> </select>
+        </div>
+        <table  jsId="crGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'org_unit', 'label', 'description']"
+                query="{id: '*'}"
+                defaultCellWidth='"auto"'
+                fmClass='acqcr'
+                showPaginator='true'
+                editOnEnter='true'>
+        </table>
+    </div>
+</div>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/acq/claim_event_type.tt2 b/Open-ILS/src/templates/conify/global/acq/claim_event_type.tt2
new file mode 100644 (file)
index 0000000..6931809
--- /dev/null
@@ -0,0 +1,42 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Claim Event Types' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+         layoutAlign="top" class="oils-header-panel">
+        <div>Claim Event Types</div>
+        <div>
+            <button onclick="grid.showCreateDialog()">
+                New Claim Event Type
+            </button>
+            <button onclick="grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div class="oils-acq-basic-roomy">
+        <span>Show claim event types available to</span>
+        <select
+            dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId="ownerSelect" searchAttr="shortname"
+            labelAttr="shortname">
+        </select>
+    </div>
+    <table jsId="grid"
+        dojoType="openils.widget.AutoGrid"
+        fieldOrder="['code', 'org_unit', 'description']"
+        suppressFields="['id']"
+        query="{id: '*'}"
+        defaultCellWidth="20"
+        fmClass="acqclet"
+        showPaginator="true"
+        editOnEnter="true">
+    </table>
+</div>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/claim_grid.js"></script>
+<script type="text/javascript">
+openils.Util.addOnLoad(
+    function() {
+        prepareOwnerSelector("ADMIN_ACQ_CLAIM_EVENT_TYPE");
+        populateGrid();
+    }
+);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/acq/claim_policy.tt2 b/Open-ILS/src/templates/conify/global/acq/claim_policy.tt2
new file mode 100644 (file)
index 0000000..8409db1
--- /dev/null
@@ -0,0 +1,42 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Claim Policies' %]
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+         layoutAlign="top" class="oils-header-panel">
+        <div>Claim Policies</div>
+        <div>
+            <button onclick="grid.showCreateDialog()">New Claim Policy</button>
+            <button onclick="grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div class="oils-acq-basic-roomy">
+        <span>Show claim policies available to</span>
+        <select
+            dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId="ownerSelect" searchAttr="shortname"
+            labelAttr="shortname">
+        </select>
+    </div>
+    <table jsId="grid"
+        dojoType="openils.widget.AutoGrid"
+        fieldOrder="['name', 'org_unit', 'description']"
+        suppressFields="['id']"
+        query="{id: '*'}"
+        defaultCellWidth="20"
+        fmClass="acqclp"
+        showPaginator="true"
+        editOnEnter="true">
+    </table>
+</div>
+
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/claim_grid.js"></script>
+<script type="text/javascript">
+openils.Util.addOnLoad(
+    function() {
+        prepareOwnerSelector("ADMIN_CLAIM_POLICY");
+        populateGrid("[% ctx.page_args.0 %]");
+    }
+);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/acq/claim_policy_action.tt2 b/Open-ILS/src/templates/conify/global/acq/claim_policy_action.tt2
new file mode 100644 (file)
index 0000000..a50c0dd
--- /dev/null
@@ -0,0 +1,35 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Claim Policy Actions' %]
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+         layoutAlign="top" class="oils-header-panel">
+        <div>Claim Policy Actions</div>
+        <div>
+            <button onclick="grid.showCreateDialog()">
+                New Claim Policy Action
+            </button>
+            <button onclick="grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <table jsId="grid"
+        dojoType="openils.widget.AutoGrid"
+        suppressFields="['id']"
+        query="{id: '*'}"
+        defaultCellWidth="20"
+        fmClass="acqclpa"
+        showPaginator="true"
+        editOnEnter="true">
+    </table>
+</div>
+
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/claim_grid.js"></script>
+<script type="text/javascript">
+openils.Util.addOnLoad(
+    function() {
+        /* XXX TODO support URI param for claim_policy search constraint */
+        populateGrid();
+    }
+);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/acq/claim_type.tt2 b/Open-ILS/src/templates/conify/global/acq/claim_type.tt2
new file mode 100644 (file)
index 0000000..e9fc2ee
--- /dev/null
@@ -0,0 +1,42 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Claim Types' %]
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+         layoutAlign="top" class="oils-header-panel">
+        <div>Claim Types</div>
+        <div>
+            <button onclick="grid.showCreateDialog()">New Claim Type</button>
+            <button onclick="grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div class="oils-acq-basic-roomy">
+        <span>Show claim types available to</span>
+        <select
+            dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId="ownerSelect" searchAttr="shortname"
+            labelAttr="shortname">
+        </select>
+    </div>
+    <table jsId="grid"
+        dojoType="openils.widget.AutoGrid"
+        fieldOrder="['code', 'org_unit', 'description']"
+        suppressFields="['id']"
+        query="{id: '*'}"
+        defaultCellWidth="20"
+        fmClass="acqclt"
+        showPaginator="true"
+        editOnEnter="true">
+    </table>
+</div>
+
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/claim_grid.js"></script>
+<script type="text/javascript">
+openils.Util.addOnLoad(
+    function() {
+        prepareOwnerSelector("ADMIN_ACQ_CLAIM_TYPE");
+        populateGrid();
+    }
+);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2 b/Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2
new file mode 100644 (file)
index 0000000..a877a08
--- /dev/null
@@ -0,0 +1,100 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Distribution Formulas' %]
+
+<div id='formula-list-div'>
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+            <div>Distribution Formulas</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='fListGrid.showCreateDialog()'>New Formula</button>
+                <button dojoType='dijit.form.Button' onClick='fListGrid.deleteSelected()'>Delete Selected</button>
+                <button dojoType='dijit.form.Button' onClick='cloneSelectedFormula()'>Clone Selected</button>
+            </div>
+        </div>
+        <table  jsId="fListGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'name', 'owner', 'item_count']"
+                suppressFields="['skip_count']"
+                query="{id: '*'}"
+                defaultCellWidth='12'
+                fmClass='acqdf'
+                autoHeight='true'
+                editOnEnter='true'>
+            <thead>
+                <tr>
+                    <th field='name' get='getFormulaName' formatter='formatName'/>
+                    <th field='item_count' get='getItemCount'/>
+                </tr>
+            </thead>
+        </table>
+    </div>
+</div>
+
+
+<div id='formula-entry-div'>
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+        <div><a href='javascript:void(0);' id="formula_head"></a></div>
+        <div>
+        </div>
+    </div>
+    <br/>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='addEntry()'>New Entry</button>
+        <span style='padding-right:20px;'></span>
+        <button dojoType='dijit.form.Button' onClick='saveFormula()'>Apply Changes</button>
+    </div>
+    <br/>
+    <table class='oils-generic-table'>
+        <thead>
+            <tr>
+                <th></th>
+                <th>Owning Library</th>
+                <th>Shelving Location</th>
+                <th>Item Count</th>
+                <th></th>
+            </tr>
+        </thead>
+        <tbody id='formula-entry-tbody'>
+            <tr id='formula-entry-tempate'>
+                <td><div name='delete' dojoType='dijit.form.Button' style='color:red;' scrollOnFocus='false'>X</div></td>
+                <td><div name='owning_lib'></td>
+                <td><div name='location'></td>
+                <td><div name='item_count'></td>
+                <td>
+                    <img src='[% ctx.media_prefix %]/images/dimple.png'/>
+                    <img src='[% ctx.media_prefix %]/images/dimple.png'/>
+                    <img src='[% ctx.media_prefix %]/images/dimple.png'/>
+                <td>
+            </tr>
+        </tbody>
+    </table>
+    <br/>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='addEntry()'>New Entry</button>
+        <span style='padding-right:20px;'></span>
+        <button dojoType='dijit.form.Button' onClick='saveFormula()'>Apply Changes</button>
+    </div>
+</div>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/distribution_formula.js'></script>
+
+<script type="text/javascript"> 
+    var formulaId = '[% ctx.page_args.0 %]';
+
+    function getFormulaName(rowIndex, item) {
+        if(!item) return '';
+        var name = this.grid.store.getValue(item, 'name');
+        var id = this.grid.store.getValue(item, 'id');
+        return id + ':' + name;
+    }
+
+    function formatName(value) {
+        if(value) {
+            var vals = value.split(/:/);
+            return '<a href="'+location.href+ '/'+vals[0]+'">'+vals[1]+'</a>';
+        }
+    }
+</script>
+
+[% END %]
+
diff --git a/Open-ILS/src/templates/conify/global/acq/edi_account.tt2 b/Open-ILS/src/templates/conify/global/acq/edi_account.tt2
new file mode 100644 (file)
index 0000000..12e9acb
--- /dev/null
@@ -0,0 +1,80 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'EDI Accounts' %]
+<style type="text/css">
+    .footer_notes { padding-top: 16px; font-size: smaller; }
+</style>
+
+<div id='main-list-div'>
+    <div dojoType="dijit.layout.ContentPane" layoutAlign='top'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>EDI Accounts</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='pListGrid.showCreateDialog()'>New Account</button>
+                <button dojoType='dijit.form.Button' onClick='pListGrid.deleteSelected()'>Delete Selected</button> 
+            </div>
+        </div>
+    </div>
+    <!--
+    <div>
+        <span>Context Org Unit</span>
+        <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='btContextOrgSelect'
+            searchAttr='shortname' labelAttr='shortname'> </select>
+    </div>
+    -->
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <table  jsId="pListGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'label', 'host', 'username', 'password', 'account', 'owner', 'last_activity', 'provider', 'path', 'in_dir', 'vendacct', 'vendcode']"
+                requiredFields="['label', 'host', 'provider', 'owner']"
+                query="{id: '*'}"
+                defaultCellWidth='"auto"'
+                fmClass='acqedi'
+                showPaginator='true'
+                editOnEnter='true'>
+            <thead>
+                <tr>
+                    <th field='provider' get='getProvider' formatter='formatProvider'/>
+                    <th field='owner' get='getOwner'/>
+                </tr>
+            </thead>
+        </table>
+    </div>
+    <div class="footer_notes">
+        <b>Username</b>, <b>Password</b> and <b>Account</b> are (s)FTP/SSH parameters.<br />
+        <b>Account</b> is unlikely to be used by modern systems and should typically be empty.<br />
+        <b>Vendor Account Number</b> (VAN) is vendor-assigned, only needed if different than the org_unit SAN.<br />
+        <b>Vendor Assigned Code</b> (VAC) is essentially a sub-account designation, e.g. '0001'.  It can be used with or without VAN.<br />
+        The location of codes in the EDI message itself may vary according to vendor-specific semantics.
+    </div>
+</div>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/edi_account.js'> </script>
+
+<script type="text/javascript">
+// dojo.require('openils.widget.OrgUnitFilteringSelect');
+dojo.require('fieldmapper.OrgUtils');
+
+var targetId = '[% ctx.page_args.0 %]';
+
+function getOrgName(orgId) {
+    return fieldmapper.aou.findOrgUnit(orgId).shortname();
+}
+function getOwner(rowIndex, item) {
+    if (!item) return '';
+    var id = this.grid.store.getValue(item, 'owner');
+    return getOrgName(id);
+}
+function getProvider(rowIndex, item) {
+    if (!item) return '';
+    var id = this.grid.store.getValue(item, 'provider');
+    return id + ':' + id;   // TODO: get acq.provider.code from fieldmapper or elsewhere
+}
+function formatProvider(value) {
+    if (value) {
+        var vals = value.split(/:/);
+        return '<a href="[% ctx.base_path %]/conify/global/acq/provider/'+vals[0]+'">'+vals[1]+'</a>';
+    }
+}
+</script>
+[% END %]
+
diff --git a/Open-ILS/src/templates/conify/global/acq/exchange_rate.tt2 b/Open-ILS/src/templates/conify/global/acq/exchange_rate.tt2
new file mode 100644 (file)
index 0000000..8991b47
--- /dev/null
@@ -0,0 +1,33 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Exchange Rates' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+    <div>Exchange Rates</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='erGrid.showCreateDialog()'>New Exchange Rate</button>
+        <button dojoType='dijit.form.Button' onClick='erGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="erGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['id', 'from_currency', 'to_currency', 'ratio']"
+            defaultCellWidth='12'
+            query="{id: '*'}"
+            fmClass='acqexr'
+            editOnEnter='true'>
+    </table>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.widget.AutoGrid');
+    dojo.require('dijit.form.FilteringSelect');
+    openils.Util.addOnLoad(
+        function() {
+            erGrid.loadAll({order_by:{acqpro : 'name'}});
+        }
+    );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/acq/fund_tag.tt2 b/Open-ILS/src/templates/conify/global/acq/fund_tag.tt2
new file mode 100644 (file)
index 0000000..f1a875d
--- /dev/null
@@ -0,0 +1,31 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Fund Tags' %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/fund_tag.js"> </script>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+         layoutAlign="top" class="oils-header-panel">
+        <div>Fund Tags</div>
+        <div>
+            <button dojoType="dijit.form.Button"
+                onClick="ftGrid.showCreateDialog()">New Fund Tag</button>
+            <button dojoType="dijit.form.Button"
+                onClick="ftGrid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div class="oils-acq-basic-roomy">
+        <span>Show tags available to</span>
+        <select
+            dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId="ftOwnerSelect"
+            searchAttr="shortname" labelAttr="shortname">
+        </select>
+    </div>
+    <table jsId="ftGrid"
+        dojoType="openils.widget.AutoGrid"
+        fieldOrder="['id', 'owner', 'name']"
+        query="{id: '*'}"
+        fmClass="acqft"
+        editOnEnter="true">
+    </table>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/acq/invoice_item_type.tt2 b/Open-ILS/src/templates/conify/global/acq/invoice_item_type.tt2
new file mode 100644 (file)
index 0000000..a038372
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Invoice Item Types' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+    <div>Invoice Item Types</div>
+    <div>
+        <button dojoType="dijit.form.Button" onClick="aiitGrid.showCreateDialog();">New Invoice Item Type</button>
+        <button dojoType="dijit.form.Button" onClick="aiitGrid.deleteSelected();">Delete Selected</button>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="aiitGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['code', 'name', 'prorate']"
+            defaultCellWidth="'auto'"
+            query="{id: '*'}"
+            fmClass="aiit"
+            editOnEnter="true">
+    </table>
+</div>
+
+<script type="text/javascript">
+    dojo.require("openils.widget.AutoGrid");
+    dojo.require("dijit.form.FilteringSelect");
+    openils.Util.addOnLoad(
+        function() { aiitGrid.loadAll({"order_by": {"aiit": "name"}}); }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/acq/invoice_payment_method.tt2 b/Open-ILS/src/templates/conify/global/acq/invoice_payment_method.tt2
new file mode 100644 (file)
index 0000000..e24fd08
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Invoice Payment Methods' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+    <div>Invoice Payment Methods</div>
+    <div>
+        <button dojoType="dijit.form.Button" onClick="acqipmGrid.showCreateDialog();">New Invoice Payment Method</button>
+        <button dojoType="dijit.form.Button" onClick="acqipmGrid.deleteSelected();">Delete Selected</button>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="acqipmGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['code', 'name']"
+            defaultCellWidth="'auto'"
+            query="{id: '*'}"
+            fmClass="acqipm"
+            editOnEnter="true">
+    </table>
+</div>
+
+<script type="text/javascript">
+    dojo.require("openils.widget.AutoGrid");
+    dojo.require("dijit.form.FilteringSelect");
+    openils.Util.addOnLoad(
+        function() { acqipmGrid.loadAll({"order_by": {"acqipm": "name"}}); }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/acq/lineitem_alert.tt2 b/Open-ILS/src/templates/conify/global/acq/lineitem_alert.tt2
new file mode 100644 (file)
index 0000000..7ac3f94
--- /dev/null
@@ -0,0 +1,32 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Line Item Alerts' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/lineitem_alert.js'> </script>
+
+<!-- grid -->
+
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Line Item Alert Text</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='alertGrid.showCreateDialog()'>New Line Item Alert Text</button>
+                <button dojoType='dijit.form.Button' onClick='alertGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div>
+            <span>Context Org Unit</span>
+            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='alertContextOrgSelect'
+                searchAttr='shortname' labelAttr='shortname'> </select>
+        </div>
+        <table  jsId="alertGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'code', 'description', 'owning_lib']"
+                query="{id: '*'}"
+                defaultCellWidth='20'
+                fmClass='acqliat'
+                editOnEnter='true'>
+        </table>
+    </div>
+</div>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/acq/lineitem_marc_attr_def.tt2 b/Open-ILS/src/templates/conify/global/acq/lineitem_marc_attr_def.tt2
new file mode 100644 (file)
index 0000000..6504100
--- /dev/null
@@ -0,0 +1,33 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Line Item MARC Attributes' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/lineitem_marc_attr_def.js'> </script>
+
+<!-- grid -->
+
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Line Item MARC Attribute Definition Editor</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='attrGrid.showCreateDialog()'>New Attribute</button>
+                <button dojoType='dijit.form.Button' onClick='attrGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <table  jsId="attrGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'code', 'description', 'tag', 'subfield', 'ident', 'remove', 'xpath']"
+                query="{id: '*'}"
+                defaultCellWidth='"auto"'
+                fmClass='acqlimad'
+                editOnEnter='true'>
+            <thead>
+                <tr>
+                    <th field='tag' get='attrGridGetTag'>Tag</th>
+                    <th field='subfield' get='attrGridGetSubfield'>Subfield</th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+</div>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/acq/provider.tt2 b/Open-ILS/src/templates/conify/global/acq/provider.tt2
new file mode 100644 (file)
index 0000000..117f8e2
--- /dev/null
@@ -0,0 +1,211 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Providers' %]
+
+<div class="hidden">
+    <select dojoType="dijit.form.FilteringSelect" jsId="nameSelect">
+        <option value='owning_lib'>Owning Library</option>
+        <option value='quantity'>Quantity</option>
+        <option value='call_number'>Call Number</option>
+        <option value='fund_code'>Fund Code</option>
+        <option value='local_note'>Local Note</option>
+        <option value='price'>Price</option>
+        <option value='circ_modifier'>Circulation Modifier</option>
+        <option value='copy_location'>Copy Location</option>
+        <option value='collection_code'>Collection Code</option>
+    </select>
+</div> 
+
+<div id='provider-list-div'>
+    <div dojoType="dijit.layout.ContentPane" layoutAlign='top'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Provider</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='pListGrid.showCreatePane()'>New Provider</button>
+                <button dojoType='dijit.form.Button' onClick='pListGrid.deleteSelected()'>Delete Selected</button> 
+            </div>
+        </div>
+    </div>
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <table  jsId="pListGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'name', 'code', 'owner', 'currency_type']"
+                query="{id: '*'}"
+                defaultCellWidth='"auto"'
+                fmClass='acqpro'
+                showPaginator='true'
+                editOnEnter='true'>
+            <thead>
+                <tr><th field='name' get='getProviderName' formatter='formatName'/></tr>
+            </thead>
+        </table>
+    </div>
+</div>
+
+<div id='provider-summary-pane'></div>     
+<div id='provider-details-div' style='height:600px'>
+<div dojoType="dijit.layout.TabContainer" style='height:100%' jsId='providerTabs'>
+
+    <div dojoType="dijit.layout.ContentPane" title='Provider Address' select='true' id='provider-address'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Provider Address</div>
+            <div>
+            <button dojoType='dijit.form.Button' onClick='paListGrid.showCreateDialog()'>New Provider Address</button>
+            <button dojoType='dijit.form.Button' onClick='paListGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:100px'>
+            <table  jsId="paListGrid"
+                    dojoType="openils.widget.AutoGrid"
+                    fieldOrder="['id', 'address_type', 'provider', 'street1', 'street2', 'city', 'county', 'state', 'country', 'post_code']"
+                    requiredFields="['street1', 'city', 'state', 'country', 'post_code']"
+                    query="{id: '*'}"
+                    fmClass='acqpa'
+                    defaultCellWidth='"auto"' 
+                    editOnEnter='true'>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.layout.ContentPane" title='Provider Contact' id='tab-pro-contact'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Provider Contact</div>
+            <div>
+            <button dojoType='dijit.form.Button' onClick='pcListGrid.showCreateDialog()'>New Contact</button>
+            <button dojoType='dijit.form.Button' onClick='pcListGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:200px'>
+            <table  jsId="pcListGrid"
+                    dojoType="openils.widget.AutoGrid"
+                    fieldOrder="['id', 'name', 'provider', 'role', 'email']"
+                    requiredFields="['name']"
+                    defaultCellWidth='"auto"'
+                    query="{id: '*'}"
+                    fmClass='acqpc'
+                    editOnEnter='true'>
+            </table>
+        </div>
+      
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Contact Address</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='pcaListGrid.showCreateDialog()'>New Contact Address</button>
+                <button dojoType='dijit.form.Button' onClick='pcaListGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:200px'>
+            <table  jsId="pcaListGrid"
+                    dojoType="openils.widget.AutoGrid"
+                    fieldOrder="['id', 'address_type', 'contact', 'street1', 'street2', 'city', 'county', 'state', 'country', 'post_code']"
+                    requiredFields="['street1', 'city', 'state', 'country', 'post_code']"
+                    query="{id: '*'}"
+                    fmClass='acqpca'
+                    defaultCellWidth='"auto"' 
+                    editOnEnter='true'>
+            </table>
+        </div>
+       
+    </div>
+    <div dojoType="dijit.layout.ContentPane" title='Attribute Definitions' id='tab-attr'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div> Attribute Definitions</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='padListGrid.showCreateDialog()'>New Attribute Definition</button>
+                <button dojoType='dijit.form.Button' onClick='padListGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:200px'>
+            <table  jsId="padListGrid"
+                    dojoType="openils.widget.AutoGrid"
+                    fieldOrder="['id', 'provider', 'code', 'description',  'provider', 'ident', 'remove',  'tag', 'subfield', 'xpath']"
+                    requiredFields="['code', 'description', 'xpath']"
+                    query="{id: '*'}"
+                    fmClass='acqlipad'
+                    editOnEnter='true'>
+                <thead>
+                    <tr>
+                        <th field="xpath" width='auto'/>
+                        <th field="tag" name="Tag" get='getParsedTag'/>
+                        <th field="subfield" name="Subfield" get='getParsedSubf'/>
+                    </tr>
+                </thead>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.layout.ContentPane" title='Holding Subfield' id='tab-hold'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Holding Subfield</div>
+            <div>
+            <button dojoType='dijit.form.Button' onClick='phsListGrid.showCreateDialog()'>New Holding Subfield</button>
+            <button dojoType='dijit.form.Button' onClick='phsListGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:400px'>
+            <table  jsId="phsListGrid"
+                    dojoType="openils.widget.AutoGrid"
+                    fieldOrder="['id', 'provider', 'name', 'subfield']"
+                    requiredFields="['name', 'subfield']"
+                    query="{id: '*'}"
+                    fmClass='acqphsm'
+                    editOnEnter='true'>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.layout.ContentPane" title="Invoices" id="tab-invoice">
+        <big class="oils-acq-basic-roomy"><strong>Invoices</strong></big>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style="height:400px">
+            <table jsId="invListGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['inv_ident', 'receiver', 'shipper']"
+                suppressFields="['id', 'provider']"
+                query="{id: '*'}"
+                showPaginator='true'
+                fmClass="acqinv">
+                <thead>
+                    <tr>
+                        <th field="inv_ident" get="getInvIdent" formatter="formatInvIdent" />
+                    </tr>
+                </thead>
+            </table>
+        </div>
+    </div>
+</div>
+</div>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/provider.js'> </script>
+
+<script type="text/javascript"> 
+    var providerId = '[% ctx.page_args.0 %]';
+
+function getInvIdent(rowIndex, item) {
+    if (!item) return {};
+    return {
+          "id": this.grid.store.getValue(item, "id"),
+        "name": this.grid.store.getValue(item, "inv_ident")
+    };
+}
+
+function formatInvIdent(o) {
+    return "<a href='" + oilsBasePath + "/acq/invoice/view/" + o.id + "'>" + o.name + "</a>";
+}
+
+function getProviderName(rowIndex, item) {
+    if(!item) return '';
+    var name = this.grid.store.getValue(item, 'name');
+    var id   = this.grid.store.getValue(item, 'id');
+    return id + ':' + name;
+}
+
+function formatName(value) {
+    if(value) {
+        var vals = value.split(/:/);
+        return '<a href="[% ctx.base_path %]/conify/global/acq/provider/'+vals[0]+'">'+vals[1]+'</a>';
+    }
+}
+
+</script>
+
+[% END %]
+
diff --git a/Open-ILS/src/templates/conify/global/action/survey.tt2 b/Open-ILS/src/templates/conify/global/action/survey.tt2
new file mode 100644 (file)
index 0000000..9b530ee
--- /dev/null
@@ -0,0 +1,96 @@
+[% WRAPPER base.tt2 %]
+   <div dojoType="dijit.layout.ContentPane" layoutAlign='top'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Survey List</div>
+            <div>
+                <button dojoType='dijit.form.Button' onclick='svNewSurvey();'>Add New Survey</button>
+                <button dojoType='dijit.form.Button' onclick='deleteFromGrid();'>Delete Selected</button>
+                <button dojoType='dijit.form.Button' onclick='endSurvey();'>End Selected Surveys</button>
+            </div>
+        </div>
+
+<!-- grid -->
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:400px'>
+    <table jsId="svGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}">
+        <thead>
+            <tr>
+                <th field="id">Survey ID</th>
+                <th field="name" formatter='formatName' width='auto'>Name</th>
+                <th field="description" width='auto'>Description</th>                    
+                <th field="owner" get='getOrgInfo'>Owning Library</th>
+                <th field="start_date" width='auto' get='getDateTimeField'>Survey Start Date</th>
+                <th field="end_date" width='auto' get='getDateTimeField'>End Date</th>
+                <th field="opac" formatter='formatBool'>OPAC Survey?</th>                
+                <th field="poll" formatter='formatBool' >Poll Style?</th>
+                <th field="required" formatter='formatBool'>Is Required?</th>
+                <th field="usr_summary" formatter='formatBool'>Display in User Summary?</th>
+            </tr>
+        </thead>
+    </table>    
+</div>
+
+<div style='display:none;' dojoType="dijit.Dialog" jsId='svSurveyDialog' title='New Survey' execute='svCreate(arguments[0]);'>
+
+        <table id='surveyDialog'>
+            <tr>
+                <td>Name</td>
+                <td><input dojoType='dijit.form.TextBox' name='svName'/></td>
+            </tr>
+            <tr>
+                <td>Description</td>
+                <td><input dojoType='dijit.form.TextBox' name='svDescription'></td>
+            </tr>
+            <tr>
+                <td>Owning Library</td>
+                <td><select dojoType='openils.widget.OrgUnitFilteringSelect' name='svOwner' jsId='asvOwningOrg' searchAttr='shortname' labelAttr='shortname'/></td>
+            </tr>
+            <tr>
+                <td>Start Date</td>
+                <td><input dojoType='dijit.form.TextBox' name='svStart_date'></td>
+            </tr>
+            <tr>
+                <td>End Date</td>
+                <td><input dojoType='dijit.form.TextBox' name='svEnd_date'></td>
+            </tr>
+            <tr>
+                <td>OPAC Survey?</td>
+                <td><input dojoType='dijit.form.CheckBox' name='svOpac'></td>
+            </tr>
+            <tr>
+                <td>Poll Style?</td>
+                <td><input dojoType='dijit.form.CheckBox' name='svPoll'></td>
+            </tr>
+            <tr>
+                <td>Is Required?</td>
+                <td><input dojoType='dijit.form.CheckBox' name='svRequired'></td>
+            </tr>
+            <tr>
+                <td>Display in User Summary?</td>
+                <td><input dojoType='dijit.form.CheckBox' name='svUsr_summary'></td>
+            </tr>
+            <tr>
+                <td colspan='2' align='center'>
+                    <button jsId='createSave' dojoType='dijit.form.Button' type='submit'>Save Changes</button>
+
+                    
+                </td>
+            </tr>
+            
+        </table>
+</div>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/action/survey.js'></script>
+<script type="text/javascript">
+    function formatName(inDatum) {
+        for(var i in svCache){
+            var sv = svCache[i];
+            var id = sv.id();
+            if (inDatum  == sv.name()){
+                return '<a href="[% ctx.base_path %]/conify/global/action/survey/edit/'+id+'">'+inDatum+'</a>';
+            }
+        }
+    }
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/action/survey/edit.tt2 b/Open-ILS/src/templates/conify/global/action/survey/edit.tt2
new file mode 100644 (file)
index 0000000..fe4fdb5
--- /dev/null
@@ -0,0 +1,23 @@
+[% WRAPPER 'base.tt2' %]
+<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/skin/default/conify.css'/>
+<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/theme/default/conify.css'/>
+
+<!-- General survey info -->
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div id='edit-pane'> </div>
+
+</div>
+
+<!-- question/answer table-->
+<table id='survey_table'>
+</table>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/action/survey/edit.js'></script>
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    var surveyId = [%ctx.page_args.0 %];
+    openils.Util.addOnLoad(function() { drawSurvey(surveyId) });
+</script>
+
+
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2 b/Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2
new file mode 100644 (file)
index 0000000..08626f8
--- /dev/null
@@ -0,0 +1,122 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Event Definitions' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/action_trigger/event_definition.js'></script>
+<script type="text/javascript">openils.Util.addOnLoad(loadEventDef)</script>
+
+<div class='hidden'>
+    <select dojoType='dijit.form.ComboBox' jsId='eventDefGranularity'>
+        <option value='hourly'>Hourly</option>
+        <option value='daily'>Daily</option>
+        <option value='weekly'>Weekly</option>
+        <option value='monthly'>Monthly</option>
+        <option value='yearly'>Yearly</option>
+    </select>
+</div>
+
+
+<div dojoType="dijit.layout.TabContainer" style='height:100%;' jsId='eventDefTabs'>
+
+    <div dojoType="dijit.layout.ContentPane" title='Event Definitions' id='tab-atevdef'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+            <div>Trigger Event Definitions</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='edGrid.showCreatePane()'>New</button>
+                <button dojoType='dijit.form.Button' onClick='edGrid.showClonePane(cloneEventEnv)'>Clone Selected</button>
+                <button dojoType='dijit.form.Button' onClick='edGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
+            <table  jsId="edGrid" 
+                    dojoType="openils.widget.AutoGrid" 
+                    fieldOrder="['owner', 'name', 'hook', 'active', 'delay', 'delay_field', 'group_field', 'reactor', 'validator']"
+                    suppressFields="['usr_field', 'opt_in_setting', 'max_delay', 'template', 'cleanup_failure', 'cleanup_success']"
+                    query="{id: '*'}" 
+                    fmClass='atevdef'
+                    editStyle='pane'
+                    showPaginator='true'
+                    editOnEnter='true'>
+                <thead>
+                    <tr><th field='name' width='15%' get='getEventDefNameLink' formatter='formatEventDefNameLink'/></tr>
+                </thead>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.layout.ContentPane" title='Hooks' id='tab-ath' style='height:100%;'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Trigger Hooks</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='thGrid.showCreateDialog()'>New</button>
+                <button dojoType='dijit.form.Button' onClick='thGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
+            <table  jsId="thGrid" 
+                    autoHeight='true'
+                    dojoType="openils.widget.AutoGrid" 
+                    fieldOrder="['key', 'core_type', 'description', 'passive']"
+                    query="{key: '*'}" 
+                    fmClass='ath'
+                    defaultCellWidth='20'
+                    showPaginator='true'
+                    editOnEnter='true'>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.layout.ContentPane" title='Reactors' id='tab-atreact'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Trigger Reactors</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='trGrid.showCreateDialog()'>New</button>
+                <button dojoType='dijit.form.Button' onClick='trGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
+            <table  jsId="trGrid" 
+                    dojoType="openils.widget.AutoGrid" 
+                    query="{module: '*'}" 
+                    fmClass='atreact'
+                    showPaginator='true'
+                    editOnEnter='true'>
+                <thead>
+                    <tr>
+                        <th field='module' width='200px;'/>
+                        <th field='description' width='auto'/>
+                    </tr>
+                </thead>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.layout.ContentPane" title='Validators' id='tab-atval'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Trigger Validators</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='tvGrid.showCreateDialog()'>New</button>
+                <button dojoType='dijit.form.Button' onClick='tvGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
+            <table  jsId="tvGrid" 
+                    dojoType="openils.widget.AutoGrid" 
+                    query="{module: '*'}" 
+                    fmClass='atval'
+                    showPaginator='true'
+                    editOnEnter='true'>
+                <thead>
+                    <tr>
+                        <th field='module' width='200px'/>
+                        <th field='description' width='auto'/>
+                    </tr>
+                </thead>
+            </table>
+        </div>
+    </div>
+
+</div>
+
+<div jsId='progressDialog' dojoType='openils.widget.ProgressDialog' indeterminate='true'></div>
+
+[% END %]
+
diff --git a/Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2 b/Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2
new file mode 100644 (file)
index 0000000..a435757
--- /dev/null
@@ -0,0 +1,88 @@
+[% WRAPPER base.tt2 %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
+    <h2 id='at-event-def-name'/>
+</div>
+
+<div dojoType="dijit.layout.TabContainer" style='height:100%;' jsId='eventDefTabs'>
+
+    <div dojoType="dijit.layout.ContentPane" title='Event Environment' id='tab-atenv'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Trigger Event Environment</div>
+            <div>   
+                <button dojoType='dijit.form.Button' onClick='teeGrid.showCreateDialog()'>New</button>
+                <button dojoType='dijit.form.Button' onClick='teeGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
+            <table  jsId="teeGrid" 
+                    dojoType="openils.widget.AutoGrid" 
+                    fieldOrder="['id', 'event_def', 'path', 'collector', 'label']"
+                    query="{id: '*'}" 
+                    fmClass='atenv'
+                    defaultCellWidth='20'
+                    editOnEnter='true'>
+            </table>
+        </div>
+    </div>
+
+
+    <div dojoType="dijit.layout.ContentPane" title='Event Parameters' id='tab-atevparam'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Trigger Event Parameters</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='tepGrid.showCreateDialog()'>New</button>
+                <button dojoType='dijit.form.Button' onClick='tepGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
+            <table  jsId="tepGrid" 
+                    dojoType="openils.widget.AutoGrid" 
+                    fieldOrder="['id', 'event_def', 'param', 'value']"
+                    query="{id: '*'}" 
+                    fmClass='atevparam'
+                    defaultCellWidth='20'
+                    editOnEnter='true'>
+            </table>
+        </div>
+    </div>
+
+    <div dojoType="dijit.layout.ContentPane" title='Test' id='tab-test'>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Event Definition Tests</div>
+            <div></div>
+        </div>
+        <br/>
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
+            <div style='border:1px solid #aaa;' id='at-test-none'>
+                No tests for this type of event definition hook
+            </div>
+            <div style='border:1px solid #aaa;' id='at-test-circ' class='hidden'>
+                <h2>Test Circulation</h2>
+                <table class='oils-generic-table'>
+                    <tr>
+                        <td>Barcode of Circulating Copy</td>
+                        <td><div dojoType='dijit.form.TextBox' jsId='circTestBarcode'/></td>
+                    </tr>
+                    <tr>
+                        <td colspan='2'><button dojoType='dijit.form.Button' onclick='evtTestCirc'>Go</button></td>
+                    </tr>
+                </table>
+            </div>
+
+            <div id='test-event-output' style='width:90%;margin:20px;border:1px solid #aaa;' class='hidden'>
+            </div>
+            <div jsId='progressDialog' dojoType='openils.widget.ProgressDialog' indeterminate='true'></div>
+        </div>
+    </div>
+
+</div>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/action_trigger/event_definition.js'></script>
+<script type="text/javascript">
+    eventDefId = [% ctx.page_args.0 %];
+    openils.Util.addOnLoad(loadEventDefData)
+</script>
+
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/asset/copy_location_order.tt2 b/Open-ILS/src/templates/conify/global/asset/copy_location_order.tt2
new file mode 100644 (file)
index 0000000..281eff7
--- /dev/null
@@ -0,0 +1,30 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Copy Location Order' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/asset/copy_location_order.js'> </script>
+<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/js/dojo/dojo/resources/dnd.css'/>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+    <div>Copy Location Order</div>
+    <div></div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <span>Context Org Unit</span>
+    <select dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId='contextOrgSelector'
+            searchAttr='shortname'
+            labelAttr='shortname'>
+    </select>
+    <button dojoType='dijit.form.Button' onClick='applyChanges()'>Apply Changes</button>
+    <span>To move an item, drag it up or down with the mouse.</span>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <ol id='acl-ol'></ol>
+</div>
+
+<div class='hidden'>
+    <div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'/>
+</div>
+
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/asset/copy_template.tt2 b/Open-ILS/src/templates/conify/global/asset/copy_template.tt2
new file mode 100644 (file)
index 0000000..495df04
--- /dev/null
@@ -0,0 +1,52 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Copy Templates" %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/asset/copy_template.js"> </script>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+         layoutAlign="top" class="oils-header-panel">
+        <div>Copy Templates</div>
+        <div>
+            <button dojoType="dijit.form.Button"
+                onClick="actGrid.showCreatePane()">New Copy Template</button>
+            <button dojoType="dijit.form.Button"
+                onClick="actGrid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div class="oils-acq-basic-roomy">
+        <span>Show templates available at or above</span>
+        <select
+            dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId="actOwnerSelect"
+            searchAttr="shortname" labelAttr="shortname">
+        </select>
+    </div>
+    <table jsId="actGrid"
+        dojoType="openils.widget.AutoGrid"
+        fieldOrder="['name','owning_lib','circulate','holdable','opac_visible','loan_duration','fine_level','location','circ_modifier','floating','deposit','ref','mint_condition']"
+        suppressFields="['creator','editor','edit_date','create_date','circ_lib']"
+        suppressEditFields="['creator','editor','edit_date','create_date','circ_lib']"
+        query="{id: '*'}"
+        editStyle="pane"
+        fmClass="act"
+        autoHeight="true"
+        createPaneOnSubmit="create_or_update_act"
+        editPaneOnSubmit="create_or_update_act"
+        editOnEnter="true">
+    </table>
+    <div class="hidden">
+        <!-- these FilteringSelects will be attached manually to actGrid -->
+        <select required="false" dojoType="dijit.form.FilteringSelect"
+            jsId="special_fine_level">
+            <option value="1">Low</option>
+            <option value="2">Normal</option>
+            <option value="3">High</option>
+        </select>
+        <select required="false" dojoType="dijit.form.FilteringSelect"
+            jsId="special_loan_duration">
+            <option value="1">Short</option>
+            <option value="2">Normal</option>
+            <option value="3">Long</option>
+        </select>
+    </div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/biblio/monograph_part.tt2 b/Open-ILS/src/templates/conify/global/biblio/monograph_part.tt2
new file mode 100644 (file)
index 0000000..08fc5c0
--- /dev/null
@@ -0,0 +1,37 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Configure Monograph Parts' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Monograph Parts</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='monoPartGrid.showCreateDialog()'>New Monograph Part</button>
+            <button dojoType='dijit.form.Button' onClick='monoPartGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="monoPartGrid"
+            dojoType="openils.widget.AutoGrid"
+            autoHeight='true'
+            fieldOrder="['label']"
+            suppressFields="['id','record','label_sortkey']"
+            suppressEditFields="['id','label_sortkey']"
+            query="{id: null}"
+            fmClass='bmp'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.CGI');
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+
+    var cgi = new openils.CGI();
+    openils.Util.addOnLoad( function() {
+        monoPartGrid.overrideEditWidgets.record = new dijit.form.TextBox({"disabled": true});
+        monoPartGrid.overrideEditWidgets.record.shove = { create : cgi.param('r') };
+        monoPartGrid.loadAll({order_by : {bmp : 'label'}}, {record : cgi.param('r')});
+    });
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/booking/resource.tt2 b/Open-ILS/src/templates/conify/global/booking/resource.tt2
new file mode 100644 (file)
index 0000000..bb51583
--- /dev/null
@@ -0,0 +1,70 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Resources' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+    <div>Resources</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='brsrcGrid.showCreateDialog()'>New Resource</button>
+        <button dojoType='dijit.form.Button' onClick='brsrcGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <span>Context Org Unit</span>
+    <select dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId='contextOrgSelector'
+            searchAttr='shortname'
+            labelAttr='shortname'>
+    </select>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="brsrcGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['owner', 'type', 'barcode',
+                'overbook', 'deposit', 'deposit_amount', 'user_fee']"
+            query="{id: '*'}"
+            fmClass='brsrc'
+            showPaginator='true'
+            autoHeight='true'
+            editOnEnter='true'>
+    </table>
+</div>
+<script type ="text/javascript">
+    dojo.require('dijit.form.FilteringSelect');
+    dojo.require('openils.widget.AutoGrid');
+    dojo.require("openils.widget.PCrudAutocompleteBox");
+    dojo.require('openils.widget.OrgUnitFilteringSelect');
+
+    function filterGrid() {
+        brsrcGrid.resetStore();
+        var unit = contextOrgSelector.getValue();
+        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
+
+        if(unit){
+            brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}}, { 'owner' : list });
+        } else {
+            brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}});
+        }
+    }
+
+    openils.Util.addOnLoad(
+        function() {
+            var org_id = openils.User.user.ws_ou();
+            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
+
+            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE', contextOrgSelector, null, function() {
+                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
+
+            var search = {'owner':list};
+
+            if (xulG && xulG.resultant_brsrc)
+                search = {id: xulG.resultant_brsrc};
+
+            brsrcGrid.overrideEditWidgets.type =
+                new openils.widget.PCrudAutocompleteBox({
+                    "fmclass": "brt", "searchAttr": "name"
+                });
+            brsrcGrid.overrideEditWidgets.type.shove = {"create": ""};
+            brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}}, search);
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/booking/resource_attr.tt2 b/Open-ILS/src/templates/conify/global/booking/resource_attr.tt2
new file mode 100644 (file)
index 0000000..d3ef1c4
--- /dev/null
@@ -0,0 +1,63 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Resource Attributes' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+    <div>Resource Attributes</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='braGrid.showCreateDialog()'>New Resource Attribute</button>
+        <button dojoType='dijit.form.Button' onClick='braGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <span>Context Org Unit</span>
+    <select dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId='contextOrgSelector'
+            searchAttr='shortname'
+            labelAttr='shortname'>
+    </select>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="braGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'owner', 'resource_type', 'required']"
+            query="{id: '*'}"
+            fmClass='bra'
+            autoHeight='true'
+            showPaginator='true'
+            editOnEnter='true'>
+    </table>
+</div>
+
+<script type ="text/javascript">
+    dojo.require("openils.widget.PCrudAutocompleteBox");
+    dojo.require('openils.widget.AutoGrid');
+    dojo.require('openils.widget.OrgUnitFilteringSelect');
+
+    function filterGrid() {
+        braGrid.resetStore();
+        var unit = contextOrgSelector.getValue();
+        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
+
+        if(unit){
+            braGrid.loadAll({order_by:{bra : 'name'}}, { 'owner' : list });
+        } else {
+            braGrid.loadAll({order_by:{bra : 'name'}});
+        }
+    }
+
+    openils.Util.addOnLoad(
+        function() {
+            braGrid.overrideEditWidgets.resource_type =
+                new openils.widget.PCrudAutocompleteBox({
+                    "fmclass": "brt", "searchAttr": "name"
+                });
+            braGrid.overrideEditWidgets.resource_type.shove = {"create": ""};
+            var org_id = openils.User.user.ws_ou();
+            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
+
+            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_ATTR', contextOrgSelector, null, function() {
+                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
+            braGrid.loadAll({order_by:{bra : 'name'}}, { 'owner' : list });
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/booking/resource_attr_map.tt2 b/Open-ILS/src/templates/conify/global/booking/resource_attr_map.tt2
new file mode 100644 (file)
index 0000000..9943afc
--- /dev/null
@@ -0,0 +1,63 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Resource Attribute Maps' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+    <div>Resource Attribute Maps</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='bramGrid.showCreateDialog()'>New Resource Attribute Map</button>
+        <button dojoType='dijit.form.Button' onClick='bramGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <span>Context Org Unit</span>
+    <select dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId='contextOrgSelector'
+            searchAttr='shortname'
+            labelAttr='shortname'>
+    </select>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="bramGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['resource', 'resource_attr', 'value']"
+            query="{id: '*'}"
+            fmClass='bram'
+            autoHeight='true'
+            showPaginator='true'
+            editOnEnter='true'>
+    </table>
+</div>
+
+<script type ="text/javascript">
+    dojo.require("openils.widget.PCrudAutocompleteBox");
+    dojo.require('openils.widget.AutoGrid');
+    dojo.require('openils.widget.OrgUnitFilteringSelect');
+
+    function filterGrid() {
+        bramGrid.resetStore();
+        var unit = contextOrgSelector.getValue();
+        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
+
+        if(unit){
+            bramGrid.loadAll({"order_by":"resource_attr"}, {"resource_attr":{"in":{"select":{"bra":["id"]},"from":"bra","where":{"+bra":{"owner": list } } } } } );
+        } else {
+            bramGrid.loadAll({order_by:{bram : 'resource_attr'}});
+        }
+    }
+    openils.Util.addOnLoad(
+        function() {
+            var org_id = openils.User.user.ws_ou();
+            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
+
+            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_TYPE', contextOrgSelector, null, function() {
+                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
+
+            bramGrid.overrideEditWidgets.resource =
+                new openils.widget.PCrudAutocompleteBox({
+                    "fmclass": "brsrc", "searchAttr": "barcode"
+                });
+            bramGrid.overrideEditWidgets.resource.shove = {"create": ""};
+            bramGrid.loadAll({"order_by":"resource_attr"}, {"resource_attr":{"in":{"select":{"bra":["id"]},"from":"bra","where":{"+bra":{"owner": list } } } } } );
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/booking/resource_attr_value.tt2 b/Open-ILS/src/templates/conify/global/booking/resource_attr_value.tt2
new file mode 100644 (file)
index 0000000..61c4519
--- /dev/null
@@ -0,0 +1,59 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Resource Attribute Values' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+    <div>Resource Attribute Values</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='bravGrid.showCreateDialog()'>New Resource Attribute Value</button>
+        <button dojoType='dijit.form.Button' onClick='bravGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <span>Context Org Unit</span>
+    <select dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId='contextOrgSelector'
+            searchAttr='shortname'
+            labelAttr='shortname'>
+    </select>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="bravGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['owner', 'attr', 'valid_value']"
+            query="{id: '*'}"
+            fmClass='brav'
+            autoHeight='true'
+            showPaginator='true'
+            editOnEnter='true'>
+    </table>
+</div>
+
+<script type ="text/javascript">
+    dojo.require('dijit.form.FilteringSelect');
+    dojo.require('openils.widget.AutoGrid');
+    dojo.require('openils.widget.OrgUnitFilteringSelect');
+
+    function filterGrid() {
+        bravGrid.resetStore();
+        var unit = contextOrgSelector.getValue();
+        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
+
+        if(unit){
+            bravGrid.loadAll({order_by:{brav : 'attr'}}, { 'owner' : list });
+        } else {
+            bravGrid.loadAll({order_by:{brav : 'attr'}});
+        }
+    }
+
+    openils.Util.addOnLoad(
+        function() {
+            var org_id = openils.User.user.ws_ou();
+            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
+
+            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_ATTR_VALUE', contextOrgSelector, null, function() {
+                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
+
+            bravGrid.loadAll({order_by:{brav : 'attr'}}, { 'owner' : list });
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/booking/resource_type.tt2 b/Open-ILS/src/templates/conify/global/booking/resource_type.tt2
new file mode 100644 (file)
index 0000000..3783aa2
--- /dev/null
@@ -0,0 +1,61 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Resource Types' %]
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+        <div>Resource Types</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='brtGrid.showCreateDialog()'>New Resource Type</button>
+            <button dojoType='dijit.form.Button' onClick='brtGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <span>Context Org Unit</span>
+    <select dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId='contextOrgSelector'
+            searchAttr='shortname'
+            labelAttr='shortname'>
+    </select>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="brtGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'fine_interval', 'fine_amount',
+                'owner', 'catalog_item', 'transferable']"
+            suppressFields="['record']"
+            suppressEditFields="['record']"
+            query="{id: '*'}"
+            fmClass='brt'
+            showPaginator='true'
+            autoHeight='true'
+            editOnEnter='true'>
+    </table>
+</div>
+
+<script type ="text/javascript">
+    dojo.require('dijit.form.FilteringSelect');
+    dojo.require('openils.widget.AutoGrid');
+    dojo.require('openils.widget.OrgUnitFilteringSelect');
+
+    function filterGrid() {
+        brtGrid.resetStore();
+        var unit = contextOrgSelector.getValue();
+        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
+
+        if(unit){
+            brtGrid.loadAll({order_by:{brt : 'name'}}, { 'owner' : list });
+        } else {
+            brtGrid.loadAll({order_by:{brt : 'name'}});
+        }
+    }
+    openils.Util.addOnLoad(
+        function() {
+            var org_id = openils.User.user.ws_ou();
+            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
+
+            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_TYPE', contextOrgSelector, null, function() {
+                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
+
+            brtGrid.loadAll({"order_by": {"brt": "name"}}, { 'owner' : list });
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/cat/authority/browse_axis.tt2 b/Open-ILS/src/templates/conify/global/cat/authority/browse_axis.tt2
new file mode 100644 (file)
index 0000000..4594158
--- /dev/null
@@ -0,0 +1,36 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Configure Authority Browse Axes" %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+        <div>Browse Axes</div>
+        <div>
+            <button dojoType="dijit.form.Button" onClick="aba_grid.showCreateDialog()">New Browse Axis</button>
+            <button dojoType="dijit.form.Button" onClick="aba_grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div>
+        <table  jsId="aba_grid"
+                dojoType="openils.widget.AutoGrid"
+                autoHeight="true"
+                defaultCellWidth="'auto'"
+                fieldOrder="['code','name','description','sorter']"
+                suppressEditFields="['id']"
+                query="{id: '*'}"
+                fmClass="aba"
+                editOnEnter="true">
+        </table>
+    </div>
+</div>
+<script type="text/javascript">
+    dojo.require("openils.widget.AutoGrid");
+
+    function my_init() {
+        aba_grid.overrideWidgetArgs.sorter = {
+            "dijitArgs": {"query": {"sorter": "t"}}
+        };
+        aba_grid.loadAll({"order_by": {"aba": "code"}});
+    }
+
+    openils.Util.addOnLoad(my_init);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/cat/authority/browse_axis_authority_field_map.tt2 b/Open-ILS/src/templates/conify/global/cat/authority/browse_axis_authority_field_map.tt2
new file mode 100644 (file)
index 0000000..c80403c
--- /dev/null
@@ -0,0 +1,71 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Configure Browse Axis-Authority Field Maps" %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+        <div>Browse Axis-Authority Field Maps</div>
+        <div>
+            <button dojoType="dijit.form.Button" onClick="abaafm_grid.showCreateDialog()">New Browse Axis-Authority Field Map</button>
+            <button dojoType="dijit.form.Button" onClick="abaafm_grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div id="authority-field-metadata-holder" class="hidden">
+        Showing only browse axis-authority field maps linked to authority field:
+        <a id="authority-field-metadata"></a>
+    </div>
+    <div>
+        <table  jsId="abaafm_grid"
+                dojoType="openils.widget.AutoGrid"
+                autoHeight="true"
+                defaultCellWidth="'auto'"
+                suppressEditFields="['id']"
+                fieldOrder="['axis','field']"
+                query="{id: '*'}"
+                fmClass="abaafm"
+                editOnEnter="true">
+        </table>
+    </div>
+</div>
+<script type="text/javascript"
+    src="[% ctx.media_prefix %]/js/ui/default/conify/global/cat/authority/common.js"></script>
+<script type="text/javascript">
+    dojo.require("openils.widget.AutoGrid");
+    dojo.require("openils.CGI");
+    dojo.require("openils.PermaCrud");
+
+    dojo.requireLocalization("openils.authority", "authority");
+    var localeStrings =
+        dojo.i18n.getLocalization("openils.authority", "authority");
+
+    var cgi, pcrud;
+
+    function my_init() {
+        var authority_field, control_set_id;
+        var where = {"id": {"!=": null}};
+
+        cgi = new openils.CGI();
+        pcrud = new openils.PermaCrud();
+
+        authority_field = cgi.param("acsaf");
+        control_set_id = cgi.param("acs");
+
+        if (authority_field) {
+            /* This block not only limits the scope of our search for abaafm
+               objects, but makes sure that we create/update only abaafm's
+               that link back to the authority field (acsaf) we're interested
+               in.  */
+            authority_field = pcrud.retrieve("acsaf", authority_field);
+            where.field = authority_field.id();
+            render_authority_field_metadata(authority_field, control_set_id);
+
+            abaafm_grid.overrideEditWidgets.field =
+                new dijit.form.TextBox({"disabled": true});
+            abaafm_grid.overrideEditWidgets.field.shove =
+                {"create": authority_field.id()};
+        }
+
+        abaafm_grid.loadAll({"order_by": {"abaafm": "axis"}}, where);
+    }
+
+    openils.Util.addOnLoad(my_init);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/cat/authority/control_set.tt2 b/Open-ILS/src/templates/conify/global/cat/authority/control_set.tt2
new file mode 100644 (file)
index 0000000..48bb176
--- /dev/null
@@ -0,0 +1,88 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Configure Authority Control Sets" %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+        <div>Control Sets</div>
+        <div>
+            <button dojoType="dijit.form.Button" onClick="acs_grid.showCreateDialog()">New Control Set</button>
+            <button dojoType="dijit.form.Button" onClick="acs_grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="acs_grid"
+            dojoType="openils.widget.AutoGrid"
+            autoHeight="true"
+            defaultCellWidth="'auto'"
+            fieldOrder="['name','description','id']"
+            suppressEditFields="['id']"
+            query="{id: '*'}"
+            fmClass="acs"
+            editOnEnter="true">
+            <thead>
+                <tr>
+                    <th name="Other properties"
+                        field="id" formatter="format_acs_id"></th>
+                </tr>
+            </thead>
+    </table>
+</div>
+
+<script type="text/javascript">
+    dojo.require("openils.widget.AutoGrid");
+    dojo.require("openils.CGI");
+    dojo.requireLocalization("openils.authority", "authority");
+    var localeStrings =
+        dojo.i18n.getLocalization("openils.authority", "authority");
+    var acs_cache = {};
+    var cgi;
+
+    function format_acs_id(id) {
+        if (id) {
+            var tlen = acs_cache[id].thesauri() ?
+                acs_cache[id].thesauri().length : 0;
+            var alen = acs_cache[id].authority_fields() ?
+                acs_cache[id].authority_fields().length : 0;
+
+            return "<a href='" + oilsBasePath +
+                "/conify/global/cat/authority/thesaurus?acs=" + id + "'>" +
+                dojo.string.substitute(localeStrings.THESAURI, [tlen]) +
+                "</a> &nbsp;" + " <a href='" + oilsBasePath +
+                "/conify/global/cat/authority/control_set_authority_field?acs=" +
+                id + "'>" +
+                dojo.string.substitute(localeStrings.AUTHORITY_FIELDS, [alen]) +
+                "</a>";
+        }
+    }
+
+    function acs_grid_loader() {
+        acs_cache = {};
+        acs_grid.resetStore();
+        acs_grid.showLoadProgressIndicator();
+        fieldmapper.standardRequest(
+            ["open-ils.cat", "open-ils.cat.authority.control_set.retrieve"], {
+                "async": true,
+                "params": [acs_grid.displayLimit, acs_grid.displayOffset, cgi.param("focus")],
+                "onresponse": function(r) {
+                    if (r = openils.Util.readResponse(r)) {
+                        acs_cache[r.id()] = r;
+                        acs_grid.store.newItem(r.toStoreItem());
+                    }
+                },
+                "oncomplete": function() {
+                    acs_grid.hideLoadProgressIndicator();
+                }
+            }
+        );
+    }
+
+    openils.Util.addOnLoad(
+        function() {
+            cgi = new openils.CGI();
+
+            acs_grid.onPostCreate = function(obj) {acs_cache[obj.id()] = obj;};
+            acs_grid.dataLoader = acs_grid_loader;
+            acs_grid_loader();
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2 b/Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2
new file mode 100644 (file)
index 0000000..ca873da
--- /dev/null
@@ -0,0 +1,132 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Configure Authority Authority Fields" %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+        <div>Authority Fields</div>
+        <div>
+            <button dojoType="dijit.form.Button" onClick="acsaf_grid.showCreateDialog()">New Authority Field</button>
+            <button dojoType="dijit.form.Button" onClick="acsaf_grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div id="control-set-metadata-holder" class="hidden">
+        Showing only authority fields linked to control set:
+        <a id="control-set-metadata"></a>
+    </div>
+    <div>
+        <table  jsId="acsaf_grid"
+                dojoType="openils.widget.AutoGrid"
+                autoHeight="true"
+                defaultCellWidth="'12%'"
+                fieldOrder="['id','name','description','main_entry','control_set','tag','sf_list','bib_fields','axis_maps']"
+                suppressEditFields="['id']"
+                query="{id: '*'}"
+                fmClass="acsaf"
+                editOnEnter="true">
+            <thead>
+                <tr>
+                    <th field="bib_fields" name="Controlled Bib Fields"
+                        get="get_just_id" formatter="format_bib_fields"></th>
+                    <th field="axis_maps" name="Axes"
+                        get="get_just_id" formatter="format_axis_maps"></th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+</div>
+<script type="text/javascript"
+    src="[% ctx.media_prefix %]/js/ui/default/conify/global/cat/authority/common.js"></script>
+<script type="text/javascript">
+    dojo.require("openils.widget.AutoGrid");
+    dojo.require("openils.CGI");
+    dojo.require("openils.PermaCrud");
+
+    dojo.requireLocalization("openils.authority", "authority");
+    var localeStrings =
+        dojo.i18n.getLocalization("openils.authority", "authority");
+
+    var cgi, pcrud, control_set;
+    var acsaf_cache = {};
+
+    function acsaf_grid_loader() {
+        acsaf_cache = {};
+        acsaf_grid.resetStore();
+        acsaf_grid.showLoadProgressIndicator();
+        fieldmapper.standardRequest(
+            ["open-ils.cat",
+                "open-ils.cat.authority.control_set_authority_field.retrieve"],{
+                "async": true,
+                "params": [
+                    acsaf_grid.displayLimit, acsaf_grid.displayOffset,
+                    control_set.id(), cgi.param("focus")
+                ],
+                "onresponse": function(r) {
+                    if (r = openils.Util.readResponse(r)) {
+                        acsaf_cache[r.id()] = r;
+                        acsaf_grid.store.newItem(r.toStoreItem());
+                    }
+                },
+                "oncomplete": function() {
+                    acsaf_grid.hideLoadProgressIndicator();
+                }
+            }
+        );
+    }
+
+    function get_just_id(row_index, item) {
+        if (item) return this.grid.store.getValue(item, "id");
+    }
+
+    function format_axis_maps(id) {
+        if (id) {
+            var text = acsaf_cache[id].axis_maps().map(
+                function(f) { return f.axis().name(); }
+            ).sort().join(", ") || localeStrings.NONE_LINK;
+            var href = "browse_axis_authority_field_map?";
+            if (control_set)
+                href += "acs=" + control_set.id() + "&amp;";
+            href += "acsaf=" + id;
+            return "<a href='" + href + "'>"  + text + "</a>";
+        }
+    }
+
+    function format_bib_fields(id) {
+        if (id) {
+            var text = acsaf_cache[id].bib_fields().map(
+                function(f) { return f.tag(); }
+            ).sort().join(", ") || localeStrings.NONE_LINK;
+            var href = "control_set_bib_field?";
+            if (control_set)
+                href += "acs=" + control_set.id() + "&amp;";
+            href += "acsaf=" + id;
+            return "<a href='" + href + "'>"  + text + "</a>";
+        }
+    }
+
+    function my_init() {
+        cgi = new openils.CGI();
+        pcrud = new openils.PermaCrud();
+
+        control_set = cgi.param("acs");
+        if (control_set) {
+            control_set = pcrud.retrieve("acs", control_set);
+            render_control_set_metadata(control_set);
+
+            acsaf_grid.overrideEditWidgets.control_set =
+                new dijit.form.TextBox({"disabled": true});
+            acsaf_grid.overrideEditWidgets.control_set.shove =
+                {"create": control_set.id()};
+        }
+
+        acsaf_grid.onPostCreate = function(o) {
+            o.bib_fields([]);
+            o.axis_maps([]);
+            acsaf_cache[o.id()] = o;
+        };
+
+        acsaf_grid.dataLoader = acsaf_grid_loader;
+        acsaf_grid_loader();
+    }
+
+    openils.Util.addOnLoad(my_init);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/cat/authority/control_set_bib_field.tt2 b/Open-ILS/src/templates/conify/global/cat/authority/control_set_bib_field.tt2
new file mode 100644 (file)
index 0000000..5c2714a
--- /dev/null
@@ -0,0 +1,71 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Configure Authority Control Set Bib Fields" %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+        <div>Control Set Bib Fields</div>
+        <div>
+            <button dojoType="dijit.form.Button" onClick="acsbf_grid.showCreateDialog()">New Control Set Bib Field</button>
+            <button dojoType="dijit.form.Button" onClick="acsbf_grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div id="authority-field-metadata-holder" class="hidden">
+        Showing only control set bib fields linked to authority field:
+        <a id="authority-field-metadata"></a>
+    </div>
+    <div>
+        <table  jsId="acsbf_grid"
+                dojoType="openils.widget.AutoGrid"
+                autoHeight="true"
+                defaultCellWidth="'auto'"
+                suppressEditFields="['id']"
+                fieldOrder="['tag','authority_field']"
+                query="{id: '*'}"
+                fmClass="acsbf"
+                editOnEnter="true">
+        </table>
+    </div>
+</div>
+<script type="text/javascript"
+    src="[% ctx.media_prefix %]/js/ui/default/conify/global/cat/authority/common.js"></script>
+<script type="text/javascript">
+    dojo.require("openils.widget.AutoGrid");
+    dojo.require("openils.CGI");
+    dojo.require("openils.PermaCrud");
+
+    dojo.requireLocalization("openils.authority", "authority");
+    var localeStrings =
+        dojo.i18n.getLocalization("openils.authority", "authority");
+
+    var cgi, pcrud;
+
+    function my_init() {
+        var authority_field, control_set_id;
+        var where = {"id": {"!=": null}};
+
+        cgi = new openils.CGI();
+        pcrud = new openils.PermaCrud();
+
+        authority_field = cgi.param("acsaf");
+        control_set_id = cgi.param("acs");
+
+        if (authority_field) {
+            /* This block not only limits the scope of our search for acsbf
+               objects, but makes sure that we create/update only acsbf's
+               that link back to the authority field (acsaf) we're interested
+               in.  */
+            authority_field = pcrud.retrieve("acsaf", authority_field);
+            where.authority_field = authority_field.id();
+            render_authority_field_metadata(authority_field, control_set_id);
+
+            acsbf_grid.overrideEditWidgets.authority_field =
+                new dijit.form.TextBox({"disabled": true});
+            acsbf_grid.overrideEditWidgets.authority_field.shove =
+                {"create": authority_field.id()};
+        }
+
+        acsbf_grid.loadAll({"order_by": {"acsbf": "tag"}}, where);
+    }
+
+    openils.Util.addOnLoad(my_init);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/cat/authority/thesaurus.tt2 b/Open-ILS/src/templates/conify/global/cat/authority/thesaurus.tt2
new file mode 100644 (file)
index 0000000..29c42a0
--- /dev/null
@@ -0,0 +1,100 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Configure Authority Thesauri" %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+        <div>Thesauri</div>
+        <div>
+            <button dojoType="dijit.form.Button" onClick="at_grid.showCreateDialog()">New Thesaurus</button>
+            <button dojoType="dijit.form.Button" onClick="at_grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div id="control-set-metadata-holder" class="hidden">
+        Showing only thesauri linked to control set:
+        <a id="control-set-metadata"></a>
+    </div>
+    <div>
+        <table  jsId="at_grid"
+                dojoType="openils.widget.AutoGrid"
+                autoHeight="true"
+                defaultCellWidth="'auto'"
+                fieldOrder="['code','control_set','name','description']"
+                suppressEditFields="['id']"
+                query="{id: '*'}"
+                fmClass="at"
+                editOnEnter="true">
+            <thead>
+                <tr>
+                    <th field="control_set" get="get_control_set"
+                        formatter="format_control_set"></th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+</div>
+<script type="text/javascript"
+    src="[% ctx.media_prefix %]/js/ui/default/conify/global/cat/authority/common.js"></script>
+<script type="text/javascript">
+    dojo.require("openils.widget.AutoGrid");
+    dojo.require("openils.CGI");
+    dojo.require("openils.PermaCrud");
+
+    dojo.requireLocalization("openils.authority", "authority");
+    var localeStrings =
+        dojo.i18n.getLocalization("openils.authority", "authority");
+
+    var cgi, pcrud;
+    var control_set;
+
+    function get_control_set(rowidx, item) {
+        if (item) {
+            /* I'm /sure/ there's a better way to do the following */
+            this._tmp = openils.widget.AutoGrid.defaultGetter;
+            var ordinary = this._tmp(rowidx, item); 
+            delete this._tmp;
+
+            if (control_set) {
+                return ordinary;
+            } else {
+                var id = this.grid.store.getValue(item, "control_set");
+                return {
+                    "id": id, "text": ordinary
+                };
+            }
+        }
+    }
+
+    function format_control_set(f) {
+        if (typeof f == "object") {
+            return '<a href="' + oilsBasePath +
+                '/conify/global/cat/authority/control_set?focus=' + f.id +
+                '">' + f.text + "</a>";
+        } else {
+            return f;
+        }
+
+    }
+
+    function my_init() {
+        var where = {"code": {"!=": null}};
+
+        cgi = new openils.CGI();
+        pcrud = new openils.PermaCrud();
+
+        control_set = cgi.param("acs");
+        if (control_set) {
+            control_set = pcrud.retrieve("acs", control_set);
+            where.control_set = control_set.id();
+            render_control_set_metadata(control_set);
+
+            at_grid.overrideEditWidgets.control_set =
+                new dijit.form.TextBox({"disabled": true});
+            at_grid.overrideEditWidgets.control_set.shove =
+                {"create": control_set.id()};
+        }
+
+        at_grid.loadAll({"order_by": {"at": "code"}}, where);
+    }
+
+    openils.Util.addOnLoad(my_init);
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/acn_prefix.tt2 b/Open-ILS/src/templates/conify/global/config/acn_prefix.tt2
new file mode 100644 (file)
index 0000000..abe096d
--- /dev/null
@@ -0,0 +1,37 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Call Number Prefixes' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/acn_prefix.js'> </script>
+
+<!-- grid -->
+
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Call Number Prefixes</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='thingGrid.showCreateDialog()'>New Prefix</button>
+                <button dojoType='dijit.form.Button' onClick='thingGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div>
+            <span>Context Org Unit</span>
+            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='thingContextOrgSelect'
+                searchAttr='shortname' labelAttr='shortname'> </select>
+        </div>
+        <table  jsId="thingGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'label', 'owning_lib']"
+                suppressFields="['label_sortkey']"
+                suppressEditFields="['label_sortkey']"
+                query="{id: '*'}"
+                defaultCellWidth='20'
+                fmClass='acnp'
+                editOnEnter='true'>
+            <thead>
+                <tr><th field='owning_lib' get='getOrgInfo'/></tr>
+            </thead>
+        </table>
+    </div>
+</div>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/acn_suffix.tt2 b/Open-ILS/src/templates/conify/global/config/acn_suffix.tt2
new file mode 100644 (file)
index 0000000..70f0a5c
--- /dev/null
@@ -0,0 +1,37 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Call Number Suffixes' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/acn_suffix.js'> </script>
+
+<!-- grid -->
+
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Call Number Suffixes</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='thingGrid.showCreateDialog()'>New Suffix</button>
+                <button dojoType='dijit.form.Button' onClick='thingGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div>
+            <span>Context Org Unit</span>
+            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='thingContextOrgSelect'
+                searchAttr='shortname' labelAttr='shortname'> </select>
+        </div>
+        <table  jsId="thingGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'label', 'owning_lib']"
+                suppressFields="['label_sortkey']"
+                suppressEditFields="['label_sortkey']"
+                query="{id: '*'}"
+                defaultCellWidth='20'
+                fmClass='acns'
+                editOnEnter='true'>
+            <thead>
+                <tr><th field='owning_lib' get='getOrgInfo'/></tr>
+            </thead>
+        </table>
+    </div>
+</div>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/actor_sip_fields.tt2 b/Open-ILS/src/templates/conify/global/config/actor_sip_fields.tt2
new file mode 100644 (file)
index 0000000..ee28617
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Actor Stat Cat Sip Fields' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Actor Stat Cat Sip Fields</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='actorSipFieldsGrid.showCreateDialog()'>New Sip Field</button>
+            <button dojoType='dijit.form.Button' onClick='actorSipFieldsGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="actorSipFieldsGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['field', 'name', 'one_only']"
+            query="{field: '*'}"
+            fmClass='actscsf'
+            defaultCellWidth='15'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { actorSipFieldsGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/asset_sip_fields.tt2 b/Open-ILS/src/templates/conify/global/config/asset_sip_fields.tt2
new file mode 100644 (file)
index 0000000..1e51a81
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Asset Stat Cat Sip Fields' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Asset Stat Cat Sip Fields</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='assetSipFieldsGrid.showCreateDialog()'>New Sip Field</button>
+            <button dojoType='dijit.form.Button' onClick='assetSipFieldsGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="assetSipFieldsGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['field', 'name', 'one_only']"
+            query="{field: '*'}"
+            fmClass='ascsf'
+            defaultCellWidth='15'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { assetSipFieldsGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/barcode_completion.tt2 b/Open-ILS/src/templates/conify/global/config/barcode_completion.tt2
new file mode 100644 (file)
index 0000000..37c8bbf
--- /dev/null
@@ -0,0 +1,26 @@
+[% ctx.page_title = 'Barcode Completion Configuration' %]
+[% WRAPPER base.tt2 %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/barcode_completion.js'> </script>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+    <div>Barcode Completion Configuration</div>
+    <div><button dojoType='dijit.form.Button' onClick='cmGrid.showCreatePane()'>New</button></div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="cmGrid"
+            style="height: 600px;"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['id', 'active', 'org_unit', 'prefix', 'suffix', 'length', 'padding', 'padding_end', 'asset', 'actor']"
+            defaultCellWidth='"auto"'
+            query="{id: '*'}"
+            fmClass='cbc'
+            editStyle='pane'
+            editOnEnter='true'
+            showColumnPicker='true'
+            columnPickerPrefix='"conify.config.barcode_completion"'>
+    </table>
+</div>
+
+<div class='hidden'><div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'/></div>
+
+[% END %]
+
diff --git a/Open-ILS/src/templates/conify/global/config/billing_type.tt2 b/Open-ILS/src/templates/conify/global/config/billing_type.tt2
new file mode 100644 (file)
index 0000000..95de4e4
--- /dev/null
@@ -0,0 +1,35 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Billing Types' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/billing_type.js'> </script>
+
+<!-- grid -->
+
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Billing Types</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='btGrid.showCreateDialog()'>New Billing Type</button>
+                <button dojoType='dijit.form.Button' onClick='btGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div>
+            <span>Context Org Unit</span>
+            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='btContextOrgSelect'
+                searchAttr='shortname' labelAttr='shortname'> </select>
+        </div>
+        <table  jsId="btGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'name', 'owner', 'default_price']"
+                query="{id: '*'}"
+                defaultCellWidth='20'
+                fmClass='cbt'
+                editOnEnter='true'>
+            <thead>
+                <tr><th field='owner' get='getOrgInfo'/></tr>
+            </thead>
+        </table>
+    </div>
+</div>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2 b/Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2
new file mode 100644 (file)
index 0000000..be33bdb
--- /dev/null
@@ -0,0 +1,77 @@
+[% ctx.page_title = 'Circulation Policy Configuration' %]
+[% WRAPPER base.tt2 %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/circ_matrix_matchpoint.js'> </script>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+    <div>Circulation Policy Configuration</div>
+    <div><button dojoType='dijit.form.Button' onClick='cmGrid.showCreatePane()'>New</button></div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="cmGrid"
+            style="height: 600px;"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['id', 'active', 'grp', 'org_unit', 'copy_circ_lib', 'copy_owning_lib', 'user_home_ou', 'is_renewal', 'juvenile_flag', 'circ_modifier', 'marc_type', 'marc_form', 'marc_bib_level', 'marc_vr_format', 'ref_flag', 'usr_age_lower_bound', 'usr_age_upper_bound', 'item_age', 'circulate', 'duration_rule', 'renewals', 'hard_due_date', 'recurring_fine_rule', 'grace_period', 'max_fine_rule', 'available_copy_hold_ratio', 'total_copy_hold_ratio', 'script_test']"
+            defaultCellWidth='"auto"'
+            query="{id: '*'}"
+            fmClass='ccmm'
+            editStyle='pane'
+            editOnEnter='true'
+            showColumnPicker='true'
+            columnPickerPrefix='"conify.config.circ_matrix_matchpoint"'>
+            <thead>
+                <tr>
+                    <th field="hard_due_date" formatter="format_hard_due_date">
+                    </th>
+                </tr>
+            </thead>
+    </table>
+</div>
+
+<div class='hidden'>
+    <div id='circ-mod-editor' style='border:1px solid #aaa'>
+        <h3>Circ Modifier Count Groups</h3>
+        <table class='oils-generic-table' name='circ-mod-group-table'>
+            <tbody><tr>
+                <td>Total items out</td>
+                <td><input type='text' size='3' name='circ-mod-count'></div></td>
+            </tr><tbody>
+            <tbody name='circ-mod-entry-tbody'>
+                <tr name='circ-mod-entry-row'>
+                    <td name='circ-mod'/>
+                    <td><a name='remove-circ-mod' href='javascript:void(0);'>Remove</a></td>
+                </tr>
+            </tbody>
+            <tbody>
+                <tr>
+                    <td><div name='circ-mod-selector'></div></td>
+                    <td><a href='javascript:void(0);' name='add-circ-mod'>Add</a></td>
+                </tr>
+            </tbody>
+        </table>
+        <span name='add-circ-mod-group-span'>
+        <a href='javascript:void(0);' name='add-circ-mod-group'>Create New Group</a>
+        </span>&nbsp;&nbsp;<span>
+        <a href='javascript:void(0);' onclick='applyCircModChanges()'>Apply Circ Modifier Changes</a>
+        </span>
+    </div>
+</div>
+
+<div class='hidden'><div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'/></div>
+
+<script type="text/javascript">
+    function format_hard_due_date(name, id) {
+        var item=this.grid.getItem(id);
+        if(!item) return name;
+        switch (this.grid.store.getValue(this.grid.getItem(id), 'hard_due_date')) {
+            case null :
+            case undefined :
+            case 'unset' :
+                return name;
+            default:
+                return "<a href='" + oilsBasePath +
+                    "/conify/global/config/hard_due_date?name=" +
+                    encodeURIComponent(name) + "'>" + name + "</a>";
+        }
+    }
+</script>
+[% END %]
+
diff --git a/Open-ILS/src/templates/conify/global/config/circ_matrix_weights.tt2 b/Open-ILS/src/templates/conify/global/config/circ_matrix_weights.tt2
new file mode 100644 (file)
index 0000000..0b18935
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Circ Matrix Weights' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Circ Matrix Weights</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='ruleCircWeightsGrid.showCreateDialog()'>New Weight Set</button>
+            <button dojoType='dijit.form.Button' onClick='ruleCircWeightsGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="ruleCircWeightsGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name']"
+            suppressFields="['id']"
+            query="{id: '*'}"
+            fmClass='ccmw'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { ruleCircWeightsGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/circ_modifier.tt2 b/Open-ILS/src/templates/conify/global/config/circ_modifier.tt2
new file mode 100644 (file)
index 0000000..36b3a2c
--- /dev/null
@@ -0,0 +1,88 @@
+[% WRAPPER base.tt2 %]
+<h1>Circulation Modifier</h1> <br/>
+
+<div class='hidden'>
+    <select dojoType="dijit.form.FilteringSelect" jsId="sip2Selector">
+        <option value='000'>Other</option>
+        <option value='001' selected='selected'>Book</option>
+        <option value='002'>Magazine</option>
+        <option value='003'>Bound Journal</option>
+        <option value='004'>Audio Tape</option>
+        <option value='005'>Video Tape</option>
+        <option value='006'>CD/CDROM</option>
+        <option value='007'>Diskette</option>
+        <option value='008'>Book with diskette</option>
+        <option value='009'>Book with CD</option>
+        <option value='010'>Book with audio tape</option>
+    </select>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+    <div>Circulation Modifier</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='cmGrid.showCreateDialog()'>New Circ Modifier</button>
+        <button dojoType='dijit.form.Button' onClick='cmGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="cmGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['code', 'name', 'description', 'sip2_media_type', 'magnetic_media']"
+            query="{name: '*'}"
+            defaultCellWidth='"auto"'
+            fmClass='ccm'
+            showPaginator='true'
+            editOnEnter='true'>
+        <thead>
+            <tr>
+                <th field="magnetic_media" options='No,Yes' values='f,t'/>
+                <th field="sip2_media_type" formatter='formatSIPMediaType'/>
+            </tr>
+        </thead>
+    </table>
+ </div>
+
+<script type ="text/javascript">
+
+    dojo.require('dijit.form.FilteringSelect');
+    dojo.require('openils.widget.AutoGrid');
+
+    function formatSIPMediaType(inDatum) {
+        switch (inDatum) {
+            case '000':
+                return 'Other';
+            case '001':
+                return 'Book';
+            case '002':
+                return 'Magazine';
+            case '003':
+                return 'Bound Journal';
+            case '004':
+                return 'Audio Tape';
+            case '005':
+                return 'Video Tape';
+            case '006':
+                return 'CD/CDROM';
+            case '007':
+                return 'Diskette';
+            case '008':
+                return 'Book with diskette';
+            case '009':
+                return 'Book with CD';
+            case '010':
+                return 'Book with audio tape';
+        }
+    }
+
+    openils.Util.addOnLoad(
+        function() {
+            cmGrid.overrideEditWidgets.sip2_media_type = sip2Selector;
+            cmGrid.loadAll({order_by:{ccm : 'name'}});
+        }
+    );
+
+</script>
+
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/coded_value_map.tt2 b/Open-ILS/src/templates/conify/global/config/coded_value_map.tt2
new file mode 100644 (file)
index 0000000..58f81ed
--- /dev/null
@@ -0,0 +1,63 @@
+[% WRAPPER base.tt2 %]
+<h1>Code Value Maps</h1> <br/>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+    <div>Coded Value Maps</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='ccvmGrid.showCreateDialog()'>New Map</button>
+        <button dojoType='dijit.form.Button' onClick='ccvmGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <span>Record Attribute Type: </span><div id='attr-def-div'/>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="ccvmGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['ctype', 'code', 'value', 'description']"
+            query="{code: '*'}"
+            defaultCellWidth='"25%"'
+            fmClass='ccvm'
+            showPaginator='true'
+            editOnEnter='true'/>
+ </div>
+
+<script type ="text/javascript">
+
+    dojo.require('dijit.form.FilteringSelect');
+    dojo.require('openils.widget.AutoGrid');
+    dojo.require('openils.widget.AutoFieldWidget');
+
+    openils.Util.addOnLoad(
+        function() {
+
+            var selector = new openils.widget.AutoFieldWidget({
+                fmClass : 'ccvm',
+                fmField : 'ctype',
+                parentNode : dojo.byId('attr-def-div')
+            });
+
+            selector.build(
+                function(w, ww) {
+                    dojo.connect(w, 'onChange', 
+                        function(newVal) {
+                            ccvmGrid.resetStore();
+                            ccvmGrid.loadAll({order_by : {ccvm : 'code'}}, {ctype : newVal});
+                            ccvmGrid.overrideWidgetArgs.ctype = {dijitArgs : {value : newVal}};
+                            // ^-- why is this not working?
+                        }
+                    );
+                }
+            );
+
+            // hide the progress indicator since we're not loading any data up front
+            dojo.style(ccvmGrid.loadProgressIndicator, 'visibility', 'hidden');
+        }
+    );
+
+</script>
+
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/global_flag.tt2 b/Open-ILS/src/templates/conify/global/config/global_flag.tt2
new file mode 100644 (file)
index 0000000..2aa5fe7
--- /dev/null
@@ -0,0 +1,32 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Global Flags' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Global Flags</div>
+        <div></div>
+    </div>
+    <div>
+    <table  jsId="gfGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'label', 'enabled', 'value']"
+            suppressFields="['name']"
+            query="{name: '*'}"
+            defaultCellWidth='30'
+            fmClass='cgf'
+            hideSelector='true'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( 
+        function() { 
+            gfGrid.overrideWidgetArgs.name = {readOnly : true};
+            gfGrid.loadAll(); 
+        } 
+    );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/hard_due_date.tt2 b/Open-ILS/src/templates/conify/global/config/hard_due_date.tt2
new file mode 100644 (file)
index 0000000..7a1da16
--- /dev/null
@@ -0,0 +1,80 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Hard Due Dates" %]
+<script type="text/javascript">
+    dojo.require("openils.CGI");
+    dojo.require("openils.Util");
+    dojo.require("openils.widget.AutoGrid");
+
+    function get_chdd_name(rowIndex, item) {
+        if (!item) return null;
+        else return {
+            "id": this.grid.store.getValue(item, "id"),
+            "name": this.grid.store.getValue(item, "name")
+        };
+    }
+
+    function format_chdd_name(blob) {
+        if (blob) {
+            return "<a href='" + oilsBasePath +
+                "/conify/global/config/hard_due_date_values?chdd=" +
+                blob.id + "'>" + blob.name + "</a>";
+        } else {
+            return "";
+        }
+    }
+
+    openils.Util.addOnLoad(
+        function() {
+            var cgi = new openils.CGI();
+            var filter = null;
+            var id = cgi.param("id");
+            var name = cgi.param("name");
+            if (id) {
+                filter = {"id": id};
+                openils.Util.show("one_only");
+            } else if (name) {
+                filter = {"name": name};
+                openils.Util.show("one_only");
+            }
+            chddGrid.loadAll({"order_by": {"chdd": "name"}}, filter);
+        }
+    );
+</script>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+        layoutAlign="top" class="oils-header-panel">
+        <div>Hard Due Dates</div>
+        <div>
+            <button
+                dojoType="dijit.form.Button"
+                onClick="chddGrid.showCreateDialog();">New Hard Due Date</button>
+            <button
+                dojoType="dijit.form.Button"
+                onClick="chddGrid.deleteSelected();">Deleted Selected</button>
+        </div>
+    </div>
+    <div id="one_only" class="hidden">
+        <em>Showing only one hard due date.</em> [
+            <a href="./hard_due_date">Show them all</a>
+        ]
+    </div>
+    <div>
+        <table jsId="chddGrid"
+            dojoType="openils.widget.AutoGrid"
+            showPaginator="true"
+            query="{name: '*'}"
+            defaultCellWidth="'auto'"
+            fieldOrder="['name', 'owner', 'ceiling_date', 'forceto']"
+            fmClass="chdd"
+            hideSelector="false"
+            editOnEnter="true">
+            <thead>
+                <tr>
+                    <th field="name" get="get_chdd_name"
+                        formatter="format_chdd_name"></th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/hard_due_date_values.tt2 b/Open-ILS/src/templates/conify/global/config/hard_due_date_values.tt2
new file mode 100644 (file)
index 0000000..08847a7
--- /dev/null
@@ -0,0 +1,73 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Hard Due Date Values" %]
+<script type="text/javascript">
+    dojo.require("openils.CGI");
+    dojo.require("openils.PermaCrud");
+    dojo.require("openils.Util");
+    dojo.require("openils.widget.AutoGrid");
+    dojo.require("dijit.form.TextBox");
+
+    openils.Util.addOnLoad(
+        function() {
+            var filter = null;
+            var chdd_id = (new openils.CGI()).param("chdd");
+
+            if (chdd_id) {
+                filter = {"hard_due_date": chdd_id};
+                var hard_due_date =
+                    (new openils.PermaCrud()).retrieve("chdd", chdd_id);
+
+                dojo.byId("linked_chdd_name").innerHTML = hard_due_date.name();
+                dojo.byId("linked_chdd_link").innerHTML = hard_due_date.id();
+                dojo.byId("linked_chdd_link").onclick = function() {
+                    location.href = oilsBasePath +
+                        "/conify/global/config/hard_due_date?id=" +
+                        hard_due_date.id();
+                };
+                openils.Util.show("linked_chdd");
+            }
+
+            chddvGrid.overrideEditWidgets.hard_due_date =
+                new dijit.form.TextBox({"disabled": true});
+            chddvGrid.overrideEditWidgets.hard_due_date.shove = {
+                "create": chdd_id
+            };
+
+            chddvGrid.loadAll({"order_by": {"chddv": "active_date"}}, filter);
+        }
+    );
+</script>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+        layoutAlign="top" class="oils-header-panel">
+        <div>Hard Due Date Values</div>
+        <div>
+            <button
+                dojoType="dijit.form.Button"
+                onClick="chddvGrid.showCreateDialog();">New Hard Due Date Value</button>
+            <button
+                dojoType="dijit.form.Button"
+                onClick="chddvGrid.deleteSelected();">Deleted Selected</button>
+        </div>
+    </div>
+    <div class="hidden" id="linked_chdd">
+        <em>Showing only hard due date values related to hard due date object</em>
+        <strong id="linked_chdd_name"></strong> (#
+        <a href="javascript:void(0);" id="linked_chdd_link"></a>)
+    </div>
+    <div>
+        <table jsId="chddvGrid"
+            dojoType="openils.widget.AutoGrid"
+            showPaginator="true"
+            query="{name: '*'}"
+            defaultCellWidth="'auto'"
+            fieldOrder="['hard_due_date', 'ceiling_date', 'active_date']"
+            suppressFields="['hard_due_date']"
+            suppressEditFields="['id']"
+            fmClass="chddv"
+            hideSelector="true"
+            editOnEnter="true">
+        </table>
+    </div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/hold_matrix_matchpoint.tt2 b/Open-ILS/src/templates/conify/global/config/hold_matrix_matchpoint.tt2
new file mode 100644 (file)
index 0000000..f1efcbc
--- /dev/null
@@ -0,0 +1,33 @@
+[% ctx.page_title = 'Hold Policy Configuration' %]
+[% WRAPPER base.tt2 %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+    <div>Hold Policy Configuration</div>
+    <div><button dojoType='dijit.form.Button' onClick='hmGrid.showCreatePane()'>New</button></div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="hmGrid" 
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid" 
+            fieldOrder="['id', 'strict_ou_match', 'user_home_ou', 'request_ou', 'pickup_ou', 'item_owning_ou', 'item_circ_ou', 'requestor_grp', 'circ_modifier', 'marc_type', 'marc_form', 'marc_bib_level', 'marc_vr_format']"
+            defaultCellWidth='"auto"'
+            query="{id: '*'}" 
+            fmClass='chmm' 
+            editStyle='pane'
+            editOnEnter='true'
+            showColumnPicker='true'
+            columnPickerPrefix='"conify.config.hold_matrix_matchpoint"'>
+    </table>
+    <div/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('dijit.layout.ContentPane');
+    dojo.require('dijit.form.Button');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad(
+        function(){
+            hmGrid.loadAll({order_by:{chmm:'circ_modifier'}});
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/hold_matrix_weights.tt2 b/Open-ILS/src/templates/conify/global/config/hold_matrix_weights.tt2
new file mode 100644 (file)
index 0000000..5c12e69
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Hold Matrix Weights' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Hold Matrix Weights</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='ruleHoldWeightsGrid.showCreateDialog()'>New Weight Set</button>
+            <button dojoType='dijit.form.Button' onClick='ruleHoldWeightsGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="ruleHoldWeightsGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name']"
+            suppressFields="['id']"
+            query="{id: '*'}"
+            fmClass='chmw'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { ruleHoldWeightsGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/idl_field_doc.tt2 b/Open-ILS/src/templates/conify/global/config/idl_field_doc.tt2
new file mode 100644 (file)
index 0000000..291c086
--- /dev/null
@@ -0,0 +1,32 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Field Documentation' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/idl_field_doc.js'> </script>
+<table style='width:100%;margin-bottom:10px;'>
+    <tr>
+        <td align='left'><h3>Field Documentation</h3></td>
+        <td align='right'>
+            <span>Class:</span>
+            <span dojoType='dijit.form.FilteringSelect' jsId='fmClassSelector'></span>
+            <button dojoType='dijit.form.Button' onClick='fdocGrid.showCreateDialog()'>New</button>
+        </td>
+    </tr>
+</table>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="fdocGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['id', 'fm_class', 'owner', 'field', 'string']"
+            query="{id: '*'}"
+            fmClass='fdoc'
+            defaultCellWidth='15'
+            editOnEnter='true'>
+        <thead>
+            <tr><th field='string' width='auto'/></tr>
+        </thead>
+    </table>
+  </div>
+<div class='hidden'>
+    <span dojoType='dijit.form.FilteringSelect' jsId='editClassSelector'></span>
+    <span dojoType='dijit.form.FilteringSelect' jsId='editFieldSelector'></span>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/metabib_field.tt2 b/Open-ILS/src/templates/conify/global/config/metabib_field.tt2
new file mode 100644 (file)
index 0000000..3de2f74
--- /dev/null
@@ -0,0 +1,32 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Metabib Field' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Metabib Field</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='mbFieldGrid.showCreateDialog()'>New Field</button>
+            <button dojoType='dijit.form.Button' onClick='mbFieldGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="mbFieldGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'label', 'field_class', 'weight', 'format', 'search_field', 'facet_field', 'xpath']"
+            query="{field: '*'}"
+            fmClass='cmf'
+            autoHeight='true'
+            editOnEnter='true'>
+        <thead>
+            <tr><th field='xpath' width='25%'/></tr>
+        </thead>
+    </table>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { mbFieldGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2 b/Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2
new file mode 100644 (file)
index 0000000..970f801
--- /dev/null
@@ -0,0 +1,64 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Org Unit Setting Types' %]
+
+<div class='hidden'>
+    <select dojoType="dijit.form.FilteringSelect" jsId="dTypeSelector">
+        <option value='string' selected='selected'>String</option>
+        <option value='bool'>Boolean</option>
+        <option value='integer'>Integer</option>
+        <option value='float'>Float</option>
+        <option value='currency'>Currency</option>
+        <option value='interval'>Interval</option>
+        <option value='date'>Date</option>
+        <option value='object'>Object</option>
+        <option value='array'>Array</option>
+        <option value='link'>Link</option>
+    </select>
+</div>
+
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+    <div>Org Unit Setting Types</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='ostGrid.showCreateDialog()'>New Org Setting Type</button>
+        <button dojoType='dijit.form.Button' onClick='ostGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="ostGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'label', 'datatype', 'description', 'fm_class']"
+            query="{name: '*'}"
+            defaultCellWidth='"auto"'
+            fmClass='coust'
+            showPaginator='true'
+            editOnEnter='true'>
+        <thead>
+            <tr>
+                <th field="datatype" formatter="formatDtype"/>
+            </tr>
+        </thead>
+    </table>
+ </div>
+
+<script type ="text/javascript">
+    dojo.require('dijit.form.FilteringSelect');
+    dojo.require('openils.widget.AutoGrid');
+
+    openils.Util.addOnLoad(
+        function() {
+            ostGrid.overrideEditWidgets.datatype = dTypeSelector;
+            ostGrid.loadAll({order_by:{coust : 'name'}});
+        }
+    );
+
+    function formatDatatype(dtype) {
+        // pull the label from the type selector
+        return dojo.query('[value=' + dtype +']', dTypeSelector.domNode)[0].innerHTML;
+    }
+
+</script>
+
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2 b/Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2
new file mode 100644 (file)
index 0000000..7c0a33a
--- /dev/null
@@ -0,0 +1,35 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'MARC Record Attribute Definitions' %]
+<h1>Record Attribute Definitions</h1> <br/>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+    <div>Record Attribute Definitions</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='cradGrid.showCreateDialog()'>New Attr. Definition</button>
+        <button dojoType='dijit.form.Button' onClick='cradGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="cradGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'label']",
+            query="{name: '*'}"
+            fmClass='crad'
+            showPaginator='true'
+            editOnEnter='true'/>
+ </div>
+
+<script type ="text/javascript">
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad(
+        function() {
+            // avoid loading the entire config.xml_transform object
+            cradGrid.overrideWidgetArgs.format = {searchOptions : {"select":{"cxt":["name"]}}};
+            cradGrid.loadAll({order_by : {crad : 'name'}}) 
+        }
+    );
+</script>
+
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/rule_age_hold_protect.tt2 b/Open-ILS/src/templates/conify/global/config/rule_age_hold_protect.tt2
new file mode 100644 (file)
index 0000000..ef42277
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Age Hold Protect Rules' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Age Hold Protect Rules</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='ruleAgeProtectGrid.showCreateDialog()'>New Age Hold Protect Rule</button>
+            <button dojoType='dijit.form.Button' onClick='ruleAgeProtectGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="ruleAgeProtectGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'age', 'prox']"
+            suppressFields="['id']"
+            query="{id: '*'}"
+            fmClass='crahp'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { ruleAgeProtectGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/rule_circ_duration.tt2 b/Open-ILS/src/templates/conify/global/config/rule_circ_duration.tt2
new file mode 100644 (file)
index 0000000..1ba7b23
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Circ Duration Rules' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Circ Duration Rules</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='ruleCircDurationGrid.showCreateDialog()'>New Duration Rule</button>
+            <button dojoType='dijit.form.Button' onClick='ruleCircDurationGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="ruleCircDurationGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'max_renewals', 'shrt', 'normal', 'extended']"
+            suppressFields="['id']"
+            query="{id: '*'}"
+            fmClass='crcd'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { ruleCircDurationGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/rule_max_fine.tt2 b/Open-ILS/src/templates/conify/global/config/rule_max_fine.tt2
new file mode 100644 (file)
index 0000000..721649b
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Circ Max Fine Rules' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Circ Max Fine Rules</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='ruleMaxFineGrid.showCreateDialog()'>New Max Fine Rule</button>
+            <button dojoType='dijit.form.Button' onClick='ruleMaxFineGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="ruleMaxFineGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'amount', 'is_percent']"
+            suppressFields="['id']"
+            query="{id: '*'}"
+            fmClass='crmf'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { ruleMaxFineGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/rule_recurring_fine.tt2 b/Open-ILS/src/templates/conify/global/config/rule_recurring_fine.tt2
new file mode 100644 (file)
index 0000000..60edd14
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Recurring Fine Rules' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Recurring Fine Rules</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='ruleRecurringFineGrid.showCreateDialog()'>New Recurring Fine Rule</button>
+            <button dojoType='dijit.form.Button' onClick='ruleRecurringFineGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="ruleRecurringFineGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'recurrence_interval', 'low', 'normal', 'high', 'grace_period']"
+            suppressFields="['id']"
+            query="{id: '*'}"
+            fmClass='crrf'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { ruleRecurringFineGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/standing_penalty.tt2 b/Open-ILS/src/templates/conify/global/config/standing_penalty.tt2
new file mode 100644 (file)
index 0000000..0e8e165
--- /dev/null
@@ -0,0 +1,65 @@
+[% WRAPPER base.tt2 %]
+<style type="text/css">
+    @import "[% ctx.media_prefix %]/js/dojo/dojox/form/resources/CheckedMultiSelect.css";
+</style>
+<h1>Standing Penalty Types</h1><br/>
+
+  <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Standing Penalty Types</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='spGrid.showCreateDialog()'>New Penalty Type</button>
+                <button dojoType='dijit.form.Button' onClick='spGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+
+        <table  jsId="spGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'name', 'label', 'block_list']"
+                query="{name: '*'}"
+                defaultCellWidth='"auto"'
+                fmClass='csp'
+                editOnEnter='true'>
+            <thead>
+                <tr> <th field="id" formatter='formatId'/> </tr>
+            </thead>
+        </table>
+    </div>
+</div>
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/standing_penalty.js'></script>
+<script type="text/javascript">
+
+    if(!dojo._hasResource['openils.widget.StandingPenaltyBlockedSelector']) {
+        dojo.provide('openils.widget.StandingPenaltyBlockedSelector');
+        dojo.require('dojox.form.CheckedMultiSelect');
+        dojo.require('dojo.data.ItemFileReadStore');
+        dojo.declare(
+            'openils.widget.StandingPenaltyBlockedSelector',
+            [dojox.form.CheckedMultiSelect],
+            {
+                postCreate : function() {
+                    this._multiValue = true;
+                    this.addOption({value:'CIRC', label:'CIRC'});
+                    this.addOption({value:'RENEW', label:'RENEW'});
+                    this.addOption({value:'HOLD', label:'HOLD'});
+                },
+                attr : function(name, value) {
+                    if(name == 'value' && value == null) {
+                        var val = this.inherited('attr', arguments);
+                        var str = '';
+                        for(var i in val)
+                            str += val[i] + '|';
+                        return str.substring(0, str.length - 1);
+                    } else {
+                        return this.inherited('attr', arguments);
+                    }
+                }
+            }
+        );
+    }
+
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2 b/Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2
new file mode 100644 (file)
index 0000000..4c213ed
--- /dev/null
@@ -0,0 +1,64 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'User Setting Types' %]
+
+<div class='hidden'>
+    <select dojoType="dijit.form.FilteringSelect" jsId="dTypeSelector">
+        <option value='string' selected='selected'>String</option>
+        <option value='bool'>Boolean</option>
+        <option value='integer'>Integer</option>
+        <option value='float'>Float</option>
+        <option value='currency'>Currency</option>
+        <option value='interval'>Interval</option>
+        <option value='date'>Date</option>
+        <option value='object'>Object</option>
+        <option value='array'>Array</option>
+        <option value='link'>Link</option>
+    </select>
+</div>
+
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+    <div>User Setting Types</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='ustGrid.showCreateDialog()'>New User Setting Type</button>
+        <button dojoType='dijit.form.Button' onClick='ustGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="ustGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'label', 'datatype', 'description', 'fm_class']"
+            query="{name: '*'}"
+            defaultCellWidth='"auto"'
+            fmClass='cust'
+            showPaginator='true'
+            editOnEnter='true'>
+        <thead>
+            <tr>
+                <th field="datatype" formatter="formatDtype"/>
+            </tr>
+        </thead>
+    </table>
+ </div>
+
+<script type ="text/javascript">
+    dojo.require('dijit.form.FilteringSelect');
+    dojo.require('openils.widget.AutoGrid');
+
+    openils.Util.addOnLoad(
+        function() {
+            ustGrid.overrideEditWidgets.datatype = dTypeSelector;
+            ustGrid.loadAll({order_by:{cust : 'name'}});
+        }
+    );
+
+    function formatDatatype(dtype) {
+        // pull the label from the type selector
+        return dojo.query('[value=' + dtype +']', dTypeSelector.domNode)[0].innerHTML;
+    }
+
+</script>
+
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/config/weight_assoc.tt2 b/Open-ILS/src/templates/conify/global/config/weight_assoc.tt2
new file mode 100644 (file)
index 0000000..9e42f9c
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Matrix Weight Associations' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Matrix Weight Associations</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='ruleWeightAssocGrid.showCreateDialog()'>New Weight Association</button>
+            <button dojoType='dijit.form.Button' onClick='ruleWeightAssocGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+    <table  jsId="ruleWeightAssocGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['active','org_unit','circ_weights','hold_weights']"
+            suppressFields="['id']"
+            query="{id: '*'}"
+            fmClass='cwa'
+            editOnEnter='true'/>
+</div>
+
+<script type="text/javascript">
+    dojo.require('openils.Util');
+    dojo.require('openils.widget.AutoGrid');
+    openils.Util.addOnLoad( function() { ruleWeightAssocGrid.loadAll(); } );
+</script>
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/config/z3950_source.tt2 b/Open-ILS/src/templates/conify/global/config/z3950_source.tt2
new file mode 100644 (file)
index 0000000..cf32681
--- /dev/null
@@ -0,0 +1,28 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Z39.50 Servers' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/z3950_source.js'> </script>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Z39.50 Servers</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='zsGrid.showCreateDialog()'>New Z39.50 Server</button>
+            <button dojoType='dijit.form.Button' onClick='zsGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+
+    <table  jsId="zsGrid"
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'label', 'host', 'port', 'db', 'record_format', 'transmission_format', 'auth']"
+            query="{name: '*'}"
+            defaultCellWidth='"auto"'
+            fmClass='czs'
+            editOnEnter='true'>
+    </table>
+</div>
+
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/conify/global/permission/grp_penalty_threshold.tt2 b/Open-ILS/src/templates/conify/global/permission/grp_penalty_threshold.tt2
new file mode 100644 (file)
index 0000000..3a1e21f
--- /dev/null
@@ -0,0 +1,41 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Group Penalty Thresholds' %]
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
+    <div>Penalty Threshold</div>
+    <div>
+        <button dojoType='dijit.form.Button' onClick='gptGrid.showCreateDialog()'>New Penalty Threshold</button>
+        <button dojoType='dijit.form.Button' onClick='gptGrid.deleteSelected()'>Delete Selected</button>
+    </div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <span>Context Org Unit</span>
+    <select dojoType="openils.widget.OrgUnitFilteringSelect" 
+            jsId='contextOrgSelector' 
+            searchAttr='shortname' 
+            labelAttr='shortname'> 
+    </select>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table  jsId="gptGrid" 
+            autoHeight='true'
+            dojoType="openils.widget.AutoGrid" 
+            fieldOrder="['id', 'grp', 'org_unit', 'penalty', 'threshold']"
+            defaultCellWidth='15'
+            query="{id: '*'}" 
+            fmClass='pgpt' 
+            editOnEnter='true'>
+    </table>    
+</div>
+    
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/permission/grp_penalty_threshold.js'> </script>    
+<script type='javascript/text'>
+    var org_id = openils.User.user.ws_ou();
+    var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( 
+        function (i) { return i.id() } );
+</script>
+
+[% END %]
+
diff --git a/Open-ILS/src/templates/conify/global/vandelay/match_set.tt2 b/Open-ILS/src/templates/conify/global/vandelay/match_set.tt2
new file mode 100644 (file)
index 0000000..2a719d2
--- /dev/null
@@ -0,0 +1,94 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = 'Vandelay Match Sets' %]
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
+        <div>[% ctx.page_title %]</div>
+        <div>
+            <button dojoType="dijit.form.Button"
+                onClick="vms_grid.showCreateDialog()">New Match Set</button>
+            <button dojoType="dijit.form.Button"
+                onClick="vms_grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div>
+        Show sets owned at or below:
+        <select dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId="context_org_selector"></select>
+    </div>
+    <table jsId="vms_grid"
+        dojoType="openils.widget.AutoGrid"
+        query="{id: '*'}"
+        defaultCellWidth="'16em'"
+        fmClass="vms"
+        fieldorder="['name', 'owner']"
+        suppressEditFields="['id']"
+        showPaginator="true"
+        editOnEnter="true">
+        <thead>
+            <tr>
+                <th field="name" get="field_plus_id" formatter="tree_editor_link"></th>
+                <th field="owner" get="openils.widget.AutoGrid.orgUnitGetter">
+                </th>
+            </tr>
+        </thead>
+    </table>
+</div>
+<div class="hidden">
+    <select dojoType="dijit.form.FilteringSelect" jsId="mtype_selector">
+        [%# for the origin of these hard coded options, see the definition
+        of vandelay.match_set.mtype in 012.schema.vandelay.sql %]
+        <option value="biblio">biblio</option>
+        <option value="authority">authority</option>
+        <!-- XXX: nah <option value="mfhd">mfhd</option> -->
+    </select>
+</div>
+
+<script type="text/javascript">
+    dojo.require("dijit.form.FilteringSelect");
+    dojo.require("openils.widget.AutoGrid");
+    dojo.require("openils.widget.OrgUnitFilteringSelect");
+
+    var context_org;
+
+    function load_grid(search) {
+        if (!search) search = {"id": {"!=": null}};
+
+        vms_grid.loadAll({"order_by": {"vms": "name"}}, search);
+    }
+
+    function field_plus_id(rowIndex, item) {
+        if (!item) return null;
+        var datum = {};
+        datum[this.field] = this.grid.store.getValue(item, this.field);
+        datum.id = this.grid.store.getValue(item, "id");
+        return datum;
+    }
+
+    function tree_editor_link(datum) {
+        if (!datum) return "";
+        return '<a href="[% ctx.base_path %]/eg/conify/global/vandelay/match_set_tree?match_set=' +
+            datum.id + '">' + datum.name + '</a>';
+    }
+
+    openils.Util.addOnLoad(
+        function() {
+            new openils.User().buildPermOrgSelector(
+                "ADMIN_IMPORT_MATCH_SET", context_org_selector,
+                null, function() {
+                    context_org_selector.onChange = function() {
+                        context_org = this.attr("value");
+                        vms_grid.resetStore();
+                        load_grid({
+                            "owner": aou.descendantNodeList(context_org, true)
+                        });
+                    };
+                }
+            );
+
+            vms_grid.overrideEditWidgets.mtype = mtype_selector;
+            vms_grid.overrideEditWidgets.mtype.shove = {"create": "biblio"};
+            load_grid();
+        }
+    );
+</script>
+[% END %]
diff --git a/Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2 b/Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2
new file mode 100644 (file)
index 0000000..3ffa80b
--- /dev/null
@@ -0,0 +1,150 @@
+[% WRAPPER 'base.tt2' %]
+[% ctx.page_title = 'Vandelay Match Set Editor' %]
+<style type="text/css">
+    h1 { margin: 1ex 0; }
+    .outer { clear: both; margin-bottom: 1ex; }
+    .space-me input { margin: 0 1em; }
+    button { margin: 0 0.5em; }
+    input[type=submit] { padding: 0 0.5em; }
+    #tree-here { margin-bottom: 1.5em; }
+    #vms-table { padding-bottom: 2ex; }
+    #vms-table th { text-align: right; }
+    #vms-table td { padding-left: 1em; }
+    #src-pane { float: left; width: 49%; }
+    #tree-pane { float: right; width: 50%; }
+    #submit-row { clear: both; text-align: center; padding-top: 1.5ex; }
+    #submit-row hr { margin: 1.5ex 0; }
+    #expr-preview-row { margin: 2ex 0; }
+    #expr-preview {
+        font-family: monospace;
+        font-size: 125%;
+        font-weight: bold;
+        background-color: #000066;
+        color: white;
+    }
+    .node-editor { margin-bottom: 1.5ex; }
+    .node-editor td { padding: 0.5ex; }
+    li { background-color: #ddd; }
+    .replace-mode { background-color: #990; color: #fff; }
+</style>
+<h1>[% ctx.page_title %]</h1>
+<table id="vms-table">
+    <tbody>
+        <tr>
+            <th>Match set name:</th>
+            <td><strong id="vms-name"></strong></td>
+        </tr>
+        <tr>
+            <th>Owning Library:</th>
+            <td id="vms-owner"></td>
+        </tr>
+        <tr>
+            <th>Type:</th>
+            <td id="vms-mtype"></td>
+        </tr>
+    </tbody>
+</table>
+<hr />
+<!-- XXX TODO
+    give some indication of which match set we're editing the tree for
+    -->
+<table class="hidden">
+    <tr quality-controls="1">
+        <td>
+            <label for="value-input">Value:</label>
+        </td>
+        <td>
+            <input id="value-input" type="text" fmfield="value" />
+        </td>
+    </tr>
+    <tr consistent-controls="1">
+        <td>
+            <label for="quality-input"
+                title="A relative number representing the impact of this expression on the score of the overall record match"><!-- XXX tooltipize -->
+                Match Score
+            </label>
+        </td>
+        <td>
+            <input id="quality-input" type="text" value="1"
+                size="4" maxlength="3" fmfield="quality" />
+        </td>
+    </tr>
+    <tr point-controls="1">
+        <td>
+            <label for="negate-input">Negate?</label>
+        </td>
+        <td>
+            <input id="negate-input" type="checkbox" fmfield="negate" />
+        </td>
+    </tr>
+</table>
+<div class="outer">
+    <div id="expr-preview-row">
+        <em>Your Expression:</em>
+        <span id="expr-preview"></span>
+    </div>
+    <div id="vmsp-buttons">
+        Add new
+        <button onclick="node_editor.add('svf');">Record Attribute</button>
+        <button onclick="node_editor.add('tag');">MARC Tag and Subfield</button>
+        <button onclick="node_editor.add('bool_op');">Boolean Operator</button>
+    </div>
+</div>
+<div class="outer" style="margin-top: 2ex;">
+    <div id="src-pane">
+        <div><big>Working Match Point</big></div>
+        <div>
+            <form id="node-editor-container" onsubmit="return false;"></form>
+        </div>
+        <ul id="src-here"></ul>
+    </div>
+
+    <div id="tree-pane">
+        <div><big>Your Expression</big></div>
+        <div id="tree-here"></div>
+        <div>
+            <button id="deleter" onclick="delete_selected_in_tree()">
+                Delete Selected Node
+            </button>
+            <button id="replacer" onclick="replace_mode()"></button>
+        </div>
+    </div>
+</div>
+<div id="submit-row">
+    <button onclick="save_tree()">Save Changes To Expression</button>
+</div>
+<hr />
+<div id="quality-editor-wrapper">
+    <div>
+        <div style="float: left; width: 50%;">
+            <big>Quality Metrics for this Match Set</big>
+        </div>
+        <div style="float: right; width: 49%; text-align: right;">
+            <button onclick="qnode_editor.add('svf')">
+                Record Attribute
+            </button>
+            <button onclick="qnode_editor.add('tag')">
+                MARC Tag and Subfield
+            </button>
+            <button onclick="vmsq_grid.deleteSelected()">
+                Delete Selected Metrics
+            </button>
+        </div>
+    </div>
+    <br style="clear: both;" />
+    <table id="qnode-editor-container"></table>
+    <table jsId="vmsq_grid"
+        dojoType="openils.widget.AutoGrid"
+        query="{id: '*'}"
+        defaultCellWidth="'17%'"
+        fmClass="vmsq"
+        fieldOrder="['quality','svf','tag','subfield','value']"
+        suppressFields="['match_set']"
+        showPaginator="true"
+        editOnEnter="false">
+    </table>
+</div>
+<div jsId="progress_dialog" dojoType="openils.widget.ProgressDialog"></div>
+<script type="text/javascript"
+    src="[% ctx.media_prefix %]/js/ui/default/conify/global/vandelay/match_set.js"></script>
+[% END %]
diff --git a/Open-ILS/src/templates/default/acq/common/claim_dialog.tt2 b/Open-ILS/src/templates/default/acq/common/claim_dialog.tt2
deleted file mode 100644 (file)
index 741a8a6..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<div style="width: 300px; height: 300px; overflow: auto;">
-    <script
-        src="[% ctx.media_prefix %]/js/ui/default/acq/common/claim_dialog.js">
-    </script>
-    <div><big>Claims</big></div>
-    <div>Against item:
-        <span id="acq-lit-li-claim-dia-li-title"></span>
-        (<span id="acq-lit-li-claim-dia-li-id"></span>)
-    </div>
-    <div id="acq-lit-li-claim-dia-show" class="hidden">
-        <ul id="acq-lit-li-claim-dia-lid-list">
-            <li name="lid">
-                <span name="barcode"></span> /
-                <span name="recvd"></span>
-                <ul name="claims">
-                    <li name="claim">
-                        <span name="type"></span>
-                        <a name="voucher"
-                            href="javascript:void(0);">Show Voucher</a>
-                    </li>
-                </ul>
-            </li>
-        </ul>
-        <hr />
-    </div>
-    <div id="acq-lit-li-claim-dia-initiate" class="hidden">
-        <div><big>Initiate New Claims</big></div>
-        <div id="acq-lit-li-claim-dia-lid-list-init">
-            <div name="lid_to_claim">
-                <input type="checkbox" name="claimable_lid" />
-                <label name="claimable_lid_label">
-                    <span name="barcode"></span> /
-                    <span name="recvd"></span>
-                </label>
-            </div>
-        </div>
-        <hr />
-        <div id="acqclet-display" class="hidden">
-            <div><big>Select Claim Action</big></div>
-            <table>
-                <tbody id="acqclet-tbody">
-                    <tr name="acqclet-template">
-                        <td>
-                            <input type="checkbox" name="acqclet-checkbox" />
-                        </td>
-                        <td style="padding-left: 1em;">
-                            <label name="acqclet-label">
-                                (${ou}) ${code} <em>${description}</em>
-                                <span style="color: #069;">
-                                    ${library_initiated}</span>
-                            </label>
-                        </td>
-                    </tr>
-                </tbody>
-            </table>
-            <hr />
-        </div>
-        <button id="acq-lit-li-claim-dia-claim">Claim selected</button>
-    </div>
-</div>
diff --git a/Open-ILS/src/templates/default/acq/common/final_claim_dialog.tt2 b/Open-ILS/src/templates/default/acq/common/final_claim_dialog.tt2
deleted file mode 100644 (file)
index 882741c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<div id="acq-eligible-claim-controls">
-    <label for="acq-eligible-claim-type">Claim type:</label>
-    <span id="acq-eligible-claim-type"></span>
-    <label for="acq-eligible-claim-note">Note:</label>
-    <input dojoType="dijit.form.TextBox" id="acq-eligible-claim-note" />
-    <button id="acq-eligible-claim-submit">Claim</button>
-</div>
-
diff --git a/Open-ILS/src/templates/default/acq/common/info.tt2 b/Open-ILS/src/templates/default/acq/common/info.tt2
deleted file mode 100644 (file)
index 6fc5456..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-[% which_lc = which | lower %]
-    <div id="acq-[% which_lc %]-info-div" class="hidden">
-        <div class="acq-menu-bar">
-            <div dojoType="dijit.form.Button" id="acq-[% which_lc %]-info-back-button">&#x2196; [% IF which == "Lit" %]Return[% ELSE %]Hide[% END %]</div>
-        </div>
-        <table>
-            <tbody id="acq-[% which_lc %]-info-tbody">
-                <tr id="acq-[% which_lc %]-info-row"><td name="label"/><td name="value"/></tr>
-            </tbody>
-        </table>
-[% IF which == "Lit" %]
-        <div class="hidden" id="acq-[% which_lc %]-info-related">
-            Show the <a name="rel_link" href="#"><span name="related_number"></span> lineitem(s)</a> related to the same bibliographic record.
-        </div>
-        <div style="margin-top:40px;">
-            <h3 id="acq-[% which_lc %]-marc-order-record-label">MARC Order Record</h3>
-            <h3 id="acq-[% which_lc %]-marc-real-record-label">MARC ILS Record</h3>
-            <div>
-                <div dojoType="dijit.form.Button" jsId="acq[% which %]EditOrderMarc" class="hidden">Edit MARC Order Record</div>
-            </div>
-            <div id="acq-[% which_lc %]-marc-div" style="margin-top:20px;"> </div>
-        </div>
-[% END %]
-    </div>
diff --git a/Open-ILS/src/templates/default/acq/common/inv_dialog.tt2 b/Open-ILS/src/templates/default/acq/common/inv_dialog.tt2
deleted file mode 100644 (file)
index 3bec75c..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/inv_dialog.js">
-</script>
-<big><strong>Choose invoice</strong></big>
-<table class="acq-link-invoice-dialog">
-    <tr>
-        <th>
-            <label for="acq-[% which %]-link-invoice-inv_ident">
-                Invoice #
-            </label>
-        </th>
-        <td>
-            <input id="acq-[% which %]-link-invoice-inv_ident"
-                dojoType="dijit.form.TextBox" />
-        </td>
-    </tr>
-    <tr>
-        <th>
-            <label for="acq-[% which %]-link-invoice-provider">Provider</label>
-        </th>
-        <td>
-            <span id="acq-[% which %]-link-invoice-provider"></span>
-        </td>
-    </tr>
-    <tr>
-        <td colspan="2" style="text-align: center;">
-            <button id="acq-[% which %]-link-invoice-link"
-                dojoType="dijit.form.Button" type="submit">Link</button>
-        </td>
-    </tr>
-</table>
diff --git a/Open-ILS/src/templates/default/acq/common/jubgrid.tt2 b/Open-ILS/src/templates/default/acq/common/jubgrid.tt2
deleted file mode 100644 (file)
index ce13d56..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-[%#-
-This template creates a split screen Dojo layout. The top frame
-of the screen holds a list of of JUBs, or titles. Clicking on a
-title in the top frame will load the purchase details for all the
-copies on order for that title into the bottom frame.
-
-To create a display for a set of JUBs, create a Dojo store and
-model for the set of JUBs, then place the following lines in your
-HTML where you want the display to appear:
-
-    <%namespace file='/oils/default/common/jubgrid.html' name='jubgrid'/>
-    ${jubgrid.jubgrid('dom_prefix', 'grid_jsid')}
-
-where 'dom_prefix' is a string that will be used as the prefix
-for the DOM notes that are created by this template, and
-'grid_jsid' is a valid JavaScript identifier that will name the
-DOM node to which the list of JUBs will be attached.  For example
-
-    ${jubgrid.jubgrid('oils-acq-picklist', 'pickListGrid', hideDetails)}
-
-will create a Dojo grid with the DOM id of
-
-    'oils-acq-picklist-JUB-grid'
-
-and a jsid of
-
-    pickListGrid
-
-To fill the grid with data, call the javascript function
-
-    JUBGrid.populate(grid_jsid, model)
-
-'grid_jsid' is the same javascript id that was used to
-instantiate the template, and model is a javascript variable
-pointing to the JUB model (and store) that you have created.
--#%]
-
-[% UNLESS hide_details %]
-<div dojoType='dijit.layout.ContentPane' style='height:100%;'>
-[% END %]
-
-    <style type='text/css'>
-        .grid_container {width: 100%; height: 100%;}
-    </style>
-
-    <script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/common/jubgrid.js'> </script>
-    <script type="text/javascript" src='[% ctx.media_prefix %]/js/dojo/openils/CopyLocation.js'> </script>
-    <script type="text/javascript">
-    JUBGrid.getPO = function(rowIndex) {
-        var data = JUBGrid.jubGrid.model.getRow(rowIndex);
-        if (!(data && data.purchase_order)) return '';
-        return "<a href='[% ctx.base_path %]/acq/po/view/" + data.purchase_order+"'>"+data.purchase_order+"</a>";
-    }
-    JUBGrid.jubGridLayout = [{
-        //noscroll: true,
-        cells: [[
-            {name: 'ID', field: 'id', width:'auto'},
-            {name: 'Title', width: "180px", get:JUBGrid.getJUBTitle},
-            {name: 'Author', get:JUBGrid.getJUBAuthor, width:'auto'},
-            {name: 'ISBN', get:JUBGrid.getJUBIsbn, width:'auto'},
-            {name: 'Pubdate', get:JUBGrid.getJUBPubdate, width:'auto'},
-            {name: 'Actual Price', 
-                field:'actual_price',
-                get:JUBGrid.getJUBActualPrice,
-                editor:dojox.grid.editors.Dijit, width:'auto', 
-                editorClass: "dijit.form.CurrencyTextBox" 
-            },
-            {name: 'Estimated Price', 
-                field:'estimated_price',
-                get:JUBGrid.getJUBEstimatedPrice, width:'auto',
-                editor:dojox.grid.editors.Dijit, 
-                editorClass: "dijit.form.CurrencyTextBox" 
-            },
-            {name: 'Vendor', width:'auto',
-            field: 'provider', get:JUBGrid.getProvider,
-            editor:openils.editors.ProviderSelectEditor,
-           },
-            {name: 'No. Copies', field: 'item_count', width:'auto'},
-            {name: 'State', field: 'state', width:'auto'},
-            {name: 'PO', get:JUBGrid.getPO, width:'auto'}
-        ]]
-    }];
-
-    JUBGrid.jubDetailGridLayout = [{
-        cells: [[
-            {name:"ID", field:"id"},
-            {name:"Fund", field:"fund",
-                get:JUBGrid.getLIDFundCode,
-                editor: openils.editors.FundSelectEditor,
-            },
-            {name:"Branch", field:"owning_lib",
-                   get:JUBGrid.getLIDLibName,
-                   editor: openils.editors.OrgUnitSelectEditor
-               },
-            {name:"Barcode", field:"barcode", width:'auto',
-                editor:dojox.grid.editors.Dijit, 
-                editorClass: "dijit.form.TextBox" 
-               },
-            {name:"Call Number", field:"cn_label", width:'auto',
-                editor:dojox.grid.editors.Dijit, 
-                editorClass: "dijit.form.TextBox" 
-               },
-            {name:"Shelving Location", field:"location", width:'auto',
-                editor:openils.editors.CopyLocationSelectEditor,
-                get:JUBGrid.getCopyLocation
-               },
-            {name:"Receive Time", width:'auto',
-                get:JUBGrid.getRecvTime
-               },
-        ]]
-    }];
-
-    JUBGrid.jubDetailGridLayoutReadOnly = [{
-        cells: [[
-            {name:'ID', field:"id"},
-            {name:'Fund', field:"fund",
-             get:JUBGrid.getLIDFundCode,
-            },
-            {name:'Branch', field:"owning_lib",
-                   get:JUBGrid.getLIDLibName,
-               },
-           {name:'Barcode', field:"barcode", width:'auto'},
-            {name:'Call Number', field:"cn_label", width:'auto'},
-           {name:'Shelving Location', field:"location", 
-                width:'auto', get:JUBGrid.getCopyLocation},
-        ]]
-    }];
-    </script>
-
-[% UNLESS hide_details %]
-    <!-- button bar for lineitems -->
-    <script type="text/javascript">JUBGrid.showDetails = true;</script>
-    <div id="[% domprefix %]-container" class='container'
-        dojoType="dijit.layout.ContentPane" sizeMin="" sizeShare="">
-        <div dojoType="dijit.layout.ContentPane"
-             id='[% domprefix %]-jub-buttonbar'>
-            <button dojoType="dijit.form.Button" onclick="JUBGrid.approveJUB">
-                Approve Selected Titles
-            </button>
-            <button dojoType="dijit.form.Button" onclick="JUBGrid.removeSelectedJUBs">
-                Remove Selected Titles
-            </button>
-        </div>
-    </div>
-    <div style='height:40%;'>
-[% ELSE %]
-    <div style='height:100%;'>
-[% END %]
-        <div structure='JUBGrid.jubGridLayout' jsid='[% grid_jsid %]' class='grid_container'
-            dojoType='dojox.Grid' id="[% domprefix %]-JUB-grid">
-        </div>
-    </div>
-[% UNLESS hide_details %]
-    <!-- button bar for lineitem details -->
-    <div dojoType="dijit.layout.ContentPane" sizeMin="" sizeShare="" class='container'>
-        <div dojoType="dijit.layout.ContentPane" id='[% domprefix %]-details-buttonbar'>
-            <div dojoType="dijit.form.DropDownButton">
-                <span>New Copy</span>
-                <div dojoType="dijit.TooltipDialog" execute="JUBGrid.createLID(arguments[0]);">
-                    <script type='dojo/connect' event='onOpen'>
-                        new openils.User().buildPermOrgSelector('MANAGE_FUND', copyOwnerSelect);
-                        openils.acq.Fund.buildPermFundSelector('MANAGE_FUND', acqlidFund);
-                    </script>
-                    <table class="dijitTooltipTable">
-                        <tr>
-                            <td><label for="fund">Fund: </label></td>
-                            <td>
-                                <input dojoType="openils.widget.FundSelector"
-                                jsId="acqlidFund" searchAttr="name" autocomplete="true" name="fund"></input>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><label for="owning_lib">Location: </label></td>
-                            <td><input dojoType="openils.widget.OrgUnitFilteringSelect"
-                                jsId="copyOwnerSelect"
-                                searchAttr="shortname"
-                                name="owning_lib" autocomplete="true"
-                                labelAttr="shortname"></input>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td colspan="2" align="center">
-                                <button dojotype="dijit.form.Button" type="submit">
-                                Create
-                                </button>
-                            </td>
-                        </tr>
-                    </table>
-                </div>
-            </div>
-            <button dojoType='dijit.form.Button' onclick='JUBGrid.deleteLID'>
-                Delete Selected Copy
-            </button>
-            <button dojoType='dijit.form.Button' onclick='JUBGrid.receiveLID'>
-                Mark Selected Copies Received
-            </button>
-        </div>
-    </div>
-    <!-- end button bar -->
-
-    <div style='height:40%;'>
-           <div class='grid_container'>
-            <div structure='JUBGrid.jubDetailGridLayout' jsid="JUBGrid.jubDetailGrid" dojoType="dojox.Grid"
-                id='[% domprefix %]-details-grid'>
-            </div>
-        </div>
-    </div>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/common/li_table.tt2 b/Open-ILS/src/templates/default/acq/common/li_table.tt2
deleted file mode 100644 (file)
index 1851833..0000000
+++ /dev/null
@@ -1,473 +0,0 @@
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/base64.js"> </script>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/common/li_table.js'> </script>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/claim_voucher.js'> </script>
-<div id='acq-lit-table-container'>
-    <div id='acq-lit-table-div' class='hidden'>
-
-        <!-- Lineitem (bib record) list -->
-        <table id='acq-lit-table' class='oils-generic-table'>
-            <thead>
-                <tr>
-                    <th colspan='0'>
-                        <table style='width:100%;'>
-                            <tr>
-                                <td>
-                                    <span>
-                                        <select id="acq-lit-li-actions-selector">
-                                            <option mask='*'  value='_'>--Actions--</option>
-                                            <option mask='sr' value='save_picklist'>Save Items To Selection List</option>
-                                            <option mask='pl' value='selector_ready'>Mark Ready for Selector</option>
-                                            <option mask='pl' value='order_ready'>Mark Ready for Order</option>
-                                            <option mask='*'  value='delete_selected'>Delete Selected Items</option>
-                                            <option mask='*'  value='add_brief_record'>Add Brief Record</option>
-                                            <option mask='*'  value='export_attr_list'>Export Single Attribute List</option>
-                                            <option mask='*'  value='batch_apply_funds'>Apply Funds to Selected Items</option>
-                                            <option mask='po' value='' disabled='disabled'>----PO----</option>
-                                            <option mask='sr|pl' value='create_order'>Create Purchase Order</option>
-                                            <option mask='po' value='create_assets'>Load Bibs and Items</option>
-                                            <option mask='po' value='cancel_lineitems'>Cancel Selected Lineitems</option>
-                                            <option mask='po' value='change_claim_policy'>Change Claim Policy</option>
-                                            <option mask='po' value='receive_po'>Mark Purchase Order as Received</option>
-                                            <option mask='po' value='rollback_receive_po'>Un-Receive Purchase Order</option>
-                                            <option mask='po' value='print_po'>Print Purchase Order</option>
-                                            <option mask='po' value='po_history'>View PO History</option>
-                                        </select>
-                                        <span id="acq-lit-export-attr-holder" class="hidden">
-                                            <input dojoType="dijit.form.FilteringSelect" id="acq-lit-export-attr" jsId="acqLitExportAttrSelector" labelAttr="description" searchAttr="description" />
-                                            <span dojoType="dijit.form.Button" jsId="acqLitExportAttrButton">Export List</span>
-                                        </span>
-                                        <span id="acq-lit-cancel-reason" class="hidden">
-                                            <span id="acq-lit-cancel-reason-selector"></span>
-                                            <span dojoType="dijit.form.Button" jsId="acqLitCancelLineitemsButton">Cancel Line Items</span>
-                                        </span>
-                                    </span>
-                                    <span id='acq-lit-generic-progress' class='hidden'>
-                                        <span dojoType="dijit.ProgressBar" style="width:300px" jsId="litGenericProgress"></span>
-                                    </span>
-                                </td>
-                                <td>
-                                    <div style='width:100%;text-align:right;'>
-                                        <span style='padding-right:15px;'>
-                                            <a href='javascript:void(0);' id='acq-lit-prev' style='visibility:hidden'>&#171; Previous</a>
-                                            <a href='javascript:void(0);' id='acq-lit-next' style='visibility:hidden'>Next &#187;</a>
-                                        </span>
-                                    </div>
-                                </td>
-                            </tr>
-                        </table>
-                    </th>
-                </tr>
-            </thead>
-            <tbody><tr><td colspan='0' style='height:20px;'/></tr></tbody>
-            <tbody style='font-weight:bold;border:1px solid #aaa;'>
-                <tr>
-                    <td><span><a id='acq-lit-select-toggle' href='javascript:void(0);'>&#x2713</a></span></td>
-                    <td>Line Items</td>
-                    <td>Items</td>
-                    <td>Notes</td>
-                    <td>Actions</td>
-                    <td>Status</td>
-                    <td>Estimated Price</td>
-                </tr>
-            </tbody>
-            <tbody id='acq-lit-tbody'>
-                <tr id='acq-lit-row' class='acq-lit-row'>
-                    <td name='selector'><input type='checkbox' name='selectbox'/></td>
-                    <td style='width:75%;'>
-                        <table style='width:100%;'>
-                            <tbody>
-                                <tr>
-                                    <td rowspan='3' style='width:43px;'><img style='width:40px;height:65px;' name='jacket'></td>
-                                    <td style='width:70%;font-weight:bold;'>
-                                        <span name="bib_origin" class="hidden">
-                                            <img src="/opac/images/book-icon.png" />
-                                        </span><a attr='title' href='javascript:void(0);'></a>
-                                    </td>
-                                    <td rowspan='2' style='text-align:right'>
-                                    </td>
-                                </tr>
-                                <tr class='acq-lit-alt-row'>
-                                    <td colspan='0'>
-                                        <span attr='author'></span>
-                                        <span attr='isbn'></span>
-                                        <span attr='issn'></span>
-                                        <span attr='edition'></span>
-                                        <span attr='pubdate'></span>
-                                        <span attr='publisher'></span>
-                                        <span name='source_label'></span>
-                                    </td>
-                                </tr>
-                                <tr>
-                                    <td colspan='0'>
-                                        <span name="liid"># </span> 
-                                        <span name="catalog" class='hidden'> | <a title='Show In Catalog' name="catalog_link" href="javascript:void(0);">&#x279F; catalog</a></span> 
-                                        <span name="link_to_catalog" class='hidden'> | <a title='Link To Catalog Record' name="link_to_catalog_link" href="javascript:void(0);">&#x27BE; link to catalog</a></span> 
-                                        <span name="worksheet"> | <a title='Generate Worksheet' name="worksheet_link" href="javascript:void(0);">&#x270D; worksheet</a></span>
-                                        <span name='pl' class='hidden'> | <a title='Select List' name='pl_link' href='javascript:void(0);'>&#x2756; </a></span>
-                                        <span name='po' class='hidden'> | <a title='Purchase Order' name='po_link' href='javascript:void(0);'>&#x2318; </a></span>
-                                    </td>
-                                </tr>
-                            </tbody>
-                        </table>
-                    </td>
-                    <td><a title='FOOOBAR' name='copieslink' href='javascript:void(0);'>Copies(<span name='count'>0</span>)</a></td>
-                    <td>
-                        <a name='noteslink' href='javascript:void(0);'>Notes(<span name='notes_count'>0</span>)</a><span name="notes_alert_flag"></span>
-                    </td>
-                    <td>
-                        <select name='actions'>
-                            <option name='action_none'>-- Actions --</option>
-                            <option name='action_mark_recv' disabled='disabled'>Mark Received</option>
-                            <option name='action_mark_unrecv' disabled='disabled'>Un-Receive</option>
-                            <option name='action_update_barcodes' disabled='disabled'>Update Barcodes</option>
-                            <option name='action_holdings_maint' disabled='disabled'>Holdings Maint.</option>
-                            <option name='action_new_invoice' disabled='disabled'>New Invoice</option>
-                            <option name='action_link_invoice' disabled='disabled'>Link to Invoice</option>
-                            <option name='action_view_invoice' disabled='disabled'>View Invoice(s)</option>
-                            <option name='action_view_claim_policy'>Apply Claim Policy</option>
-                            <option name='action_manage_claims' disabled='disabled'>Claims</option>
-                            <option name='action_view_history'>View History</option>
-                        </select>
-                    </td>
-                    <td><span name='li_state'></span></td>
-                    <td><input type='text' size='8' name='price'/></td>
-                </tr>
-            </tbody>
-        </table>
-    </div>
-
-    <!-- Bib record / Lineitem info table -->
-    [% INCLUDE "default/acq/common/info.tt2" which = "Lit" %]
-
-    <!-- Lineitem notes table -->
-    [% INCLUDE "default/acq/common/notes.tt2" which = "Lit" %]
-
-    <!-- Copies table -->
-    <div id='acq-lit-li-details' class='hidden'>
-
-        <div id='acq-lit-copies-li-summary'></div>
-
-        <h3>Add/Edit Items</h3>
-        <hr/>
-
-        <div class='acq-lit-li-menu-bar'>
-            <table style='width:100%'>
-                <tr>
-                    <td class="acq-lit-li-menu-left">
-                        <div dojoType='dijit.form.Button' id='acq-lit-copies-back-button' scrollOnFocus='false'>&#x2196; Return</div>
-                        <span style='margin-left:10px;padding-left:10px;border-left:2px solid #aaa;'>
-                            Item Count: 
-                            <input dojoType='dijit.form.NumberTextBox' jsId='acqLitCopyCountInput'  
-                                constraints="{min:0,max:1000,places:0}" style='width:40px' value='0'></input> 
-                            <div dojoType='dijit.form.Button' jsId='acqLitAddCopyCount' scrollOnFocus='false'>Go</div>
-                        </span>
-                        <span style='margin-left:10px;padding-left:10px;border-left:2px solid #aaa;'>
-                            <div dojoType='dijit.form.Button' jsId='acqLitSaveCopies' scrollOnFocus='false'>Save Changes</div>
-                        </span>
-                        <span id='acq-lit-update-copies-progress' class='hidden'>
-                            <span dojoType="dijit.ProgressBar" style="width:300px" jsId="litUpdateCopiesProgress"></span>
-                        </span>
-                    </td>
-                </tr>
-            </table>
-        </div>
-
-        <hr/>
-        <table id='acq-lit-distrib-formula-table'>
-            <tbody id='acq-lit-distrib-formula-tbody'>
-                <tr id='acq-lit-distrib-form-row'>
-                    <td colspan='0'>
-                        <span>Distribution Formulas</span>
-                        <div name='selector'></div>
-                        <div name='set_button'></div>
-                        <div name="reset_button"></div>
-                    </td>
-                </tr>
-            </tbody>
-            <tbody id="acq-lit-distrib-applied-tbody" class="hidden">
-                <tr>
-                    <td colspan="5" id="acq-lit-distrib-applied-heading">
-                        Distribution formulas applied to this lineitem:
-                    </td>
-                </tr>
-                <tr id="acq-lit-distrib-applied-row" class="acq-lit-distrib-applied-row">
-                    <th></th>
-                    <td colspan="4"></td>
-                </tr>
-            </tbody>
-        <table>
-
-        <table id='acq-lit-li-details-table'>
-            <tbody><tr><td class='acq-lit-table-spacer' colspan='0'/></tr></tbody>
-            <tbody style='font-weight:bold;'>
-                <tr>
-                    <td style='margin-top:30px;'>Owning Branch</td>
-                    <td>Shelving Location</td>
-                    <td>Collection Code</td>
-                    <td>Fund</td>
-                    <td>Circ Modifier</td>
-                    <td>Callnumber</td>
-                    <td colspan='0'></td>
-                </tr>
-            </tbody>
-            <tbody style='background-color:#ddd;'>
-                <tr id='acq-lit-li-details-batch-row'>
-                    <td><div name='owning_lib'></div></td>
-                    <td><div name='location'></div></td>
-                    <td><div name='collection_code'></div></td>
-                    <td><div name='fund'></div></td>
-                    <td><div name='circ_modifier'></div></td>
-                    <td><div name='cn_label'></div></td>
-                    <td colspan='3' style='text-align:left;'>
-                        <div dojoType='dijit.form.Button' jsId='acqLitBatchUpdateCopies' scrollOnFocus='false'>Batch Update</div>
-                    </td>
-                </tr>
-            </tbody>
-
-
-            <tbody><tr><td class='acq-lit-table-spacer' colspan='0'></td></tr></tbody>
-            <tbody style='font-weight:bold;'>
-                <tr>
-                    <td style='margin-top:30px;'>Owning Branch</td>
-                    <td>Shelving Location</td>
-                    <td>Collection Code</td>
-                    <td>Fund</td>
-                    <td>Circ Modifier</td>
-                    <td>Callnumber</td>
-                    <td>Barcode</td>
-                    <td>Notes</td>
-                    <td>Receiver</td>
-                    <td colspan='0'></td>
-                </tr>
-            </tbody>
-            <tbody id='acq-lit-li-details-tbody' class='oils-generic-table'>
-                <tr id='acq-lit-li-details-row'>
-                    <td><div name='owning_lib'></div></td>
-                    <td><div name='location'></div></td>
-                    <td><div name='collection_code'></div></td>
-                    <td><div name='fund'></div></td>
-                    <td><div name='circ_modifier'></div></td>
-                    <td><div name='cn_label'></div></td>
-                    <td><div name='barcode'></div></td>
-                    <td><div name='note'></div></td>
-                    <td><div name='receiver'></div></td>
-                    <td><a href="javascript:void(0);" name="receive">Mark&nbsp;Received</a><a href="javascript:void(0);" name="unreceive">Un-Receive</a>&nbsp;<a href="javascript:void(0);" name="cancel">Cancel</a><span class="hidden" name="cancel_reason"></span>&nbsp;<a href="javascript:void(0);" name="claim">Claim</a></td>
-                    <td><div name='delete' dojoType='dijit.form.Button' style='color:red;' scrollOnFocus='false'>X</div></td>
-                </tr>
-            </tbody>
-        </table>
-    </div>
-
-
-    <!-- Copies table -->
-    <div id='acq-lit-real-copies-div' class='hidden'>
-        <h2>Copies</h2>
-
-        <div class='acq-lit-li-menu-bar'>
-            <table style='width:100%'>
-                <tr>
-                    <td style='text-align:left;'>
-                        <div dojoType='dijit.form.Button' id='acq-lit-real-copies-back-button' scrollOnFocus='false'>&#x2196; Return</div>
-                    </td>
-                    <td style='text-align:right;'>
-                        <span>
-                            <div dojoType='dijit.form.Button' jsId='acqLitSaveRealCopies' scrollOnFocus='false'>Save Changes</div>
-                        </span>
-                    </td>
-                </tr>
-            </table>
-        </div>
-
-        <table id='acq-lit-real-copies-table'>
-            <tbody style='font-weight:bold;'>
-                <tr>
-                    <td style='margin-top:30px;'>Owning Branch</td>
-                    <td>Shelving Location</td>
-                    <td>Circ Modifier</td>
-                    <td>Callnumber</td>
-                    <td>Barcode</td>
-                    <td colspan='0'></td>
-                </tr>
-            </tbody>
-            <tbody id='acq-lit-real-copies-tbody' class='oils-generic-table'>
-                <tr id='acq-lit-real-copies-row'>
-                    <td><div name='owning_lib'></div></td>
-                    <td><div name='location'></div></td>
-                    <td><div name='circ_modifier'></div></td>
-                    <td><div name='label'></div></td>
-                    <td><div name='barcode'></div></td>
-                </tr>
-            </tbody>
-        </table>
-    </div>
-
-    <div class="hidden">
-        <div jsId="acqLitLinkInvoiceDialog" dojoType="dijit.Dialog">
-            [% INCLUDE "default/acq/common/inv_dialog.tt2" which = "li" %]
-        </div>
-    </div>
-
-    <div class='hidden' id='acq-lit-progress-numbers'>
-        <table class='oils-generic-table'>
-            <tbody>
-                <tr>
-                    <td>Lineitems Processed</td>
-                    <td><span id='acq-pl-lit-li-processed'>0</span></td>
-                </tr>
-                <tr>
-                    <td>Items Processed</td>
-                    <td><span id='acq-pl-lit-lid-processed'>0</span></td>
-                </tr>
-                <tr>
-                    <td>Debits Encumbered</td>
-                    <td><span id='acq-pl-lit-debits-processed'>0</span></td>
-                </tr>
-                <tr>
-                    <td>Bib Records Imported</td>
-                    <td><span id='acq-pl-lit-bibs-processed'>0</span></td>
-                </tr>
-                <tr>
-                    <td>Bib Records Indexed</td>
-                    <td><span id='acq-pl-lit-indexed-processed'>0</span></td>
-                </tr>
-                <tr>
-                    <td>Copies Processed</td>
-                    <td><span id='acq-pl-lit-copies-processed'>0</span></td>
-                </tr>
-            </tbody>
-        </table>
-    </div>
-
-    <div class='hidden'>
-        <div dojoType='dijit.Dialog' jsId='acqLitPoCreateDialog'>
-            <table class='oils-generic-table'>
-                <tr>
-                    <td>Ordering Agency</td>
-                    <td><div name='ordering_agency' id='acq-lit-po-agency'></div></td>
-                </tr>
-                <tr>
-                    <td>Provider</td>
-                    <td><div name='provider' id='acq-lit-po-provider'></div></td>
-                </tr>
-                <tr>
-                    <td>Prepayment Required</td>
-                    <td><input id="acq-lit-po-prepay" name="prepayment_required" dojoType="dijit.form.CheckBox"/></td>
-                </tr>
-                <tr>
-                    <td>All Lineitems</td>
-                    <td><input checked='checked' name='create_from' value='all' dojoType='dijit.form.RadioButton'/></td>
-                </tr>
-                <tr>
-                    <td>Selected Lineitems</td>
-                    <td><input name='create_from' value='selected' dojoType='dijit.form.RadioButton'/></td>
-                </tr>
-                <tr>
-                    <td>Import Bibs and Create Copies</td>
-                    <td><input name='create_assets' dojoType='dijit.form.CheckBox'/></td>
-                </tr>
-                <tr>
-                    <td colspan='2'>
-                        <div dojoType='dijit.form.Button' type='submit' jsId='acqLitCreatePoSubmit'>Submit</div>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-
-    <div class="hidden">
-        <div dojoType="dijit.Dialog" jsId='acqLitSavePlDialog'>
-            <table class='dijitTooltipTable'>
-                <tr>
-                    <td colspan='2'>
-                        <input dojoType="dijit.form.RadioButton" name="which" type='radio' checked='checked' value='selected'/>
-                        <label for="name">Save selected</label>
-                        <input dojoType="dijit.form.RadioButton" name="which" type='radio' value='all'/>
-                        <label for="name">Save all</label>
-                    </td>
-                </tr>
-                <tr><td colspan='2'><hr/></td></tr>
-                <tr>
-                    <td><label for="new_name">Save as Selection List: </label></td>
-                    <td><input dojoType="dijit.form.TextBox" name="new_name"/></td>
-                </tr>
-                <tr>
-                    <td><label for="existing_pl">Add to Selection List: </label></td>
-                    <td>
-                        <input jsId="acqLitAddExistingSelect" dojoType="openils.widget.PCrudAutocompleteBox" fmclass="acqpl" searchAttr="name" name="existing_pl" />
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan='2' align='center'>
-                        <button dojoType='dijit.form.Button' type="submit" jsId='acqLitSavePlButton'>Save</button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-
-        <div dojoType="dijit.Dialog" jsId="lidCancelDialog">
-            <label for="acq-lit-lid-cancel-reason">Reason:</label>
-            <span id="acq-lit-lid-cancel-reason"></span>
-            <span dojoType="dijit.form.Button"
-                jsId="acqLidCancelButton">Cancel Copy</span>
-        </div>
-        <div dojoType="dijit.Dialog" jsId="liClaimPolicyDialog">
-            <label for="acq-lit-li-claim-policy">Claim policy:</label>
-            <span id="acq-lit-li-claim-policy"></span> &nbsp;
-            <span dojoType="dijit.form.Button"
-                jsId="liClaimPolicySave">Save</span>
-        </div>
-        <div dojoType="dijit.Dialog" jsId="liClaimDialog">
-            [% INCLUDE "default/acq/common/claim_dialog.tt2" %]
-        </div>
-        <div dojoType="dijit.Dialog" jsId="finalClaimDialog">
-            [% INCLUDE "default/acq/common/final_claim_dialog.tt2" %]
-        </div>
-        <div dojoType="dijit.Dialog" jsId="batchFundUpdateDialog" title="Batch Update Funds">
-            <div>
-                This will update the fund for all copies attached to these lineitems.<br/>
-                This will also update any existing encumbered or spent debits.
-            </div>
-            <br/>
-            <table class='oils-generic-table'>
-                <tr>
-                    <td>
-                        <span>Select a new fund:</span>
-                    </td>
-                    <td>
-                        <div id='acq-lit-batch-fund-selector'></div>
-                    </td>
-                </tr>
-                <tr>
-                    <td><button dojoType='dijit.form.Button' jsId='batchFundUpdateCancel'>Cancel</button></td>
-                    <td><button dojoType='dijit.form.Button' jsId='batchFundUpdateSubmit'>Submit</button></td>
-                </tr>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.Dialog" jsId='acqLitChangeLiStateDialog'>
-        <table class='dijitTooltipTable'>
-            <tr>
-                <td>
-                    <input dojoType="dijit.form.RadioButton" name="which" type='radio' checked='checked' value='selected'/>
-                    <label for="name">Mark selected</label>
-                    <input dojoType="dijit.form.RadioButton" name="which" type='radio' value='all'/>
-                    <label for="name">Mark all</label>
-                </td>
-            </tr>
-            <tr>
-                <td colspan='2' align='center'>
-                    <button dojoType='dijit.form.Button' type="submit" jsId='acqLitCancelLiStateButton'>Cancel</button>
-                    <button dojoType='dijit.form.Button' type="submit" jsId='acqLitSaveLiStateButton'>Go</button>
-                </td>
-            </tr>
-        </table>
-    </div>
-
-
-    <div class='hidden'>
-        <div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'></div>
-    </div>
-
-</div>
-
diff --git a/Open-ILS/src/templates/default/acq/common/li_table_pager.tt2 b/Open-ILS/src/templates/default/acq/common/li_table_pager.tt2
deleted file mode 100644 (file)
index bdae5b2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/li_table_pager.js">
-</script>
-<div id="acq-litpager-controls">
-    <button id="acq-litpager-controls-prev" disabled="disabled">
-        &laquo; Prev
-    </button>
-    <span id="acq-litpager-controls-batch-range" class="hidden">
-        <span id="acq-litpager-controls-batch-start"></span> &mdash;
-        <span id="acq-litpager-controls-batch-end"></span>
-        <span id="acq-litpager-controls-total-holder" class="hidden">
-            of <span id="acq-litpager-controls-total"></span>
-        </span>
-    </span>
-    <button id="acq-litpager-controls-next" disabled="disabled">
-        Next &raquo;
-    </button>
-</div>
diff --git a/Open-ILS/src/templates/default/acq/common/notes.tt2 b/Open-ILS/src/templates/default/acq/common/notes.tt2
deleted file mode 100644 (file)
index 609cf6c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-[% which_lc = which | lower %]
-    <div id="acq-[% which_lc %]-notes-div" class="hidden">
-        <div class="acq-menu-bar">
-            <table style="width:100%">
-                <tr>
-                    <td style="text-align:left;">
-                        <div dojoType="dijit.form.Button" id="acq-[% which_lc %]-notes-back-button">&#x2196; Return</div>
-                    </td>
-                    <td style="text-align:right;">
-                        <div dojoType="dijit.form.DropDownButton">
-                            <span>New Note</span>
-                            <div dojoType="dijit.TooltipDialog">
-                                <div class="acq-notes-note-row">
-                                    <div jsId="acq[% which %]CreateNoteText" dojoType="dijit.form.Textarea" style="height:5em; width:25em;" name="note"></div>
-                                    <div style="margin: 8px 0;">
-                                        <div dojoType="dijit.form.CheckBox" jsId="acq[% which %]CreateNoteVendorPublic" name="vendor_public" id="acq-[% which_lc %]-create-note-vendor-public"></div><label for="acq-[% which_lc %]-create-note-vendor-public">Note is vendor-public</label>
-                                    </div>
-                                </div>
-                                <button jsId="acq[% which %]CreateNoteSubmit" dojoType="dijit.form.Button" type="submit">Create</button>
-                            </div>
-                        </div>
-[% IF which == "Lit" %]
-                        <div dojoType="dijit.form.DropDownButton">
-                            <span>New Alert</span>
-                            <div dojoType="dijit.TooltipDialog">
-                                <div class="acq-notes-note-row">
-                                    <label for="acq-lit-alert-alert-text">Choose alert code &nbsp;&nbsp;</label>
-                                    <input id="acq-lit-alert-alert-text" jsId="acqLitAlertAlertText" dojoType="dijit.form.FilteringSelect" labelAttr="code" searchAttr="code" required="true" />
-                                </div>
-                                <div class="acq-notes-note-row">
-                                    <label for="acq-lit-alert-value">Additional comments</label>
-                                    <div jsId="acqLitAlertNoteValue" id="acq-lit-alert-value" dojoType="dijit.form.Textarea" name="value"></div>
-                                </div>
-                                <button jsId="acqLitCreateAlertSubmit" dojoType="dijit.form.Button" type="submit">Create</button>
-                            </div>
-                        </div>
-[% END %]
-                    </td>
-                </tr>
-            </table>
-        </div>
-
-        <ol id="acq-[% which_lc %]-notes-tbody">
-            <li id="acq-[% which_lc %]-notes-row">
-                <table style="width:100%;" class="oils-generic-table">
-                    <tr>
-                        <td width="70%" align="left">
-                            <span name="vendor_public"></span>
-                            <span name="alert_code"></span>
-                            <span style="font-size:120%" name="value"></span>
-                        </td>
-                        <td align="right" style="padding-right:30px;">
-                            <span name="edit_time"></span>
-                            <span style="padding-left:4px;">
-                                <a name="delete" href="javascript:void(0);" style="color:red;">Delete</a>
-                            </span>
-                        </td>
-                    </tr>
-                </table>
-            </li>
-        </ol>
-    </div>
diff --git a/Open-ILS/src/templates/default/acq/financial/claim_eligible.tt2 b/Open-ILS/src/templates/default/acq/financial/claim_eligible.tt2
deleted file mode 100644 (file)
index 6df7fca..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "Items Eligible For Claiming" %]
-<script type="text/javascript">var filter = "[% ctx.page_args.0 %]";</script>
-<div>
-    <h1>Items Eligible For Claiming</h1>
-    <div class="oils-acq-basic-roomy">
-        Show items ready to claim for:
-        <select
-            dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId="orderingAgency" searchAttr="shortname"
-            labelAttr="shortname"></select>
-        <span dojoType="openils.widget.ProgressDialog"
-            jsId="progressDialog"></span>
-    </div>
-    <div class="oils-acq-basic-roomy">
-        <button name="claim_submit">Claim selected items</button>
-    </div>
-    <table id="acq-eligible-li-table">
-        <thead>
-            <tr>
-                <th><input type="checkbox" name="selector_all" /></th>
-                <th>Items</th>
-            </tr>
-        </thead>
-        <tbody>
-            <tr><!-- item template -->
-                <td>
-                    <input type="checkbox" name="selector" />
-                </td>
-                <td>
-                    <div name="description"></div>
-                    <div name="lid_link_holder" class="hidden">
-                        [ <a href="javascript:void(0);"
-                            name="lid_link">Consider individual copies
-                            for claiming</a> ]
-                    </div>
-                </td>
-            </tr>
-            <tr><!-- empty template -->
-                <td colspan="2">
-                    <em>There were no items matching your search.</em>
-                </td>
-            </tr>
-        </tbody>
-    </table>
-    <div class="oils-acq-basic-roomy">
-        <button name="claim_submit">Claim selected items</button>
-    </div>
-</div>
-<div class="hidden">
-    <div dojoType="dijit.Dialog" jsId="finalClaimDialog">
-        [% INCLUDE "default/acq/common/final_claim_dialog.tt2" %]
-    </div>
-</div>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/financial/claim_eligible.js"> </script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/financial/claim_voucher.js"> </script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/financial/list_currency_types.tt2 b/Open-ILS/src/templates/default/acq/financial/list_currency_types.tt2
deleted file mode 100644 (file)
index 2b00688..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-    <div>Currency Type</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='ctGrid.showCreateDialog()'>New Currency Type</button>
-        <button dojoType='dijit.form.Button' onClick='ctGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="ctGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['code', 'label']"
-            defaultCellWidth='25'
-            query="{code: '*'}"
-            fmClass='acqct'
-            editOnEnter='true'>
-    </table>
-</div>
-
-<script type="text/javascript">
-    dojo.require('dijit.layout.ContentPane');
-    dojo.require('dijit.form.Button');
-    dojo.require('openils.widget.AutoGrid');
-    dojo.require('openils.Util');
-    openils.Util.addOnLoad(
-        function() {
-            ctGrid.loadAll({order_by:{acqct : 'code'}});
-        }
-    );
-</script>
-
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/acq/financial/list_funding_sources.tt2 b/Open-ILS/src/templates/default/acq/financial/list_funding_sources.tt2
deleted file mode 100644 (file)
index 2a5d91d..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-
-<!-- The main grid lives here -->
-<script type="text/javascript">
-    function getName(rowIndex, item) {
-        if(!item) return '';
-        var name = this.grid.store.getValue(item, 'name');
-        var id = this.grid.store.getValue(item, 'id');
-        // weird hack to pass the data we need to the formatter which is now required for HTML cell values
-        return id + ':' + name;
-    }
-
-    function formatName(value) {
-        if(value) {
-            var vals = value.split(/:/);
-            return '<a href="[% ctx.base_path %]/acq/funding_source/view/'+vals[0]+'">'+vals[1]+'</a>';
-        }
-    }
-</script>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Funding Sources</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='fsGrid.showCreateDialog()'>New Funding Source</button>
-            <button dojoType='dijit.form.Button' onClick='fsGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-
-    <table  jsId="fsGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['id', 'name', 'owner', 'code', 'currency_type', 'balance']"
-            query="{name: '*'}"
-            defaultCellWidth='"auto"'
-            fmClass='acqfs'
-            editOnEnter='true'>
-        <thead>
-            <tr>
-                <th field="name" get='getName' formatter='formatName'/>
-                <th field="owner" get='getOrgInfo'/>
-                <th field="balance" get='getBalanceInfo'/>
-            </tr>
-        </thead>
-    </table>
-</div>
-
-<!-- load the page-specific JS -->
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/list_funding_sources.js'></script>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/financial/list_funds.tt2 b/Open-ILS/src/templates/default/acq/financial/list_funds.tt2
deleted file mode 100644 (file)
index 4211e17..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-[% ctx.page_title = 'Funds' %]
-
-<!-- load the page-specific JS -->
-<script type="text/javascript">
-    function getFundName(rowIndex, item) {
-        if (!item) return null;
-        return {
-            "name": this.grid.store.getValue(item, "name"),
-            "id": this.grid.store.getValue(item, "id")
-        };
-    }
-
-    function formatName(value) {
-        if (!value) return ""; // XXX
-
-        var link = "<a href='/eg/acq/financial/view_fund/" +
-            value.id + "'>" +
-            value.name + "</a>";
-
-        /* TODO: add another element here to which we can attach a tooltip
-           showing tags */
-        return link;
-    }
-
-    function createNewFund() {
-        /* Set the display constraints before drawing the edit dialog;
-           introduce Y2K and Y2K2C problem */
-        lfGrid.overrideWidgetArgs = {year: { dijitArgs: {constraints : {min: 2000, max: 2200, pattern : '####'}}}};
-        lfGrid.showCreateDialog();
-    }
-
-</script>
-
-<table style='width:100%;'>
-    <tr>
-        <!-- TODO CSS -->
-        <td style='text-align:left;font-size:130%;font-weight: bold;'>Funds</td>
-        <td style='text-align:right;width:90%;'>
-
-            <button dojoType='dijit.form.Button' onClick='createNewFund()'>New Fund</button>
-            <button dojoType='dijit.form.Button' onClick='lfGrid.deleteSelected()'>Delete Selected</button>
-
-            <div dojoType="dijit.form.DropDownButton">
-                <span>Fund Propagation &amp; Rollover</span>
-                <div dojoType="dijit.TooltipDialog" execute="performRollover(arguments[0]);">
-                    <table class='dijitTooltipTable' id='oils-acq-rollover-tooltip-table'>
-                        <tr>
-                            <td colspan='2'>
-                                <div style='width:400px;'>
-                                Propagation creates new funds for the subsequent fiscal year based on the
-                                funds for the selected fiscal year.  Only funds with the propagate setting
-                                enabled will be affected.  No money or encumbrances are altered
-                                during this process.
-                                </div>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><label for="rollover">Perform Fiscal Year Close-out Operation: </label></td>
-                            <td>
-                                <input dojoType="dijit.form.CheckBox" name="rollover"> </input>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td colspan='2'>
-                                <div style='width:400px;'>
-                                The year end close out operation moves encumbrances from the selected fiscal
-                                year to the analogous funds in the subsequent fiscal year and it deactivates
-                                funds for the selected fiscal year.  Additionally, for all funds that have
-                                the "Rollover" setting enabled, this process will move all unspent money to
-                                the analogous fund in the subsequent fiscal year.
-                                </div>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td>Context Org Unit:</td>
-                            <td><span id='oils-acq-rollover-ctxt-org'></span></td>
-                        </tr>
-                        <tr>
-                            <td>Include Funds for Descendant Org Units:</td>
-                            <td><input dojoType=dijit.form.CheckBox name='child_orgs'/></td>
-                        </tr>
-                        <tr>
-                            <td><label for="dry_run">Dry Run: </label></td>
-                            <td>
-                                <input dojoType="dijit.form.CheckBox" name="dry_run" checked='checked'> </input>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td colspan='2'>
-                                <div style='width:400px;'>
-                                When Dry Run is selected, the system will generate a summary of
-                                the changes that would occur during the selected operation(s).
-                                No data will be changed.
-                                </div>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td colspan='2' align='center'>
-                                <button dojoType=dijit.form.Button type="submit">Process</button>
-                            </td>
-                        </tr>
-                    </table>
-                </div>
-            </div>
-        </td>
-    </tr>
-</table>
-
-<div class="oils-acq-basic-roomy">
-    <span>Context Org Unit</span>
-    <select
-        dojoType="openils.widget.OrgUnitFilteringSelect"
-        jsId="contextOrgSelector"
-        searchAttr="shortname"
-        labelAttr="shortname">
-    </select>
-
-    <span>Year</span>
-    <select dojoType="dijit.form.FilteringSelect"
-        jsId="fundFilterYearSelect"
-        labelAttr="year"
-        searchAttr="year">
-    </select>
-
-    <div dojoType='dijit.form.Button' jsId='refreshButton'>Refresh</div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div id='acq-fund-list-rollover-summary-wrapper'>
-        <div id='acq-fund-list-rollover-summary' class='hidden'>
-            <div id='acq-fund-list-rollover-summary-header'> </div>
-            <ul>
-                <li id='acq-fund-list-rollover-summary-dry-run'>These changes have <span class='oils-notify-text'>not</span> been committed yet.</li>
-                <li id='acq-fund-list-rollover-summary-funds'></li>
-                <li id='acq-fund-list-rollover-summary-rollover-amount'></li>
-            </ul>
-        </div>
-    </div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="lfGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['id', 'name', 'code', 'year', 'org', 'currency_type', 'combined_balance']"
-            requiredFields="['name', 'code', 'year', 'org', 'currency_type']"
-            query="{id: '*'}"
-            defaultCellWidth='"auto"'
-            fmClass='acqf'
-            showPaginator='true'
-            editOnEnter='true'>
-        <thead>
-            <tr>
-                <th field="name" get="getFundName" formatter="formatName"></th>
-                <th field="combined_balance" name="Combined Balance" get="getBalanceInfo"></th>
-            </tr>
-        </thead>
-    </table>
-</div>
-<div dojoType="openils.widget.ProgressDialog" jsId="progressDialog"></div>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/list_funds.js'> </script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/financial/view_fund.tt2 b/Open-ILS/src/templates/default/acq/financial/view_fund.tt2
deleted file mode 100644 (file)
index a1fcc3d..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-<script type="text/javascript"> var fundID = [% ctx.page_args.0 %] </script>
-
-<div id='oils-acq-list-header' class='container'>
-    <div id='oils-acq-list-header-label'>Fund Details</div>
-</div>
-
-<div class='oils-acq-actions-div' style='margin:8px;'> <!-- XXX CSS -->
-    <!-- Dropdown menu for creating a new funding source credit -->
-    <div dojoType="dijit.form.DropDownButton">
-        <span>Create Allocation</span>
-        <div dojoType="dijit.TooltipDialog" execute="createAllocation(arguments[0]);">
-            <script type='dojo/connect' event='onOpen'>
-                openils.acq.FundingSource.createStore(
-                    function(store) {
-                        fundingSourceSelector.store = 
-                            new dojo.data.ItemFileReadStore({data:store});
-                            fundingSourceSelector.setValue(store.items[0].code);
-                    }, 
-                    'MANAGE_FUNDING_SOURCE'
-                );
-            </script>
-            <table class='dijitTooltipTable'>
-                <tr>
-                    <td><label for="amount">Funding Source: </label></td>
-                    <td>
-                        <input jsId='fundingSourceSelector' name="funding_source" 
-                               dojoType="dijit.form.FilteringSelect" searchAttr='code' labelAttr='code'>
-                        </input>
-                    </td>
-                </tr>
-                <tr>
-                    <td><label for="amount">Amount: </label></td>
-                    <td>
-                        <input dojoType="dijit.form.CurrencyTextBox" name="amount"> </input>
-                    </td>
-                </tr>
-
-                <!-- Percent-based allocations are not supported.  Will implement or remove later.
-                <tr>
-                    <td><label for="amount">Percent: </label></td>
-                    <td>
-                        <input 
-                             dojoType="dijit.form.NumberTextBox" 
-                             constraints="{min:0,max:100}" 
-                             promptMessage="Please enter an amount between 0 and 100"
-                             name="percent"> 
-                        </input>
-                    </td>
-                </tr>
-                -->
-
-                <tr>
-                    <td><label for="note">Note: </label></td>
-                    <td>
-                        <input dojoType="dijit.form.TextBox" name="note"> </input>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan='2' align='center'>
-                        <button dojoType="dijit.form.Button" type="submit">Apply</button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div> 
-    <div dojoType="dijit.form.DropDownButton">
-        <span>Transfer Money</span>
-        <div jsId="xferDialog" dojoType="dijit.TooltipDialog">
-            <script type="dojo/connect" event="onOpen">
-                /* If a fund is selected (from a previous time that the
-                user popped open this dialog), unselect it. Wouldn't want to
-                accidentally encourage a transfer that the user didn't mean. */
-                xferManager.clearFundSelector();
-                xferManager.setFundName(fund);
-            </script>
-            <table id="oils-acq-fund-xfer-table">
-                <tr>
-                    <th>
-                        <label for="oils-acq-fund-xfer-o-amount">
-                            Source amount<br />
-                            <em>Amount to transfer from<br />
-                                <span id="oils-acq-fund-xfer-name-fund"></span>
-                            </em>
-                        </label>
-                    </th>
-                    <td>
-                        <input dojoType="dijit.form.CurrencyTextBox"
-                            id="oils-acq-fund-xfer-o-amount"
-                            name="o_amount" />
-                    </td>
-                </tr>
-                <tr>
-                    <th>
-                        <label for="oils-acq-fund-xfer-d-selector">
-                            Destination fund
-                        </label>
-                    </th>
-                    <td>
-                        <span id="oils-acq-fund-xfer-d-selector"></span>
-                    </td>
-                </tr>
-                <tr id="oils-acq-fund-xfer-dest-amount" class="hidden">
-                    <th>
-                        <label for="oils-acq-fund-xfer-d-selector">
-                            Destination amount
-                        </label>
-                    </th>
-                    <td>
-                        <div class="oils-acq-basic-roomy">
-                            <input id="oils-acq-fund-xfer-same-o-d"
-                                dojoType="dijit.form.CheckBox" checked="checked"
-                                value="1" name="same_o_d" />
-                            <label for="oils-acq-fund-xfer-same-o-d">
-                                Same as source amount?
-                            </label>
-                        </div>
-                        <div class="oils-acq-basic-roomy">
-                            <input id="oils-acq-fund-xfer-d-amount"
-                                dojoType="dijit.form.CurrencyTextBox"
-                                name="d_amount" disabled="disabled" />
-                        </div>
-                    </td>
-                </tr>
-                <tr>
-                    <th>
-                        <label for="oils-acq-fund-xfer-note">Note</label>
-                    </th>
-                    <td>
-                        <input dojoType="dijit.form.TextBox" name="note"
-                            id="oils-acq-fund-xfer-note" />
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2" id="oils-acq-fund-xfer-submit-row">
-                        <button onclick="xferManager.submit();"
-                            dojoType="dijit.form.Button" type="submit">
-                            Transfer
-                        </button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-</div>
-
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top">
-    <div dojoType="dijit.layout.TabContainer">
-
-        <!-- Fund Summary -->
-        <div dojoType="dijit.layout.ContentPane" 
-             class='oils-acq-detail-content-pane' title="Summary" selected='true'>
-            
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
-                <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px;'> 
-                    <table jsId="fundGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector='20px'> 
-                        <thead> 
-                            <tr> 
-                                <th field="id">ID</th> 
-                                <th field="name">Name</th> 
-                                <th field="code">Code</th> 
-                                <th field="currency_type">Currency Type</th> 
-                                <th field="org" get='getOrgInfo'>Owner</th> 
-                                <th field="combined_balance" get='getSummaryInfo'>Balance</th> 
-                                <th field="allocation_total" get='getSummaryInfo'>Total Allocated</th>
-                                <th field="spent_balance" get='getSummaryInfo'>Spent Balance</th>
-                                <th field="debit_total" get='getSummaryInfo'>Total Debits</th>
-                                <th field="spent_total" get='getSummaryInfo'>Total Spent</th>
-                                <th field="encumbrance_total" get='getSummaryInfo'>Total Encumbered</th>
-                            </tr> 
-                        </thead> 
-                    </table>     
-                </div>
-            </div>
-        </div>
-
-        <!-- Fund Allocations -->
-        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Allocations">
-            <script type='dojo/connect' event='onShow'>loadAllocationGrid();</script>
-            
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
-                <div dojoType="dijit.layout.ContentPane" layoutAlign="client"> 
-
-                    <table 
-                        jsId="fundAllocationGrid" 
-                        autoHeight='true'
-                        dojoType="openils.widget.AutoGrid"
-                        fieldOrder="['funding_source', 'amount', 'create_time', 'allocator', 'note']"
-                        suppressFields="['id', 'fund']"
-                        defaultCellWidth='"auto"'
-                        fmClass="acqfa"
-                        query="{id: '*'}"
-                        showPaginator='true'>
-
-                        <thead>
-                            <tr>
-                                <th field='funding_source' get='getFundingSource' formatter='formatFundingSource'/>
-                            </tr>
-                        </thead>
-                    </table>
-                </div> 
-            </div> 
-        </div>
-
-        <!--- Fund Debits -->
-        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Debits">
-            <script type='dojo/connect' event='onShow'>loadDebitGrid();</script>
-            
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top" style='height:600px;'> 
-                <button dojoType="dijit.form.Button" onClick="fundDebitGrid.refresh();">Refresh Grid</button>
-                <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-
-                    <table 
-                        jsId="fundDebitGrid" 
-                        autoHeight='true'
-                        dojoType="openils.widget.AutoGrid"
-                        fieldOrder="['amount', 'encumbrance', 'debit_type', 'origin_amount', 'origin_currency_type']"
-                        suppressFields="['id', 'fund']"
-                        defaultCellWidth='"auto"'
-                        fmClass="acqfdeb"
-                        query="{id: '*'}"
-                        showPaginator='true'>
-                    </table>
-                </div> 
-            </div> 
-        </div>
-
-        <div dojoType="dijit.layout.ContentPane" class="oils-acq-detail-content-pane" title="Tags">
-            <script type="dojo/connect" event="onShow">
-                tagManager.displayFund(fund);
-            </script>
-            <div id="oils-acq-tag-manager-display"></div>
-            <div id="oils-acq-tag-manager-add">
-                <div dojoType="dijit.form.DropDownButton">
-                    <span>Add Tag</span>
-                    <div dojoType="dijit.TooltipDialog">
-                        <select dojoType="dijit.form.FilteringSelect"
-                            jsId="tagSelector">
-                        </select>
-                        <button onclick="tagManager.addMapping(
-                            fund, new acqft().fromStoreItem(tagSelector.item)
-                        );" type="submit" dojoType="dijit.form.Button">
-                            Add
-                        </button>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-<!-- load the page-specific JS -->
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/tag_manager.js"></script>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/view_fund.js'></script>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/financial/view_funding_source.tt2 b/Open-ILS/src/templates/default/acq/financial/view_funding_source.tt2
deleted file mode 100644 (file)
index 55a372d..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-<script type="text/javascript"> var fundingSourceID = [% ctx.page_args.0 %]; </script>
-
-<div id='oils-acq-list-header' class='container'>
-    <div id='oils-acq-list-header-label'>Funding Source Details</div>
-</div>
-
-<div class='oils-acq-actions-div' style='margin:8px;'> <!-- XXX CSS -->
-
-    <!-- Dropdown menu for creating a new funding source credit -->
-    <div dojoType="dijit.form.DropDownButton">
-        <span>Apply Credit</span>
-        <div dojoType="dijit.TooltipDialog" execute="applyFSCredit(arguments[0]);">
-            <table class='dijitTooltipTable'>
-                <tr>
-                    <td><label for="amount">Amount: </label></td>
-                    <td>
-                        <input dojoType="dijit.form.CurrencyTextBox" name="amount"> </input>
-                    </td>
-                </tr>
-                <tr>
-                    <td><label for="note">Note: </label></td>
-                    <td>
-                        <input dojoType="dijit.form.TextBox" name="note"> </input>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan='2' align='center'>
-                        <button dojoType=dijit.form.Button type="submit">Apply</button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div> 
-    <div dojoType="dijit.form.DropDownButton">
-        <span>Allocate to Fund</span>
-        <div dojoType="dijit.TooltipDialog" execute="applyFSAllocation(arguments[0]);">
-            <script type='dojo/connect' event='onOpen'>
-                openils.acq.Fund.createStore(
-                    function(store) {
-                        fundingSourceFundSelector.store = 
-                            new dojo.data.ItemFileReadStore({data:store});
-                        fundingSourceFundSelector.setValue(store.items[0].code);
-                    }, 'MANAGE_FUND'
-                );
-            </script>
-            <table class='dijitTooltipTable'>
-                <tr>
-                    <td><label for="amount">Fund: </label></td>
-                    <td>
-                        <input jsId='fundingSourceFundSelector' name="fund" 
-                            dojoType="dijit.form.FilteringSelect" searchAttr='code' labelAttr='code'>
-                        </input>
-                    </td>
-                </tr>
-                <tr>
-                    <td><label for="amount">Amount: </label></td>
-                    <td>
-                        <input dojoType="dijit.form.CurrencyTextBox" name="amount"> </input>
-                    </td>
-                </tr>
-                <!-- Percent-based allocations are not supported.  Will implement or remove later.
-                <tr>
-                    <td><label for="amount">Percent: </label></td>
-                    <td>
-                        <input 
-                            dojoType="dijit.form.NumberTextBox" 
-                            constraints="{min:0,max:100}" 
-                            promptMessage="Please enter an amount between 0 and 100"
-                            name="percent"> 
-                        </input>
-                    </td>
-                </tr>
-                -->
-                <tr>
-                    <td><label for="note">Note: </label></td>
-                    <td>
-                        <input dojoType="dijit.form.TextBox" name="note"> </input>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan='2' align='center'>
-                        <button dojoType=dijit.form.Button type="submit">Apply</button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div> 
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top">
-    <div dojoType="dijit.layout.TabContainer">
-
-        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Summary" selected='true'>
-            <script type='dojo/connect' event='onShow'>loadFSGrid();</script>
-
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
-                <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px;'> 
-                    <table jsId="fundingSourceGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector='20px'> 
-                        <thead> 
-                            <tr> 
-                                <th field="id">ID</th> 
-                                <th field="name" width='auto'>Name</th> 
-                                <th field="code">Code</th> 
-                                <th field="balance" get='getSummaryInfo'>Balance</th>
-                                <th field="credit_total" get='getSummaryInfo'>Total Credits</th>
-                                <th field="allocation_total" get='getSummaryInfo'>Total Debits</th>
-                                <th field="currency_type">Currency Type</th> 
-                                <th field="owner" width='auto' get='getOrgInfo'>Owner</th>
-                            </tr> 
-                        </thead> 
-                    </table>     
-                </div> 
-            </div>               
-        </div>
-        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Credits">
-            <script type='dojo/connect' event='onShow'>loadCreditGrid(); </script> 
-
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
-                <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-
-                    <table 
-                        jsId="fsCreditGrid"
-                        autoheight="true"
-                        dojoType="openils.widget.AutoGrid"
-                        fieldOrder="['amount', 'effective_date', 'deadline_date', 'note']"
-                        suppressFields="['id', 'funding_source']"
-                        defaultCellWidth='"auto"'
-                        fmClass="acqfscred"
-                        query="{id: '*'}"
-                        showPaginator='true'>
-                    </table>
-                </div> 
-            </div> 
-        </div>
-
-        <!-- Fund Allocations -->
-        <div dojoType="dijit.layout.ContentPane" class='oils-acq-detail-content-pane' title="Allocations">
-            <script type='dojo/connect' event='onShow'>loadAllocationGrid();</script>
-            
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
-                <div dojoType="dijit.layout.ContentPane" layoutAlign="client"> 
-
-                    <table 
-                        jsId="fsAllocationGrid" 
-                        autoHeight='true'
-                        dojoType="openils.widget.AutoGrid"
-                        fieldOrder="['fund', 'amount', 'create_time', 'allocator', 'note']"
-                        suppressFields="['id', 'funding_source']"
-                        defaultCellWidth='"auto"'
-                        fmClass="acqfa"
-                        query="{id: '*'}"
-                        showPaginator='true'>
-
-                        <thead>
-                            <tr>
-                                <th field='fund' get='getFund' formatter='formatFund'/>
-                            </tr>
-                        </thead>
-                    </table>
-                </div> 
-            </div> 
-        </div>
-
-    </div>
-</div>
-
-<!-- load the page-specific JS -->
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/view_funding_source.js'> </script>
-
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/acq/financial/view_provider.tt2 b/Open-ILS/src/templates/default/acq/financial/view_provider.tt2
deleted file mode 100644 (file)
index f37911e..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-<script type="text/javascript">var providerId = [% ctx.page_args.0 %]</script>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top">
-    <div dojoType="dijit.layout.TabContainer">
-
-        <div dojoType="dijit.layout.ContentPane" 
-                class='oils-acq-detail-content-pane' title="Summary" selected='true' style='height:400px;'>
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
-                <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px;'> 
-                    <table jsId="providerGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector='20px'> 
-                        <thead> 
-                            <tr> 
-                                <th field="id">ID</th> 
-                                <th field="name" width='auto'>Name</th> 
-                                <th field="code">Code</th> 
-                                <th field="owner" get='getOrgInfo'>Owner</th> 
-                                <th field="currency_type">Currency Type</th> 
-                            </tr> 
-                        </thead> 
-                    </table>     
-                </div> 
-            </div>             
-        </div>
-
-        <div dojoType="dijit.layout.ContentPane" 
-                class='oils-acq-detail-content-pane' title="Order Record Format" style='height:400px;'>
-
-            <div class='oils-acq-actions-div' style='margin:8px;'>
-
-                <!-- 
-                    Dropdown menu for creating a new order record data type
-                -->
-                <div dojoType="dijit.form.DropDownButton">
-                    <span>Create Order Record Field</span>
-                    <div dojoType="dijit.TooltipDialog" execute="createOrderRecordField(arguments[0]);">
-                        <script type='dojo/connect' event='onOpen'>setORDesc();</script>
-                        <table class='dijitTooltipTable'>
-                            <tr>
-                                <td><label for="code">Code: </label></td>
-                                <td>
-                                    <select id='oils-acq-provider-or-code' name="code" dojoType="dijit.form.ComboBox">
-                                        <script type='dojo/connect' event='onChange'>setORDesc();</script>
-                                        <option value='fund_code'>Fund Code</option>
-                                        <option value='shelving_location'>Shelving Location</option>
-                                        <option value='quantity'>Quantity</option>
-                                        <option value='order_date'>Order Date</option>
-                                        <option value='volume_count'>Volume Count </option>
-                                        <option value='currency_type'>Currency Type</option>
-                                        <option value='internal_notes'>Internal Notes </option>
-                                        <option value='vendor_notes'>Vendor Notes</option>
-                                        <option value='estimated_price'>Estimated Price</option>
-                                    </select>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td><label for="description">Description: </label></td>
-                                <td><input id='oils-acq-provider-or-desc' dojoType="dijit.form.TextBox" name="description"> </input></td>
-                            </tr>
-                            <tr>
-                                <td><label for="amount">Tag: </label></td>
-                                <td><input dojoType="dijit.form.TextBox" name="tag"></input></td>
-                            </tr>
-                            <tr>
-                                <td><label for="amount">Subfield: </label></td>
-                                <td><input dojoType="dijit.form.TextBox" name="subfield"></input></td>
-                            </tr>
-                            <tr>
-                                <td><label for="ident">Identifer Field?: </label></td>
-                                <td>
-                                    <select dojoType="dijit.form.FilteringSelect" name="ident">
-                                        <option value='f' selected='selected'>False</option>
-                                        <option value='t'>True</option>
-                                    </select>
-                                </td>
-                            </tr>
-                            <tr>
-                                <td><label for="amount">XPath (advanced): </label></td>
-                                <td><input dojoType="dijit.form.TextBox" name="xpath"></input></td>
-                            </tr>
-                            <tr>
-                                <td colspan='2' align='center'>
-                                    <button dojoType='dijit.form.Button' type="submit">Apply</button>
-                                </td>
-                            </tr>
-                        </table>
-                    </div>
-                </div> 
-
-                <!--
-                    Delete order record data types button
-                -->
-                <button dojoType="dijit.form.Button" onclick='deleteORDataFields();'>
-                    Delete Selected
-                </button>
-            </div>
-
-            <script type='dojo/connect' event='onShow'>loadPADGrid();</script>
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
-                <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px;'> 
-                    <table jsId="padGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector='20px'> 
-                        <thead> 
-                            <tr> 
-                                <th field="id">ID</th> 
-                                <th field="code" width='auto'>Code</th> 
-                                <th field="description" width='auto'>Description</th>                                 
-                                <th field="tag" get='getTag'>Tag</th> 
-                                <th field="subfield" get='getSubfield'>Subfield</th> 
-                                <th field="xpath" width='auto'>XPath</th> 
-                            </tr> 
-                        </thead> 
-                    </table>     
-                </div> 
-            </div>             
-        </div>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/view_provider.js'></script>
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/acq/invoice/view.tt2 b/Open-ILS/src/templates/default/acq/invoice/view.tt2
deleted file mode 100644 (file)
index 05920f5..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-[% ctx.page_title = 'Invoicing' %]
-<script type="text/javascript">var invoiceId = '[% ctx.page_args.0 %]';</script>
-<div dojoType="dijit.layout.ContentPane" style="height:100%">
-
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-        <div> Invoice </div>
-        <div> </div>
-    </div>
-
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div id='acq-view-invoice-div'/>
-    </div>
-
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <table class='oils-acq-invoice-table'>
-            <thead/>
-            <tbody id='acq-invoice-entry-header' class='hidden'>
-                <tr>
-                    <td colspan='0'>
-                        <h3>Bibliographic Items</h3>
-                    </td>
-                </tr>
-            </tbody>
-            <!-- acq.invoice_entry -->
-            <thead id='acq-invoice-entry-thead' class='hidden'>
-                <tr>
-                    <th colspan='2'>Title Details</th>
-                    <th class='acq-invoice-center-col'>#&nbsp;Invoiced&nbsp;/&nbsp;#&nbsp;Paid</th>
-                    <th class='acq-invoice-center-col'>Billed</th>
-                    <th class='acq-invoice-paid-col'>Paid</th>
-                    <th class='acq-invoice-center-col hide-complete'>Detach</th>
-                </tr>
-            </thead>
-            <tbody id='acq-invoice-entry-tbody' class='hidden'>
-                <tr id='acq-invoice-entry-template' class='acq-invoice-row'>
-                    <td colspan='2'>
-                        <div name='title_details'></div>
-                        <div name='note'></div>
-                    </td>
-                    <td class='acq-invoice-center-col'>
-                        <span name='inv_item_count'></span>&nbsp;/&nbsp;<span name='phys_item_count'></span>
-                    </td>
-                    <td class='acq-invoice-billed-col'><div name='cost_billed'/></td>
-                    <td class='acq-invoice-paid-col'><div name='amount_paid'/></td>
-                    <td class='acq-invoice-center-col hide-complete'><a href='javascript:void(0);' name='detach'>Detach</a></td>
-                </tr>
-            </tbody>
-            <tbody>
-                <tr>
-                    <td  style='margin-top:15px;' colspan='0'>
-                        <h3>Direct Charges, Taxes, Fees, etc.</h3>
-                    </td>
-                </tr>
-            </tbody>
-            <!-- acq.invoice_item -->
-            <thead>
-                <tr>
-                    <th>Charge Type</th>
-                    <th class='acq-invoice-center-col'>Fund</th>
-                    <th>Title/Description</th>
-                    <th class='acq-invoice-center-col'>Billed</th>
-                    <th class='acq-invoice-paid-col'>Paid</th>
-                    <th class='acq-invoice-center-col hide-complete'>Delete</th>
-                </tr>
-            </thead>
-            <tbody id='acq-invoice-item-tbody'>
-                <tr id='acq-invoice-item-template' class='acq-invoice-row acq-invoice-item-row'>
-                    <td><div name='inv_item_type'/></td>
-                    <td class='acq-invoice-center-col'><div name='fund'/></td>
-                    <td><div name='title'/></td>
-                    <td class='acq-invoice-center-col' class='acq-invoice-billed-col'><div name='cost_billed'/></td>
-                    <td class='acq-invoice-paid-col'><div name='amount_paid'/></td>
-                    <td class='acq-invoice-center-col hide-complete'><a href='javascript:void(0);' name='delete'>Delete</a></td>
-                </tr>
-            </tbody>
-            <tbody class='hide-complete'>
-                <tr>
-                    <td colspan='0'>
-                        <a href='javascript:void(0);' id='acq-invoice-new-item'>Add Charge...</a>
-                    </td>
-                </tr>
-            </tbody>
-            <tbody>
-                <tr>
-                    <td style='margin-top:15px;' colspan='0'> 
-                        <h3> </h3>
-                    </td>
-                </tr>
-            </tbody>
-            <thead>
-                <tr>
-                    <th colspan='3'/>
-                    <th class='acq-invoice-center-col' class='acq-invoice-billed-col'>Total</th>
-                    <th class='acq-invoice-paid-col'>Total</th>
-                    <th class='acq-invoice-center-col' class='acq-invoice-balance-col'>Balance</th>
-                </tr>
-            </thead>
-            <tbody>
-                <tr>
-                    <td colspan='3' style='text-align:right;'>
-                        <button jsId='invoiceSaveButton' class='hide-complete'
-                            dojoType='dijit.form.Button' onclick='saveChanges();'>Save</button>
-                        <button jsId='invoiceProrateButton' class='hide-complete'
-                            dojoType='dijit.form.Button' onclick='saveChanges(true);'>Save &amp; Prorate</button>
-                        <button jsId='invoiceCloseButton' class='hide-complete'
-                            dojoType='dijit.form.Button' onclick='saveChanges(false, true);'>Save &amp; Close</button>
-                        <span class='hidden' id='acq-invoice-reopen-button-wrapper'>
-                            <button jsId='invoiceReopenButton' 
-                                dojoType='dijit.form.Button' onclick='saveChanges(false, false, true);'>Reopen Invoice</button>
-                        </span>
-                    </td>
-                    <td class='acq-invoice-center-col'><div jsId='totalInvoicedBox' dojoType='dijit.form.CurrencyTextBox' style='width:9em;'/></td>
-                    <td class='acq-invoice-paid-col'><div jsId='totalPaidBox' dojoType='dijit.form.CurrencyTextBox' style='width:9em;'/></td>
-                    <td class='acq-invoice-center-col'><div jsId='balanceOwedBox' dojoType='dijit.form.CurrencyTextBox' style='width:9em;'/></td>
-                </tr>
-            </tbody>
-        </table>
-    </div>
-</div>
-<div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'/>
-<div jsId='extraItemsDialog' dojoType="dijit.Dialog" title="Extra Items">
-    <div dojoType="dijit.layout.ContentPane" style='text-align:center;'>
-        <div id='acq-invoice-extra-copies-message'></div>
-        <br/>
-        Select a fund for the new items: <div id='acq-invoice-extra-copies-fund'></div>
-        <br/><br/>
-        <br/><br/>
-        <span style='padding-right: 10px;'>
-            <button dojoType='dijit.form.Button' jsId='extraCopiesCancel'>Cancel</button>
-        </span>
-        <button dojoType='dijit.form.Button' jsId='extraCopiesGo'>Add New Items</button>
-    </div>
-</div>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/invoice/common.js'> </script>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/invoice/view.js'> </script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/lineitem/findbib.tt2 b/Open-ILS/src/templates/default/acq/lineitem/findbib.tt2
deleted file mode 100644 (file)
index c2269c1..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "Locate Bib Record" %]
-<script type="text/javascript">
-    function iterateSubfields(item) {
-        var out = '';
-        dojo.query('subfield', item).forEach(
-            function(item) { out += item.textContent + ' '; } );
-        return out;
-    }
-</script>
-
-<div id='acq-findbib-search' style='margin:30px; border:1px solid #333; text-align:center;'>
-    <input dojoType='dijit.form.TextBox' jsId='searchQuery' style='width:500px;'></input>
-    <button dojoType='dijit.form.Button' onclick='doSearch'>Search</button>
-</div>
-
-<div style='width:100%; ' id='acq-findbib-container'>
-    <div id='acq-findbib-template' style='border-bottom:1px solid #333; padding:10px;'>
-        <div style='font-weight:bold;'>
-            <div type='opac/slot-data' query='datafield[tag=245]'>
-                <script type='opac/slot-format'>return iterateSubfields(item)</script>
-            </div>
-        </div>
-        <div style='margin-left:20px;'>
-            <div>
-                <div type='opac/slot-data' query='datafield[tag=100]'>
-                    <script type='opac/slot-format'>return iterateSubfields(item)</script>
-                </div>
-            </div>
-            <div>
-                <span><a name='view-marc' href='javascript:void(0);'>View MARC</a></span>
-                <span><a name='select-rec' href='javascript:void(0);'>Select</a></span>
-                <span type='opac/slot-data' query='datafield[tag=020]'>
-                    <script type='opac/slot-format'>return iterateSubfields(item)</script>
-                </span> 
-                <span type='opac/slot-data' query='datafield[tag=024]'>
-                    <script type='opac/slot-format'>return iterateSubfields(item)</script>
-                </span> 
-                <span type='opac/slot-data' query='datafield[tag=022]'>
-                    <script type='opac/slot-format'>return iterateSubfields(item)</script>
-                </span>
-                <span type='opac/slot-data' query='datafield[tag=260] subfield[code=c]'></span>
-            </div>
-        </div>
-    </div>
-</div>
-
-<style>
-    #marc-div {
-        position: fixed;
-        top:100px;
-        right:10px;
-        left:200px;
-        bottom:100px;
-        border: 3px solid #333;
-        -moz-border-radius: 5px;
-        padding: 30px;
-        text-align:center;
-        background: #FFF;
-        overflow: auto;
-    }
-</style>
-
-<div id='marc-div' class='hidden'>
-    <button dojoType='dijit.form.Button' onclick='openils.Util.hide("marc-div");'>Hide</button>
-    <div style='text-align:left;'>
-        <div id='marc-html-div'/>
-    </div>
-</div>
-<div jsId='progressDialog' dojoType='openils.widget.ProgressDialog' message='Searching....'/>
-
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/findbib.js"></script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/lineitem/history.tt2 b/Open-ILS/src/templates/default/acq/lineitem/history.tt2
deleted file mode 100644 (file)
index 4a363df..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "Lineitem History" %]
-<h1>Lineitem History</h1>
-<br/>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="lhGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            defaultCellWidth="'auto'"
-            fieldOrder="['audit_time', 'state', 'picklist', 'purchase_order', 'provider', 'estimated_unit_price', 'claim_policy', 'create_time', 'edit_time', 'creator', 'editor', 'selector']"
-            query="{audit_id: '*'}"
-            suppressFields='["id", "audit_id", "marc", "audit_action"]'
-            fmClass='acqlih'
-            editOnEnter='true'
-            editReadOnly='true'
-            showPaginator='true'>
-    </table>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    var liId = "[% ctx.page_args.0 %]";
-    openils.Util.addOnLoad(
-        function() {
-            lhGrid.loadAll({order_by : {acqlih :  'audit_time DESC'}}, {id : liId});
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/lineitem/related.tt2 b/Open-ILS/src/templates/default/acq/lineitem/related.tt2
deleted file mode 100644 (file)
index 61ee19f..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "Related Lineitems" %]
-<script type="text/javascript">var targetId = "[% ctx.page_args.0 %]";</script>
-<h1>Related Lineitems</h1>
-<div id="acq-related-mini">
-    <script type="text/javascript">
-        function iterateSubfields(item) {
-            var out = '';
-            dojo.query('subfield', item).forEach(
-                function(item) { out += item.textContent + ' '; } );
-            return out;
-        }
-    </script>
-    <ul id="acq-related-mini-display">
-        <li>
-            <div type='opac/slot-data' query='datafield[tag=245]'>
-                <script type='opac/slot-format'>return iterateSubfields(item)</script>
-            </div>
-        </li>
-        <li>
-            <div type='opac/slot-data' query='datafield[tag=100] subfield[code=a]'/>
-        </li>
-        <li>
-            <div type='opac/slot-data' query='datafield[tag=020]'>
-                <script type='opac/slot-format'>return iterateSubfields(item)</script>
-            </div> 
-            <div type='opac/slot-data' query='datafield[tag=024]'>
-                <script type='opac/slot-format'>return iterateSubfields(item)</script>
-            </div> 
-            <div type='opac/slot-data' query='datafield[tag=022]'>
-                <script type='opac/slot-format'>return iterateSubfields(item)</script>
-            </div>
-        </li>
-        <li>
-            <div type='opac/slot-data' query='datafield[tag=260] subfield[code=c]'/>
-        </li>
-    </ul>
-
-    <div id="acq-related-li-create-holder">
-        <button jsId="addToPlButton" dojoType="dijit.form.Button">
-            Add to Selection List
-        </button>
-        <button jsId="addToPoButton" dojoType="dijit.form.Button">
-            Add to Purchase Order
-        </button>
-        <button jsId="createPoButton" dojoType="dijit.form.Button">
-            Create Purchase Order
-        </button>
-    </div>
-
-    <div class="hidden">
-        <div dojoType="dijit.Dialog" jsId='addToPoDialog'>
-            <table class='dijitTooltipTable'>
-                <tr>
-                    <td><label>Enter the PO #: </label></td>
-                    <td><input jsId='addToPoInput' dojoType="dijit.form.TextBox" /></td>
-                </tr>
-                <tr>
-                    <td colspan='2' align='center'>
-                        <button dojoType='dijit.form.Button' jsId='addToPoSave' type="submit">Save</button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-
-</div>
-[% INCLUDE "default/acq/common/info.tt2" which = "Related" %]
-[% INCLUDE "default/acq/common/li_table.tt2" %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/related.js"></script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/lineitem/search.tt2 b/Open-ILS/src/templates/default/acq/lineitem/search.tt2
deleted file mode 100644 (file)
index f2cf8ad..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-[% ctx.page_title = 'Lineitem Search' %]
-<!-- later: "[% ctx.page_args.0 %]" -->
-<div id="oils-acq-li-search-form-holder" class="hidden">
-    <h1 class="oils-acq-li-search">Lineitem Search</h1>
-    <form dojoType="dijit.form.Form" action="" method=""
-        id="oils-acq-li-search-form" jsId="searchForm">
-        <script type="dojo/method" event="onSubmit">
-            doSearch(this.getValues());
-            return false; /* no redirect */
-        </script>
-
-        <div class="oils-acq-li-search-form-row">
-            <label class="oils-acq-li-search" for="state_selector">
-                Lineitem state
-            </label>
-            <input class="oils-acq-li-search" name="state"
-                dojoType="dijit.form.FilteringSelect" required="false"
-                id="state_selector" jsId="stateSelector"
-                labelAttr="description" searchAttr="description"
-                />
-            <label class="oils-acq-li-search" for="agency_selector">
-                PO ordering agency
-            </label>
-            <input class="oils-acq-li-search" id="agency_selector" />
-        </div>
-        <div class="oils-acq-li-search-form-row">
-            <input class="oils-acq-li-search" dojoType="dijit.form.RadioButton"
-                name="attr_search_type" jsId="attrSearchTypeNone"
-                id="attr_search_type_none" value="none" checked="checked"
-                onChange="toggleAttrSearchType(this.value, this.checked);" />
-            <label for="attr_search_type_none" class="oils-acq-li-search">
-                No further attributes to search by
-            </label>
-        </div>
-        <div class="oils-acq-li-search-form-row">
-            <!-- the "style" attribute on this input seems to be necessary as
-                I can't get the same effect from CSS for some reason -->
-            <input class="oils-acq-li-search" dojoType="dijit.form.RadioButton"
-                name="attr_search_type" jsId="attrSearchTypeScalar"
-                id="attr_search_type_scalar" value="scalar"
-                style="vertical-align: top;"
-                onChange="toggleAttrSearchType(this.value, this.checked);" />
-            <label for="attr_search_type_scalar" class="oils-acq-li-search">
-                Search by attribute values
-            </label>
-            <div id="oils-acq-li-search-attr-scalar" class="hidden">
-<!--            <div class="oils-acq-li-search-conjunction">
-                    <em>Show results for which:</em><br />
-                    <input dojoType="dijit.form.RadioButton"
-                        id="scalar_search_conjuction_or"
-                        name="scalar_search_conjunction" value="or"
-                        checked="checked" class="oils-acq-li-search" />
-                    <label for="scalar_search_conjuction_or"
-                        class="oils-acq-li-search">ANY of the following terms match</label>
-                    <br />
-                    <input dojoType="dijit.form.RadioButton"
-                        id="scalar_search_conjuction_and"
-                        name="scalar_search_conjunction" value="and"
-                        class="oils-acq-li-search" />
-                    <label for="scalar_search_conjuction_and"
-                        class="oils-acq-li-search">ALL of the following terms match</label>
-                </div> -->
-                <div class="oils-acq-li-search-scalar hidden"
-                    id="oils-acq-li-search-scalar-template">
-                    <input class="oils-acq-li-search" name="def" />
-                    <input class="oils-acq-li-search" name="value" />
-                    <a class="oils-acq-li-search" title="Remove this row"
-                        href="javascript:void(0);" />(X)</a>
-                </div>
-                <div id="oils-acq-li-search-scalar-adder">
-                    <span dojoType="dijit.form.Button"
-                        class="oils-acq-li-search"
-                        onclick="scalarAttrSearchManager.add();">
-                        Add more search terms
-                    </span>
-                    <span dojoType="dijit.form.Button"
-                        class="oils-acq-li-search"
-                        onclick="scalarAttrSearchManager.newBrief();">
-                        New brief record like this
-                    </span>
-                </div>
-            </div>
-        </div>
-        <div class="oils-acq-li-search-form-row">
-            <input class="oils-acq-li-search" dojoType="dijit.form.RadioButton"
-                name="attr_search_type" jsId="attrSearchTypeArray"
-                id="attr_search_type_array" value="array"
-                onChange="toggleAttrSearchType(this.value, this.checked);" />
-            <label for="attr_search_type_array" class="oils-acq-li-search">
-                Provide a file of search terms
-            </label>
-            <div id="oils-acq-li-search-attr-array" class="hidden">
-                <input class="oils-acq-li-search"
-                    name="array_def" dojoType="dijit.form.FilteringSelect"
-                    jsId="attrArrayDefSelector"
-                    labelAttr="description" searchAttr="description" />
-                <span class="oils-acq-li-search">
-                    <span id="records-up">0</span> term(s) prepared for search
-                </span>
-                <span class="oils-acq-li-search" dojoType="dijit.form.Button"
-                    onClick="loadTermsFromFile();">Add file</span>
-                <span class="oils-acq-li-search" dojoType="dijit.form.Button"
-                    onClick="clearTerms();">Clear loaded search terms</span>
-            </div>
-        </div>
-        <div class="oils-acq-li-search-form-row"
-            id="oils-acq-li-search-attr-submit">
-            <span dojoType="dijit.form.Button" type="submit">Search</span>
-        </div>
-    </form>
-</div>
-[% INCLUDE 'default/acq/common/li_table.tt2' %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/search.js"></script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/lineitem/worksheet.tt2 b/Open-ILS/src/templates/default/acq/lineitem/worksheet.tt2
deleted file mode 100644 (file)
index 1882237..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "Lineitem Worksheet" %]
-<script type="text/javascript">var liId = "[% ctx.page_args.0 %]";</script>
-<h1>Lineitem Worksheet</h1>
-<br/>
-<div id="acq-worksheet-contents"></div>
-<div class='hidden'>
-    <div jsId='progressDialog' dojoType='openils.widget.ProgressDialog' message='Loading Worksheet...'/>
-</div>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/worksheet.js"></script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/picklist/bib_search.tt2 b/Open-ILS/src/templates/default/acq/picklist/bib_search.tt2
deleted file mode 100644 (file)
index f80d978..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-<style type="text/css">
-    @import "[% ctx.media_prefix %]/js/dojo/dojox/form/resources/CheckedMultiSelect.css";
-</style>
-
-<script type="text/javascript">
-    var searchOffset = 0;
-</script>
-
-<div id='oils-acq-search-block' class='container'>
-
-    <form dojoType='dijit.form.Form' action='' method=''>
-        <script type="dojo/method" event="onSubmit">
-            doSearch(this.getValues());
-            return false; /* don't redirect */
-        </script>
-        <div id='oils-acq-search-sources-block'>
-            <div id='oils-acq-search-sources-label'>Search Sources</div>
-            <select style='overflow-y:auto;' id='oils-acq-search-source-select' 
-                    multiple='true' jsId="bibSourceSelect" dojoType="dojox.form.CheckedMultiSelect">
-                <option selected='selected' value='native-evergreen-catalog'>Evergreen Catalog</option>
-            </select>
-        </div>
-        <div id='oils-acq-search-form-block'>
-            <div id='oils-acq-search-fields-label'>Search Fields</div>
-            <div id='oils-acq-search-fields'>
-            </div>
-            <table>
-                <tbody id='oils-acq-search-fields-tbody'>
-                    <tr id='oils-acq-search-fields-template'>
-                        <td name='label'> </td>
-                        <td name='input'> </td>
-                    </tr>
-                    <tr id='oils-acq-seach-fields-count-row'>
-                        <td name='label'>Hits Per Source</td>
-                        <td><input name='limit'
-                            dojoType='dijit.form.NumberSpinner'
-                            constraints='{min:5,max:50}'
-                            value='10'></input>
-                        </td>
-                    </tr>
-                    <tr id='oils-acq-search-fields-submit-block'>
-                        <td><div dojoType='dijit.form.Button' type='submit'>Submit</div></td>
-                        <td><div dojoType='dijit.form.Button' onclick='clearSearchForm()'>Clear Form</div></td>
-                    </tr>
-                </tbody>
-            </table>
-        </div>
-    </form>
-</div>
-
-<div id='oils-acq-pl-search-results'>
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Search Results</div>
-        <div>
-            <div id='oils-acq-update-li-progress' class='hidden'>
-                <div dojoType="dijit.ProgressBar" style="width:300px" jsId="liUpdateProgress"></div>
-            </div>
-            <div dojoType='dijit.form.Button' onClick='showDiv("oils-acq-search-block");'>New Search</div>
-        </div>
-    </div>
-    <div dojoType='dijit.layout.ContentPane' layoutAlign='client'>
-        [% INCLUDE 'default/acq/common/li_table.tt2' %]
-    </div>
-</div>
-
-<div id='oils-acq-pl-loading' style='width:100%;margin-top:100px;display:none;text-align:center'>
-    <img src='[% ctx.media_prefix %]/opac/images/progressbar_green.gif'/>
-</div>
-
-<script type="text/javascript">dojo.style('oils-acq-pl-search-results', 'display', 'none');</script>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/bib_search.js'></script>
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/acq/picklist/brief_record.tt2 b/Open-ILS/src/templates/default/acq/picklist/brief_record.tt2
deleted file mode 100644 (file)
index 4f8156b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-<h1>New Brief Record</h1><br/>
-<form dojoType='dijit.form.Form'>
-    <script type='dojo/method' event='onSubmit'>
-        return saveBriefRecord(this.getValues());
-    </script>
-    <table class='oils-generic-table'>
-        <tbody id='acq-brief-record-tbody'>
-            <tr id='acq-brief-record-pl-row'>
-                <td>Add To Selection List</td>
-                <td><select dojoType='dijit.form.ComboBox' jsId='plSelector'/></td>
-            </tr>
-            <tr id='acq-brief-record-po-row'>
-                <td>Adding to Purchase Order</td>
-                <td><input dojoType='dijit.form.TextBox' jsId='poNumber' disabled='disabled'/></td>
-            </tr>
-            <tr id='acq-brief-record-row'>
-                <td><div name='name'/></td>
-                <td><div name='widget'/></td>
-            </tr>
-        </tbody>
-        <tbody>
-            <tr>
-                <td><button dojoType='dijit.form.Button' type='submit'>Save Record</button></td>
-                <!--
-                <td><button dojoType='dijit.form.Button' type='submit' jsId='marcEditButton'>Edit MARC</button></td>
-                -->
-            </tr>
-        </tbody>
-    </table>
-</form>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/brief_record.js'> </script>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/picklist/from_bib.tt2 b/Open-ILS/src/templates/default/acq/picklist/from_bib.tt2
deleted file mode 100644 (file)
index 0a422ec..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "Items by Bibliographic ID" %]
-<div id="acq-frombib-upload-box">
-    <div class="oils-acq-basic-roomy">
-        Provide one or more CSV files whose first columns
-        contain Evergreen bibliographic record IDs.
-    </div>
-    <div class="oils-acq-basic-roomy">
-        <span id="acq-frombib-upload"></span>
-    </div>
-    <div id="acq-frombib-begin-holder" class="oils-acq-basic-roomy hidden">
-        <button id="acq-frombib-begin" onclick="beginSearch();">
-            Retrieve records
-        </button>
-    </div>
-</div>
-<div id="acq-frombib-reload-box" class="oils-acq-basic-roomy hidden">
-    <button onclick="location.href=location.href;">Begin a new search</button>
-</div>
-<hr />
-[% INCLUDE "default/acq/common/li_table_pager.tt2" %]
-[% INCLUDE "default/acq/common/li_table.tt2" %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/picklist/from_bib.js"> </script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/picklist/list.tt2 b/Open-ILS/src/templates/default/acq/picklist/list.tt2
deleted file mode 100644 (file)
index 217cbb6..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-[% ctx.page_title = 'Selection Lists' %]
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div id='oils-acq-list-header' class='container'>
-        <div id='oils-acq-picklist-my-list-header'>
-            <div id='oils-acq-list-header-label'>My Selection Lists</div>
-        </div>
-    </div>
-</div>
-
-<div class='oils-acq-actions-div' dojoType="dijit.layout.ContentPane" layoutAlign="client">
-
-    <div dojoType="dijit.form.DropDownButton">
-        <span>New Selection List</span>
-        <div dojoType="dijit.TooltipDialog" execute="createPL(arguments[0]);">
-            <table class='dijitTooltipTable'>
-                <tr>
-                    <td><label for="name">Name:</label></td>
-                    <td><input dojoType="dijit.form.TextBox" name="name"/></td>
-                </tr>
-                <tr>
-                    <td colspan='2' align='center'>
-                        <button dojoType='dijit.form.Button' type="submit">Create</button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.form.DropDownButton">
-        <span>Clone Selected</span>
-        <div dojoType="dijit.TooltipDialog" execute="cloneSelectedPl(arguments[0]);">
-            <table class='dijitTooltipTable'>
-                <tr>
-                    <td><label for="name">New Name:</label></td>
-                    <td><input dojoType="dijit.form.TextBox" name="name"/></td>
-                </tr>
-                <tr>
-                    <td colspan='2' align='center'>
-                        <button dojoType='dijit.form.Button' type="submit">Clone</button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.form.DropDownButton">
-        <span>Merge Selected</span>
-        <div dojoType="dijit.TooltipDialog" execute="mergeSelectedPl(arguments[0]);" jsId='plMergeDialog'>
-            <table class='dijitTooltipTable'>
-                <tr>
-                    <td><label for="name">Choose the Lead Selection List:</label></td>
-                    <td><input jsId='plMergeLeadSelector' dojoType="dijit.form.FilteringSelect" name="lead"/></td>
-                </tr>
-                <tr>
-                    <td colspan='2' align='center'>
-                        <button dojoType='dijit.form.Button' type="submit">Merge</button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-    <button dojoType="dijit.form.Button" onclick="deleteFromGrid();">Delete Selected</button>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table 
-            autoHeight='true'
-            jsId="plListGrid" 
-            dojoType="openils.widget.AutoGrid" 
-            query="{id: '*'}" 
-            fieldOrder="['name', 'owner', 'entry_count', 'create_time', 'edit_time']"
-            suppressFields="['editor', 'creator']"
-            query="{id: '*'}"
-            defaultCellWidth='"auto"'
-            fmClass='acqpl'
-            showPaginator='true'
-            editOnEnter='true'>
-        <thead>
-            <tr>
-                <th field="name" formatter='formatName'/>
-                <th field="owner" get='getOwnerName'/>
-                <th field="entry_count">Entry Count</th>
-            </tr>
-        </thead>
-    </table>
-    <div class='hidden'>
-        <div jsId='progressDialog' dojoType='openils.widget.ProgressDialog'/>
-    </div>
-</div>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/view_list.js'></script>
-
-<script type="text/javascript">
-    function formatName(inDatum) {
-        for(var i in plCache){
-            var pl = plCache[i];
-            var id = pl.id();
-            if (inDatum  == pl.name()){
-                return '<a href="[% ctx.base_path %]/acq/picklist/view/'+id+'">'+inDatum+'</a>';
-            }
-        }
-    }
-</script>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/picklist/upload.tt2 b/Open-ILS/src/templates/default/acq/picklist/upload.tt2
deleted file mode 100644 (file)
index b05ddc0..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-
-<h1>Upload</h1><br/>
-<form id="acq-pl-upload-form" enctype="multipart/form-data">
-    <input type='hidden' name='ses' id='acq-pl-upload-ses'/>
-    <table class='oils-generic-table'>
-        <tbody>
-            <tr>
-                <td>Create Purchase Order</td>
-                <td>
-                    <input dojoType='dijit.form.CheckBox' name='create_po'></input>
-                </td>
-            </tr>
-            <tr>
-                <td>Activate Purchase Order</td>
-                <td>
-                    <input dojoType='dijit.form.CheckBox' name='activate_po'></input>
-                </td>
-            </tr>
-            <tr>
-                <!-- XXX CHECK IMPORT PERMS TO ENABLE -->
-                <td>Load Bibs and Items into the ILS</td>
-                <td>
-                    <input dojoType='dijit.form.CheckBox' name='create_assets'></input>
-                </td>
-            </tr>
-            <tr>
-                <td>Provider</td>
-                <td><div id='acq-pl-upload-provider'></div></td>
-            </tr>
-            <tr id='acq-pl-upload-agency-row'>
-                <td>Context Org Unit</td>
-                <td><div id='acq-pl-upload-agency'></div></td>
-            </tr>
-            <tr id='acq-pl-upload-picklist'>
-                <td>Add to Selection List</td>
-                <td>
-                    <select jsId='acqPlUploadPlSelector' dojoType='dijit.form.ComboBox'></select>
-                </td>
-            </tr>
-            <tr>
-                <td>Records File</td>
-                <td><input size='36' type="file" name="marc_upload"></input></td>
-            </tr>
-            <tr>
-                <td align='center' colspan='2'>
-                    <button dojoType="dijit.form.Button" onClick="acqUploadRecords()">Upload</button>
-                </td>
-            </tr>
-        </tbody>
-    </table>
-
-    <br/>
-    <br/>
-    <div id="acq-pl-upload-progress" class='hidden'>
-        <div id='acq-pl-upload-progress-bar'>
-            <div dojoType="dijit.ProgressBar" style="width:300px" indeterminate="true"></div>
-        </div>
-        <div>
-            <table class='oils-generic-table'>
-                <tbody>
-                    <tr>
-                        <td>Lineitems Processed</td>
-                        <td><span id='acq-pl-upload-li-processed'>0</span></td>
-                    </tr>
-                    <tr>
-                        <td>Items Processed</td>
-                        <td><span id='acq-pl-upload-lid-processed'>0</span></td>
-                    </tr>
-                    <tr>
-                        <td>Debits Encumbered</td>
-                        <td><span id='acq-pl-upload-debits-processed'>0</span></td>
-                    </tr>
-                    <tr>
-                        <td>Bib Records Imported</td>
-                        <td><span id='acq-pl-upload-bibs-processed'>0</span></td>
-                    </tr>
-                    <tr>
-                        <td>Bib Records Indexed</td>
-                        <td><span id='acq-pl-upload-indexed-processed'>0</span></td>
-                    </tr>
-                    <tr>
-                        <td>Copies Created</td>
-                        <td><span id='acq-pl-upload-copies-processed'>0</span></td>
-                    </tr>
-                </tbody>
-                <tbody id='acq-pl-upload-complete' class='hidden'>
-                    <tr><td colspan='2'>Upload Complete!</td></tr>
-                    <tr><td colspan='2'><a id='acq-pl-upload-complete-po'>View Purchase Order</a></td></tr>
-                    <tr><td colspan='2'><a id='acq-pl-upload-complete-pl'>View Selection List</a></td></tr>
-                </tbody>
-            </table>
-        </div>
-    </div>
-</form>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/upload.js'> </script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/picklist/user_request.tt2 b/Open-ILS/src/templates/default/acq/picklist/user_request.tt2
deleted file mode 100644 (file)
index 02e3683..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-[% ctx.page_title = 'Patron Requests' %]
-<script type="text/javascript">var reqId = '[% ctx.page_args.0 %]';</script>
-
-    <div dojoType="dijit.layout.StackContainer" id="stackContainer" doLayout="false">
-        <!-- *** List View ********************************************************************************* -->
-        <div dojoType="dijit.layout.ContentPane">
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-                <div>[% ctx.page_title %]</div>
-            </div>
-            <div>
-                <span>Context Org Unit</span>
-                <select 
-                    dojoType="openils.widget.OrgUnitFilteringSelect" 
-                    jsId='contextOrgSelector'
-                    searchAttr='shortname' 
-                    labelAttr='shortname'> 
-                </select>
-            </div>
-            <table  jsId="rGrid"
-                    dojoType="openils.widget.AutoGrid"
-                    query="{id: '*'}"
-                    suppressFields='["id", "usr", "pickup_lib", "holdable_formats", "phone_notify", "email_notify", "lineitem", "eg_bib", "max_fee", "cancel_reason"]'
-                    fieldOrder='["title", "author", "isxn", "article_title", "article_pages", "request_type", "volume", "pubdate", "publisher", "location", "other_info", "mentioned"]'
-                    fmClass='aur'
-                    editStyle='pane'
-                    autoHeight='true'
-                    defaultCellWidth='"auto"'
-                    suppressFields="['id']"
-                    showPaginator='true'
-                    showColumnPicker='true'
-                    columnPickerPrefix='"acq.picklist.user_request"'>
-                    <thead>
-                        <tr>
-                            <th field='title' get='getTitle' formatter='formatTitle'/>
-                        </tr>
-                    </thead>
-            </table>
-        </div>
-        <!-- *** Detail View ********************************************************************************* -->
-        <div dojoType="dijit.layout.ContentPane" style="height: 100%;">
-            <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-                <div>Patron Request</div>
-                <div>
-                    <button dojoType="dijit.form.Button" onClick="location.href=oilsBasePath+'/acq/picklist/user_request'">[% ctx.page_title %]</button>
-                    <button dojoType="dijit.form.Button" onClick="fooPicklist()"><span id="add_to_picklist">Add to Selection List</span><span id="view_picklist">View Selection List</span></button>
-                    <button dojoType="dijit.form.Button" onClick="setNoHold()">Set No Hold</button>
-                    <span dojoType="dijit.form.DropDownButton">
-                        <span>Cancel Request</span>
-                        <span dojoType="dijit.TooltipDialog">
-                            <label for="acq-ur-cancel-reason">
-                                Reason:
-                            </label>
-                            <span id="acq-ur-cancel-reason"></span>
-                            <button jsId="acqUrCancelReasonSubmit"
-                                dojoType="dijit.form.Button"
-                                type="submit">Cancel Request</button>
-                        </span>
-                    </span>
-                </div>
-            </div>
-            <div id="detail_content_pane" />
-        </div>
-    </div>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/user_request.js'></script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/picklist/view.tt2 b/Open-ILS/src/templates/default/acq/picklist/view.tt2
deleted file mode 100644 (file)
index dcb693d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-[% ctx.page_title = 'Selection List' %]
-<div dojoType="dijit.layout.ContentPane" style="height:100%">
-    <div class='container'>
-        <div id='oils-acq-picklist-header'>
-            Selection list <span id='oils-acq-picklist-name'> </span>
-            <div class='oils-acq-picklist-attributes'>
-                <div>Create date: <span id="oils-acq-picklist-attr-cdate"></span></div>
-                <div>Last updated: <span id="oils-acq-picklist-attr-edate"></span></div>
-                <div>Selector: <span id="oils-acq-picklist-attr-owner"></span></div>
-                <div>Entry Count: <span id="oils-acq-picklist-attr-count"></span></div>
-            </div>
-        </div>
-    </div>
-    <script type="text/javascript">var plId = '[% ctx.page_args.0 %]';</script>
-    [% INCLUDE 'default/acq/common/li_table.tt2' %]
-</div>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/picklist/view.js'></script>
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/acq/po/create.tt2 b/Open-ILS/src/templates/default/acq/po/create.tt2
deleted file mode 100644 (file)
index 5dde850..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "Create Purchase Order" %]
-<h1>Create Purchase Order</h1>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/po/create.js"> </script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/po/edi_messages.tt2 b/Open-ILS/src/templates/default/acq/po/edi_messages.tt2
deleted file mode 100644 (file)
index 76c2101..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "EDI Messages" %]
-[% IF ctx.page_args.0 %]
-<h1>EDI Messages (Purchase Order [% ctx.page_args.0 %])</h1>
-[% ELSE %]
-<h1>EDI Messages</h1>
-[% END  %]
-<br/>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="edimGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            defaultCellWidth="'auto'"
-            query="{id: '*'}"
-            [% IF ctx.page_args.0 %]
-            fieldOrder="['message_type', 'status', 'create_time', 'translate_time', 'process_time', 'error_time', 'error', 'account', 'remote_file']"
-            suppressFields="['id', 'edi', 'jedi', 'purchase_order']"
-            [% ELSE %]
-            fieldOrder="['purchase_order', 'message_type', 'status', 'create_time', 'translate_time', 'process_time', 'error_time', 'error', 'account', 'remote_file']"
-            suppressFields="['id', 'edi', 'jedi']"
-            [% END  %]
-            editStyle='pane'
-            fmClass='acqedim'
-            editOnEnter='true'
-            editReadOnly='true'
-            showPaginator='true'>
-    </table>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    dojo.require('openils.widget.Textarea');
-
-    var poId = "[% ctx.page_args.0 %]";
-    openils.Util.addOnLoad(
-        function() {
-            if (poId) {
-                edimGrid.loadAll({order_by : {acqedim :  'create_time DESC'}}, {purchase_order : poId});
-            } else  {
-                edimGrid.loadAll({order_by : {acqedim :  'create_time DESC'}});
-            }
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/po/events.tt2 b/Open-ILS/src/templates/default/acq/po/events.tt2
deleted file mode 100644 (file)
index a06fc89..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-
-<!-- grid -->
-
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-            <div>PO Triggered Events</div>
-            <div>
-                <button dojoType="dijit.form.Button" onClick="eventGrid.cancelSelected()">Cancel Selected</button>
-                <button dojoType="dijit.form.Button" onClick="eventGrid.resetSelected()">Reset Selected</button>
-            </div>
-        </div>
-        <div class="oils-acq-basic-form-div">
-            <span>
-                <label for="state">State</label>
-                <select name="state"
-                    dojoType="dijit.form.FilteringSelect"
-                    jsId="eventStateSelect"
-                    searchAttr="name"
-                    labelAttr="name"></select>
-            </span>
-            <span>
-                <label for="orgUnit">Context Org Unit</label>
-                <select name="orgUnit" 
-                    dojoType="openils.widget.OrgUnitFilteringSelect" 
-                    jsId="eventContextOrgSelect"
-                    searchAttr="shortname" 
-                    labelAttr="shortname"></select>
-            </span>
-            <span>
-                <label for="startDate">Start Date Range</label>
-                <input name="startDate"
-                    type="text"
-                    dojoType="dijit.form.DateTextBox"
-                    jsId="eventStartDatePicker" />
-            </span>
-            <span>
-                <label for="endDate">End Date Range</label>
-                <input name="endDate"
-                    type="text"
-                    dojoType="dijit.form.DateTextBox"
-                    jsId="eventEndDatePicker" />
-            </span>
-            <button dojoType="dijit.form.Button" onClick="eventGrid.doSearch()">Search</button>
-        </div>
-        <table  jsId="eventGrid"
-                dojoType="openils.widget.AutoGrid"
-                query="{id: '*'}"
-                fmClass="atev"
-                suppressFields="['update_process','user_data','template_output','error_output','async_output','event_def']"
-                defaultCellWidth="'auto'"
-                editOnEnter="false">
-            <thead>
-                <tr>
-                    <th field="target" formatter="format_po_link">Purchase Order</th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-</div>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/po/events.js"> </script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/acq/po/history.tt2 b/Open-ILS/src/templates/default/acq/po/history.tt2
deleted file mode 100644 (file)
index 2b3c5d0..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "PO History" %]
-<h1>Purchase Order History</h1>
-<br/>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="pohGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            defaultCellWidth="'auto'"
-            fieldOrder="['audit_time', 'name', 'state', 'ordering_agency', 'provider', 'create_time', 'edit_time', 'order_date', 'creator', 'editor', 'owner']"
-            query="{audit_id: '*'}"
-            suppressFields='["id", "audit_id", "audit_action"]'
-            fmClass='acqpoh'
-            editOnEnter='true'
-            editReadOnly='true'
-            showPaginator='true'>
-    </table>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    var poId = "[% ctx.page_args.0 %]";
-    openils.Util.addOnLoad(
-        function() {
-            pohGrid.loadAll({order_by : {acqpoh :  'audit_time DESC'}}, {id : poId});
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/po/item_table.tt2 b/Open-ILS/src/templates/default/acq/po/item_table.tt2
deleted file mode 100644 (file)
index 1948b6d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<div id="acq-po-item-table" class="hidden">
-    <h3>Direct Charges, Taxes, Fees, etc.</h3>
-    <table>
-        <thead id="acq-po-item-table-headings">
-            <tr>
-                <th>Charge Type</th>
-                <th>Fund</th>
-                <th>Title/Description</th>
-                <th>Author</th>
-                <th>Note</th>
-                <th>Estimated Cost</th>
-                <th><!-- Delete --></th>
-            </tr>
-        </thead>
-        <tbody id="acq-po-item-table-items">
-            <tr>
-                <td name="inv_item_type" em="12"></td>
-                <td name="fund" em="10"></td>
-                <td name="title" em="12"></td>
-                <td name="author" em="8"></td>
-                <td name="note" em="12"></td>
-                <td name="estimated_cost" em="8"></td>
-                <td><button name="delete">X</button></td>
-            </tr>
-        </tbody>
-    </table>
-    <div id="acq-po-item-table-i-am-empty" class="hidden">
-        <em>There are no miscellanea attached to this purchase order.</em>
-    </div>
-    <div id="acq-po-item-table-controls">
-        <button id="acq-po-item-table-new-charge">New Charge</button> &nbsp;
-        <button id="acq-po-item-table-save-new">Save New Charges</button>
-    </div>
-</div>
diff --git a/Open-ILS/src/templates/default/acq/po/search.tt2 b/Open-ILS/src/templates/default/acq/po/search.tt2
deleted file mode 100644 (file)
index de8bd1d..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Purchase Orders' %]
-<script type="text/javascript">
-    var poIds = function(s) {
-        return s == "" ? undefined :
-            s.split(",").map(function(t) { return Number(t); });
-    }("[% ctx.page_args.0 %]");
-</script>
-<div id='oils-acq-list-header' class='container'>
-    <div id='oils-acq-list-header-label'>PO Search</div>
-</div>
-
-<div id="oils-acq-po-heading-template" class="hidden">
-    <span>Purchase Order: <a attr="name"></a></span>
-    <span>Total Lineitems: <span attr="lineitem_count"></span></span>
-    <span>Total Encumbered: $<span attr="amount_encumbered"></span></span>
-    <span>Total Spent: $<span attr="amount_spent"></span></span>
-    <span>Total Copies: <span attr="copies"></span></span>
-    <span>Status: <span attr="state"></span></span>
-    <span><a class="hidden" attr="activator" href="javascript:void(0);">Activate Order</a></span>
-</div>
-
-<script type="text/javascript">
-    function formatId(id) {
-        if(id) return '<a href="[% ctx.base_path %]/acq/po/view/' + id + '">'+id;
-    }
-</script>
-
-
-<form dojoType='dijit.form.Form' action='' method='' id='oils-acq-po-search-form'>
-
-    <script type="dojo/method" event="onSubmit">
-        doSearch(this.getValues());
-        return false; /* don't redirect */
-    </script>
-
-    <div class='oils-acq-basic-form-div'>
-
-        <label for='id'>ID</label>
-        <input dojoType='dijit.form.NumberTextBox' name='id'> </input>
-
-        <label for='provider'>Provider</label>
-        <input id='po-search-provider-selector'/>
-
-        <label for='state'>State</label></td>
-        <script type="text/javascript">
-            dojo.require('dojo.data.ItemFileReadStore');
-            var stateStore = new dojo.data.ItemFileReadStore({
-                data : {
-                    identifier:"value",
-                    label: "name",
-                    items: [
-                        /* FIXME This is probably not the correct final list of 
-                        possible states */
-                        {name:"New", value:'new'},
-                        {name:"In Process", value:'in-process'},
-                        {name:"Pending", value:'pending'},
-                        {name:"On order", value:'on-order'}
-                    ]
-                }
-            });
-        </script>
-        <input dojoType='dijit.form.FilteringSelect' 
-            name='state' 
-            required='false' 
-            store='stateStore' 
-            labelAttr='name' 
-            valueAttr='value' 
-            searchAttr='name'/>
-
-        <label for='ordering_agency'>Ordering Agency</label>
-        <input id='po-search-agency-selector'/>
-
-        <span dojoType='dijit.form.Button' type='submit'>Search</span>
-    </div>
-    <div class="oils-acq-basic-form-div">
-        <input dojoType="dijit.form.CheckBox" value="1" name="metapo_view"
-            id="metapo_view" type="checkbox" />
-        <label for="metapo_view">Show results as a virtual combined PO</label>
-    </div>
-</form>
-<br/>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" id="holds_po_grid">
-    <table 
-            id="po-grid" 
-            autoHeight='true'
-            jsId="poGrid" 
-            dojoType="openils.widget.AutoGrid" 
-            query="{id: '*'}" 
-            fieldOrder="['id', 'owner', 'ordering_agency', 'provider', 'create_time', 'edit_time', 'state']"
-            suppressFields="['owner', 'editor', 'creator']"
-            query="{id: '*'}"
-            defaultCellWidth='"auto"'
-            showSequenceFields='true'
-            showPaginator='true'
-            fmClass='acqpo'> 
-        <thead> 
-            <tr> 
-                <th field="id" formatter='formatId'>ID</th> 
-                <!--
-                <th field="owner" get='getPOOwner'/>
-                -->
-            </tr> 
-        </thead> 
-    </table>     
-    <div comment='dojo-needs-me'></div>
-</div>
-<div id="oils-acq-holds-metapo-summary" class="hidden">
-    <table id="oils-acq-metapo-summary">
-        <thead>
-            <tr>
-                <th colspan="2">Results Summary</th>
-            </tr>
-        </thead>
-        <tbody>
-            <tr>
-                <th>Total Purchase Orders:</th>
-                <td id="oils-acq-metapo-summary-po"></td>
-            </tr>
-            <tr>
-                <th>Total Lineitems:</th>
-                <td id="oils-acq-metapo-summary-lineitem_count"></td>
-            </tr>
-            <tr>
-                <th>Total Copies:</th>
-                <td id="oils-acq-metapo-summary-copies"></td>
-            </tr>
-            <tr>
-                <th>Total Encumbered:</th>
-                <td>$<span id="oils-acq-metapo-summary-amount_encumbered"></span></td>
-            </tr>
-            <tr>
-                <th>Total Spent:</th>
-                <td>$<span id="oils-acq-metapo-summary-amount_spent"></span></td>
-            </tr>
-        </tbody>
-    </table>
-</div>
-[% INCLUDE 'default/acq/common/li_table.tt2' %]
-
-<!-- load the page-specific JS -->
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/po/search.js'> </script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/po/view.tt2 b/Open-ILS/src/templates/default/acq/po/view.tt2
deleted file mode 100644 (file)
index bfbc776..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-[% ctx.page_title = "Purchase Order" %]
-<div dojoType="dijit.layout.ContentPane" style="height:100%">
-    <div>
-        <div id='oils-acq-picklist-header'>
-            <big>
-                Purchase Order (<span id="acq-po-view-state"></span>) 
-            </big>
-            <span id='acq-po-activated-on' class='hidden'></span>
-            <table class="oils-generic-table acq-po-info">
-                <tr>
-                    <th>ID</th><td><a id="acq-po-view-id"/></td>
-                    <th>Prepayment Required?</th>
-                    <td><span id="acq-po-view-prepay"/></td>
-                </tr>
-                <tr>
-                    <th>Name</th>
-                    <td><a id="acq-po-view-name" href="javascript:void(0);"
-                        onclick="updatePoName()"></a></td>
-                    <th>Activatable?</th>
-                    <td>
-                        <span id="acq-po-activate-checking"></span>
-                        <a class="hidden" id="acq-po-activate-link" href="javascript:void(0);" onclick="activatePo()">Activate Order</a>
-                    </td>
-                </tr>
-                <tr>
-                    <th>Provider</th>
-                    <td><span id="acq-po-view-provider"/></td>
-                    <th>Notes</th>
-                    <td>
-                        <a href="javascript:void(0);"
-                            id="acq-po-view-notes"></a>
-                    </td>
-                </tr>
-                <tr>
-                    <th>Total Lineitems</th>
-                    <td><span id="acq-po-view-total-li"/></td>
-                    <th>EDI Messages</th>
-                    <td>
-                        <a href="javascript:void(0);"
-                            id="acq-po-view-edi-messages"></a>
-                    </td>
-                </tr>
-                <tr>
-                    <th>Total Estimated</th>
-                    <td>$<span id="acq-po-view-total-estimated"/></td>
-                    <th>History</th>
-                    <td>
-                        <a class="hidden" href="javascript:void(0);"
-                            id="acq-po-view-history">View</a>
-                    </td>
-                </tr>
-                <tr>
-                    <th>Total Encumbered</th>
-                    <td>$<span id="acq-po-view-total-enc"/></td>
-                    <th>Invoicing</th>
-                    <td id="acq-po-invoice-stuff" class="hidden">
-                        <button dojoType="dijit.form.Button"
-                            id="acq-po-view-invoice-link">
-                            View Invoices
-                            (<span id="acq-po-view-invoice-count"></span>)
-                        </button> &nbsp;
-                        <button dojoType="dijit.form.Button"
-                            id="acq-po-create-invoice-link">
-                            Create Invoice
-                        </button> &nbsp;
-                        <button dojoType="dijit.form.DropDownButton">
-                            <span>Link Invoice</span>
-                            <div dojoType="dijit.TooltipDialog"
-                                id="acq-po-link-invoice">
-                                <script type="dojo/connect" event="onOpen">
-                                    if (!invoiceLinkDialogManager) {
-                                        invoiceLinkDialogManager =
-                                            new InvoiceLinkDialogManager(
-                                                "po", PO
-                                            );
-                                    }
-                                </script>
-                                [% INCLUDE "default/acq/common/inv_dialog.tt2"
-                                    which = "po" %]
-                            </div>
-                        </button>
-                    </td>
-                </tr>
-                <tr>
-                    <th>Total Spent</th>
-                    <td>$<span id="acq-po-view-total-spent"/></td>
-                    <th id="acq-po-cancel-label"></th>
-                    <td>
-                        <span id="acq-po-view-cancel-reason"></span>
-                        <span id="acq-po-choose-cancel-reason" class="hidden">
-                            <span dojoType="dijit.form.DropDownButton">
-                                <span>Cancel order</span>
-                                <span dojoType="dijit.TooltipDialog">
-                                    <label for="acq-po-cancel-reason">
-                                        Reason:
-                                    </label>
-                                    <span id="acq-po-cancel-reason"></span>
-                                    <button jsId="acqPoCancelReasonSubmit"
-                                        dojoType="dijit.form.Button"
-                                        type="submit">Cancel order</button>
-                                </span>
-                            </span>
-                        </span>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan='3'>
-                        <a class="hidden" id="acq-po-split" href="javascript:void(0);"
-                            onclick="if (confirm(localeStrings.CONFIRM_SPLIT_PO)) splitPo();">
-                            Split Order by Lineitems
-                        </a>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-    <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/base64.js"></script>
-    <script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/po/view_po.js'></script>
-    <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/po/item_table.js"></script>
-    <script type="text/javascript">
-        var poId = "[% ctx.page_args.1 %]";
-        var liFocus = "[% ctx.page_args.0 %]";
-        if (liFocus && !poId) {
-            poId = liFocus;
-            liFocus = null;
-        }
-    </script>
-    [% INCLUDE 'default/acq/common/li_table.tt2' %]
-    [% INCLUDE "default/acq/common/notes.tt2" which = "Po" %]
-    <div class='hidden' id='acq-po-no-lineitems'>
-        <button type='dijit.form.Button' onclick='location.href = oilsBasePath + "/acq/picklist/brief_record?po=" + poId'>
-            Add Brief Record
-        </button>
-    </div>
-    [% INCLUDE "default/acq/po/item_table.tt2" %]
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/receiving/process.tt2 b/Open-ILS/src/templates/default/acq/receiving/process.tt2
deleted file mode 100644 (file)
index 2604d7c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-    <h1>Receiving Processing</h1><br/>
-    <div id='oils-acq-recv-search-block' class='container'>
-        <form dojoType='dijit.form.Form' action='' method=''>
-            <script type="dojo/method" event="onSubmit">
-                doSearch(this.getValues());
-                return false; /* don't redirect */
-            </script>
-            <table class='oils-acq-basic-form-table'>
-                <tr>
-                    <td><label for='identifier'>Identifier</label></td>
-                    <td>
-                        <input dojoType='dijit.form.TextBox' name='identifier'/>
-                    </td>
-                </tr>
-                <tr>
-                    <td><label for="name">Ordering Agency:</label></td>
-                    <td>
-                        <input dojoType="openils.widget.OrgUnitFilteringSelect" jsId='orderingAgencySelect'
-                            searchAttr="shortname" name="ordering_agency" autocomplete="true" labelAttr='shortname'> </input>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan='2'><div dojoType='dijit.form.Button' type='submit'>Search</div></td>
-                </tr>
-            </table>
-        </form>
-    </div>
-    <div dojoType="dijit.ProgressBar" style="width:300px" jsId="searchProgress" id="searchProgress"></div>
-    <script type="text/javascript">dojo.style('searchProgress', 'visibility', 'hidden');</script>
-    <div id='oils-acq-recv-grid' style='height:100%'>
-        [% grid_jsid = 'liGrid'; domprefix = 'oils-acq-recv' %]
-        [% INCLUDE 'default/acq/common/jubgrid.tt2' %]
-    </div>
-    <script type="text/javascript">dojo.style('oils-acq-recv-grid', 'visibility', 'hidden');</script>
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/receiving/process.js'> </script>
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/acq/search/unified.tt2 b/Open-ILS/src/templates/default/acq/search/unified.tt2
deleted file mode 100644 (file)
index 1d3f369..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-[% ctx.page_title = "Acquisitions Search" %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/base64.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/search/unified.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/search/invoice.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/search/picklist.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/search/purchase_order.js"></script>
-<div id="acq-unified-body" class="hidden">
-    <div id="acq-unified-heading">
-        <span id="acq-unified-heading-actual">Acquisitions Search</span>
-        <span id="acq-unified-heading-controls">
-            <button id="acq-unified-hide-form" onclick="hideForm();">
-                Hide Search Form
-            </button>
-            <button id="acq-unified-reveal-form" onclick="revealForm();"
-                class="hidden">
-                Reveal Search Form
-            </button>
-        </span>
-        <div style="clear: both;"><!-- layout; don't remove --></div>
-    </div>
-    <div id="acq-unified-form">
-        <div>
-            <label for="acq-unified-result-type">Search for</label>
-            <select id="acq-unified-result-type">
-                <option value="lineitem">line items</option>
-                <option value="lineitem_and_bib">
-                    line items &amp; catalog records
-                </option>
-                <option value="picklist">selection lists</option>
-                <option value="purchase_order">purchase orders</option>
-                <option value="invoice">invoices</option>
-            </select>
-            <label for="acq-unified-conjunction">matching</label>
-            <select id="acq-unified-conjunction">
-                <option value="and">all</option>
-                <option value="or">any</option>
-            </select>
-            <label for="acq-unified-conjunction">
-                of the following terms:
-            </label>
-        </div>
-        <div id="acq-unified-terms">
-            <table id="acq-unified-terms-table">
-                <tbody id="acq-unified-terms-tbody">
-                    <tr id="acq-unified-terms-row-tmpl"
-                        class="acq-unified-terms-row">
-                        <td name="selector"
-                            class="acq-unified-terms-selector"></td>
-                        <td name="match"
-                            class="acq-unified-terms-match">
-                            <select>
-                                <option value="">is</option>
-                                <option value="__not">is NOT</option>
-                                <option value="__fuzzy" disabled="disabled">
-                                    contains
-                                </option>
-                                <option value="__not,__fuzzy"
-                                    disabled="disabled">
-                                    does NOT contain
-                                </option>
-                                <option value="__lte" disabled="disabled">
-                                    is on or BEFORE
-                                </option>
-                                <option value="__gte" disabled="disabled">
-                                    is on or AFTER
-                                </option>
-                                <option value="__in" disabled="disabled">
-                                    matches a term from a file
-                                </option>
-                            </select>
-                        </td>
-                        <td name="widget"
-                            class="acq-unified-terms-widget"></td>
-                        <td name="remove"
-                            class="acq-unified-terms-remove"></td>
-                    </tr>
-                </tbody>
-            </table>
-        </div>
-        <div id="acq-unified-add-term">
-            <button onclick="termManager.addRow()">Add Search Term</button>
-        </div>
-        <div>
-            <button
-                onclick="resultManager.go(termManager.buildSearchObject())">
-                Search
-            </button>
-        </div>
-    </div>
-    <div id="acq-unified-results-purchase_order" class="hidden">
-        <div class="acq-unified-result-specific-controls">
-            <button onclick="dijit.byId('acq-unified-po-grid').refresh();">
-                Refresh Grid
-            </button>
-        </div>
-        <table
-            id="acq-unified-po-grid"
-            autoHeight="true"
-            dojoType="openils.widget.AutoGrid"
-            query="{id: '*'}"
-            fieldOrder="['name', 'owner', 'ordering_agency', 'provider',
-                'create_time', 'edit_time', 'state']"
-            suppressFields="['owner', 'editor', 'creator']"
-            defaultCellWidth="'auto'"
-            showPaginator="true"
-            fmClass="acqpo">
-            <thead>
-                <tr>
-                    <th field="name" get="getName" formatter="formatPoName">
-                        Name
-                    </th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-    <div id="acq-unified-results-picklist" class="hidden">
-        <div class="acq-unified-result-specific-controls">
-            <button dojoType="dijit.form.Button"
-                onClick="dijit.byId('acq-unified-pl-grid').refresh();">
-                Refresh Grid
-            </button>
-            <div dojoType="dijit.form.DropDownButton">
-                <span>New Selection List</span>
-                <div dojoType="dijit.TooltipDialog"
-                    execute="createPl(arguments[0]);">
-                    <table class="dijitTooltipTable">
-                        <tr>
-                            <td><label for="name">Name:</label></td>
-                            <td><input dojoType="dijit.form.TextBox"
-                                name="name"/></td>
-                        </tr>
-                        <tr>
-                            <td colspan="2" align="center">
-                                <button dojoType="dijit.form.Button"
-                                    type="submit">Create</button>
-                            </td>
-                        </tr>
-                    </table>
-                </div>
-            </div>
-            <div dojoType="dijit.form.DropDownButton">
-                <span>Clone Selected</span>
-                <div dojoType="dijit.TooltipDialog"
-                    execute="cloneSelectedPl(arguments[0]);">
-                    <table class="dijitTooltipTable">
-                        <tr>
-                            <td><label for="name">New Name:</label></td>
-                            <td><input dojoType="dijit.form.TextBox"
-                                name="name"/></td>
-                        </tr>
-                        <tr>
-                            <td colspan="2" align="center">
-                                <button dojoType="dijit.form.Button"
-                                    type="submit">Clone</button>
-                            </td>
-                        </tr>
-                    </table>
-                </div>
-            </div>
-            <div dojoType="dijit.form.DropDownButton">
-                <span>Merge Selected</span>
-                <div dojoType="dijit.TooltipDialog"
-                    execute="mergeSelectedPl(arguments[0]);"
-                    jsId="plMergeDialog">
-                    <script type="dojo/connect" event="onOpen">
-                        loadLeadPlSelector();
-                    </script>
-                    <table class="dijitTooltipTable">
-                        <tr>
-                            <td><label for="name">Choose the Lead
-                                 Selection List:</label></td>
-                             <td><input jsId="plMergeLeadSelector"
-                                 dojoType="dijit.form.FilteringSelect"
-                                 name="lead" /></td>
-                        </tr>
-                        <tr>
-                            <td colspan="2" align="center">
-                                <button dojoType="dijit.form.Button"
-                                    type="submit">Merge</button>
-                            </td>
-                        </tr>
-                    </table>
-                </div>
-            </div>
-            <button dojoType="dijit.form.Button"
-                onclick="deleteSelectedPl();">Delete Selected</button>
-        </div>
-        <table
-            id="acq-unified-pl-grid"
-            autoHeight="true"
-            dojoType="openils.widget.AutoGrid"
-            query="{id: '*'}"
-            fieldOrder="['name', 'owner', 'entry_count',
-                'create_time', 'edit_time']"
-            suppressFields="['editor', 'creator']"
-            defaultCellWidth="'auto'"
-            showPaginator="true"
-            fmClass="acqpl">
-            <thead>
-                <tr>
-                    <th field="name" get="getName" formatter="formatPlName">
-                        Name
-                    </th>
-                    <th field="owner" get="getPlOwnerName">Owner</th>
-                    <th field="entry_count">Entry Count</th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-    <div id="acq-unified-results-invoice" class="hidden">
-        <div class="acq-unified-result-specific-controls">
-            <button onclick="dijit.byId('acq-unified-inv-grid').refresh();">
-                Refresh Grid
-            </button>
-            <button onclick="printInvoiceVouchers();">
-                Print Selected Invoices
-            </button>
-        </div>
-        <table
-            id="acq-unified-inv-grid"
-            autoHeight="true"
-            dojoType="openils.widget.AutoGrid"
-            query="{id: '*'}"
-            fieldOrder="['inv_ident', 'receiver', 'provider', 'shipper']"
-            defaultCellWidth="'auto'"
-            showPaginator="true"
-            fmClass="acqinv">
-            <thead>
-                <tr>
-                    <th field="inv_ident" get="getInvIdent"
-                        formatter="formatInvIdent"></th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-    <div id="acq-unified-results-no_results" class="hidden">
-        There are no results from your search.
-    </div>
-    <div id="acq-unified-results-lineitem" class="hidden">
-        [% INCLUDE "default/acq/common/li_table_pager.tt2" %]
-        [% INCLUDE "default/acq/common/li_table.tt2" %]
-    </div>
-    <div jsId='progressDialog' dojoType='openils.widget.ProgressDialog'/>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/acq/settings/li_attr.tt2 b/Open-ILS/src/templates/default/acq/settings/li_attr.tt2
deleted file mode 100644 (file)
index 357a047..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top">
-    <div dojoType="dijit.form.DropDownButton">
-        <span>Lineitem Attribute Attribute</span>
-        <div dojoType="dijit.TooltipDialog" execute="createOrderRecordField(arguments[0]);">
-            <script type='dojo/connect' event='onOpen'>//setORDesc();</script>
-            <table class='dijitTooltipTable'>
-                <tr>
-                    <td><label for="code">Code:</label></td>
-                    <td><input dojoType='dijit.form.TextBox' name='code'/></td>
-                </tr>
-                <tr>
-                    <td><label for="description">Description: </label></td>
-                    <td><input id='oils-acq-provider-or-desc' dojoType="dijit.form.TextBox" name="description"> </input></td>
-                </tr>
-                <tr>
-                    <td><label for="amount">Tag: </label></td>
-                    <td><input dojoType="dijit.form.TextBox" name="tag"></input></td>
-                </tr>
-                <tr>
-                    <td><label for="amount">Subfield: </label></td>
-                    <td><input dojoType="dijit.form.TextBox" name="subfield"></input></td>
-                </tr>
-                <tr>
-                    <td><label for="ident">Identifer Field?: </label></td>
-                    <td>
-                        <select dojoType="dijit.form.FilteringSelect" name="ident">
-                            <option value='f' selected='selected'>False</option>
-                            <option value='t'>True</option>
-                        </select>
-                    </td>
-                </tr>
-                <tr>
-                    <td><label for="amount">XPath (advanced): </label></td>
-                    <td><input dojoType="dijit.form.TextBox" name="xpath"></input></td>
-                </tr>
-                <tr>
-                    <td colspan='2' align='center'>
-                        <button dojoType=dijit.form.Button type="submit">Apply</button>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-    <script type="text/javascript">
-        var liAttrGridLayout = [{
-            cells : [[
-                {name: 'ID', field: 'id'},
-                {name: 'Code', field:'code', width:'auto'},
-                {name: 'Description', field: "description", width:'auto'}, 
-                {name: 'Tag', get:getTag},
-                {name: 'Subfield', get:getSubfield},
-                {name: 'Identifier', field:'ident'},
-                {name: 'XPath', field:'xpath', width:'auto'}
-            ]]
-        }];
-    </script>
-    <div dojoType="dijit.layout.TabContainer">
-        <div dojoType="dijit.layout.ContentPane" 
-                class='oils-acq-detail-content-pane' title="MARC Attributes" style='height:600px;'>
-            <script type='dojo/connect' event='onShow'>loadMarcAttrGrid();</script>
-            <div jsId='liMarcAttrGrid' dojoType="dojox.Grid" structure='liAttrGridLayout'> </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" 
-                class='oils-acq-detail-content-pane' title="Generated Attributes" style='height:600px;'>
-            <script type='dojo/connect' event='onShow'>loadGeneratedAttrGrid();</script>
-            <div jsId='liGeneratedAttrGrid' dojoType="dojox.Grid" structure='liAttrGridLayout'> </div>
-        </div>
-    </div>
-</div>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/settings/li_attr.js'></script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/actor/user/register.tt2 b/Open-ILS/src/templates/default/actor/user/register.tt2
deleted file mode 100644 (file)
index a821020..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-[% ctx.page_title = 'User Editor' %]
-[% WRAPPER default/base.tt2 %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/actor/user/register.js'></script>
-<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/register.css" />
-
-<div dojoType="dijit.form.Form" id="myForm" jsId="myForm" encType="multipart/form-data" action="" method="">
-    <script type="dojo/method" event="onSubmit">
-        /* we don't want to use the form action, but uEditSave and UEditSaveClone from the Save buttons.  We
-            do want to use the Form's validation features, which we do from within UEditSave, etc. */
-        return false;
-    </script>
-    <table>
-        [% INCLUDE default/actor/user/register_table.tt2 %]
-    </table>
-</div>
-
-<div id='uedit-save-div'>
-    <button dojoType='dijit.form.Button' jsId='saveButton' onClick='uEditSave' scrollOnFocus='false'></button>
-    <button dojoType='dijit.form.Button' jsId='saveCloneButton' onClick='uEditSaveClone' scrollOnFocus='false'></button>
-    <div id='require-toggle'>
-        <a href='javascript:uEditToggleRequired(1);' id='uedit-show-required'>Show Only Required Fields</a><br id='uedit-show-required-br'/>
-        <a href='javascript:uEditToggleRequired(2);' id='uedit-show-suggested'>Show Suggested Fields</a><br id='uedit-show-suggested-br'/>
-        <a href='javascript:uEditToggleRequired(0);' id='uedit-show-all' class='hidden'>Show All Fields</a>
-    </div>
-</div>
-
-<!-- context help widget -->
-<a class='hidden' id='uedit-help-template'><img src='/opac/images/advancedsearch-icon.png'></img></a>
-<fieldset id='uedit-help-div' class='hidden'>
-    <legend id='uedit-help-field'/>
-    <div id='uedit-help-text'/>
-</fieldset>
-
-<!-- duplicate patron search results -->
-<div id='uedit-dupe-div' class='hidden'>
-    <div><a href='javascript:void(0);' id='uedit-dupe-names-link'></a></div>
-    <div><a href='javascript:void(0);' id='uedit-dupe-email-link'></a></div>
-    <div><a href='javascript:void(0);' id='uedit-dupe-ident-link'></a></div>
-    <div><a href='javascript:void(0);' id='uedit-dupe-phone-link'></a></div>
-    <div><a href='javascript:void(0);' id='uedit-dupe-address-link'></a></div>
-</div>
-
-<div class='hidden'>
-    <span id='true' style='color:green;'>&#x2713;</span>
-    <span id='false' style='color:red;'>&#x2717;</span>
-    <div dojoType='dijit.Dialog' jsId='allCardsDialog'>
-        <table class='oils-generic-table' style='margin:10px;'>
-            <thead>
-                <tr>
-                    <th>Barcode</th>
-                    <th>Active</th>
-                </tr>
-            </thead>
-            <tbody id='uedit-all-cards-tbody'>
-                <tr id='uedit-all-cards-tr-template'>
-                    <td><div name='barcode'></div></td>
-                    <td><div name='active'></div></td>
-                </tr>
-            </tbody>
-            <tbody>
-                <tr>
-                    <td colspan='2' style='text-align:center;'>
-                        <button dojoType='dijit.form.Button' onClick='allCardsDialog.hide()' scrollOnFocus='false'>Close</button>
-                    </td>
-                </tr>
-            </tbody>
-        </table>
-    </div>
-</div>
-
-
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/actor/user/register_table.tt2 b/Open-ILS/src/templates/default/actor/user/register_table.tt2
deleted file mode 100644 (file)
index 5528252..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<tbody id='uedit-tbody'>
-    <tr fmclass='ac' fmfield='barcode' required='required'>
-        <td/><td/><td/>
-        <td>
-            <button dojoType='dijit.form.Button' jsId='replaceBarcode' scrollOnFocus='false'></button>
-            <span id='uedit-dupe-barcode-warning' style='color:red; font-weight:bold' class='hidden'>
-            </span>
-        </td>
-        <td id='uedit-all-barcodes' class='hidden'>
-            <button dojoType='dijit.form.Button' jsId='allCards' scrollOnFocus='false'></button>
-        </td>
-    </tr>
-    <tr fmclass='au' fmfield='usrname' required='required'>
-        <td/><td/><td/>
-        <td>
-            <span id='uedit-dupe-username-warning' style='color:red; font-weight:bold' class='hidden'>
-            </span>
-        </td>
-    </tr>
-    <tr fmclass='au' fmfield='passwd' required='required'>
-        <td/><td/><td/>
-        <td>
-            <button dojoType='dijit.form.Button' jsId='generatePassword' scrollOnFocus='false' tabIndex='-1'></button>
-        </td>
-    </tr>
-    <tr fmclass='au' fmfield='passwd2' required='required'><td/><td id='verifyPassword'></td><td/></tr>
-    <tr fmclass='au' fmfield='first_given_name' required='required'/>
-    <tr fmclass='au' fmfield='second_given_name'/>
-    <tr fmclass='au' fmfield='family_name' required='required'/>
-    <tr fmclass='au' fmfield='suffix'/>
-    <tr fmclass='au' fmfield='alias'/>
-    <tr fmclass='au' fmfield='dob'/>
-    <tr fmclass='au' fmfield='juvenile'/>
-    <tr fmclass='au' fmfield='ident_type' required='required'/>
-    <tr fmclass='au' fmfield='ident_value'/>
-    <tr fmclass='au' fmfield='ident_value2'><td/><td id='parentGuardian'></td></tr>
-    <tr fmclass='au' fmfield='email'/>
-    <tr fmclass='au' fmfield='day_phone'/>
-    <tr fmclass='au' fmfield='evening_phone'/>
-    <tr fmclass='au' fmfield='other_phone'/>
-    <tr fmclass='au' fmfield='home_ou' required='required'/>
-    <tr fmclass='au' fmfield='profile' required='required'/>
-    <tr fmclass='au' fmfield='expire_date' required='required'/>
-    <tr fmclass='au' fmfield='net_access_level' required='required'/>
-    <tr fmclass='au' fmfield='active'/>
-    <tr fmclass='au' fmfield='barred'/>
-    <tr fmclass='au' fmfield='master_account'/>
-    <tr fmclass='au' fmfield='claims_returned_count' wclass='dijit.form.NumberSpinner' wconstraints="{min:0,places:0}" wvalue='0'/>
-    <tr fmclass='au' fmfield='claims_never_checked_out_count' wclass='dijit.form.NumberSpinner' wconstraints="{min:0,places:0}" wvalue='0'/>
-    <tr fmclass='au' fmfield='alert_message' wclass='dijit.form.Textarea' wstyle='height:5em'/>
-
-    <tr class='divider hidden' id='uedit-settings-divider'><td colspan='0' id='userSettings'></td></tr>
-    <tr class='hidden' id='uedit-user-setting-template'>
-        <td/>
-        <td><span name='label'></span></td>
-        <td><div name='widget'></div></td>
-    </tr>
-
-    <!-- Address -->
-    <tr name='uedit-addr-divider' class='divider' type='addr-template' required='show'>
-        <td colspan='2' name='addressHeader'></td>
-        <td>
-            <span name='mailingAddress'></span><input type='radio' name='mailing_address'>
-            <span name='billingAddress'></span><input type='radio' name='billing_address'>
-            <button dojoType='dijit.form.Button' scrollOnFocus='false' name='delete-button' class='uedit-addr-del-button'>X</button>
-        </td>
-    </tr>
-
-    <tr name='uedit-addr-pending-row' type='addr-template' class='pending-addr-row hidden'>
-        <td colspan='3'>
-            <span style='padding-right:10px;' name='addressPending'></span>
-            <button dojoType='dijit.form.Button' scrollOnFocus='false'  name='approve-button'></button>
-            <div name='replaced-addr-div'>
-                <div name='replaced-addr'></div>
-            </div>
-        </td>
-    </tr>
-
-    <tr name='uedit-addr-owner-row' type='addr-template' class='pending-addr-row hidden'>
-        <td colspan='3'>
-            <span style='padding-right:10px;' name='address-already-owned'></span>
-            <a href='javascript:void(0);'  name='addr-owner'></a>
-        </td>
-    </tr>
-
-
-    <tr fmclass='aua' fmfield='address_type' type='addr-template' required='required'/>
-    <tr fmclass='aua' fmfield='post_code' type='addr-template' required='required'/>
-    <tr fmclass='aua' fmfield='street1' type='addr-template' required='required'/>
-    <tr fmclass='aua' fmfield='street2' type='addr-template' required='show'/>
-    <tr fmclass='aua' fmfield='city' type='addr-template' required='required'/>
-    <tr fmclass='aua' fmfield='county' type='addr-template' required='show'/>
-    <tr fmclass='aua' fmfield='state' type='addr-template' required='required'/>
-    <tr fmclass='aua' fmfield='country' type='addr-template' required='required'/>
-    <tr fmclass='aua' fmfield='valid' type='addr-template' required='show'/>
-    <tr fmclass='aua' fmfield='within_city_limits' type='addr-template' required='show'/>
-
-    <tr id='new-addr-row' class='newaddr-row' required='show'>
-        <td colspan='0' style='text-align:center;'>
-            <button dojoType='dijit.form.Button' onClick='uEditNewAddr' scrollOnFocus='false' name='addressNew'></button>
-        </td>
-    </tr>
-
-    <!-- stat cats -->
-    <tr class='divider' id='stat-cat-divider' required='suggested'><td colspan='0' id='statCats'></td></tr>
-    <tr id='stat-cat-row-template' required='suggested'><td class='uedit-help'/><td name='name'/><td name='widget'/></tr>
-
-    <!-- surveys -->
-    <tr id='survey-row-template' class='divider' required='suggested'><td colspan='0' name='name'/></tr>
-    <tr id='survey-question-row-template' required='suggested'><td class='uedit-help'/><td name='question'/><td name='answers'/></tr>
-</tbody>
-
diff --git a/Open-ILS/src/templates/default/actor/user/trigger_events.tt2 b/Open-ILS/src/templates/default/actor/user/trigger_events.tt2
deleted file mode 100644 (file)
index d17cfac..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-[% ctx.page_title = 'Events' %]
-[% WRAPPER default/base.tt2 %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/actor/user/trigger_events.js'></script>
-<script type="text/javascript">patronId = '[% ctx.page_args.0 %]'</script>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-    <div>User Events</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='evtCancelSelected()'>Cancel Selected Events</button>
-    </div>
-</div>
-
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:100%;'> 
-    <table jsId="evtGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}">
-        <thead> 
-            <tr> 
-                <th field="event_def" get='getField' width='auto'>Event Def.</th> 
-                <th field="hook" get='getField' width='auto'>Hook</th> 
-                <th field="reactor" get='getField' width='auto'>Reactor</th> 
-                <th field="validator" get='getField' width='auto'>Validator</th> 
-                <th field="target" get='getField' width='auto'>Target</th> 
-                <th field="state" get='getField' width='auto'>State</th> 
-            </tr> 
-        </thead> 
-    </table>     
-</div>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/base.tt2 b/Open-ILS/src/templates/default/base.tt2
deleted file mode 100644 (file)
index 0570b12..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-[% WRAPPER 'base.tt2' %]
-<script type="text/javascript">
- dojo.require("dijit.layout.LayoutContainer");
- dojo.require("dijit.layout.ContentPane");
-</script>
-
-<!-- define the basic page structure -->
-<div id="oils-base-body-block" class="tundra" dojoType="dijit.layout.LayoutContainer"> 
-    <div id="oils-base-header-block" dojoType="dijit.layout.ContentPane" layoutAlign="top">
-
-        <!-- Hide the non-xul menu for now.  
-             Will probably remove at some point since it's perpetually out 
-             of sync and exists solely as a development tool
-
-        <div id='oils-base-header-menu-block'>
-            [%# INCLUDE default/menu.tt2 #%]
-        </div>
-        -->
-
-        <div id='oils-base-header-auto-login-block'>
-            [% INCLUDE default/header.tt2 %]
-        </div>
-    </div>
-    <div id="oils-base-main-block" dojoType="dijit.layout.LayoutContainer" layoutAlign="client">
-        <!--
-        <div id="oils-base-navigate-block" dojoType="dijit.layout.ContentPane" layoutAlign="left">
-        </div>
-        -->
-        <div id="oils-base-content-block" dojoType="dijit.layout.ContentPane" layoutAlign="client">
-            [% content %]
-        </div>
-    </div>
-    <!--
-    <div id="oils-base-footer-block">
-        [% INCLUDE default/footer.tt2 %]
-    </div>
-    -->
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/booking/capture.tt2 b/Open-ILS/src/templates/default/booking/capture.tt2
deleted file mode 100644 (file)
index 79d7e4e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/capture.js"></script>
-<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" id="booking_stylesheet_link" />
-<script type="text/javascript">openils.Util.addOnLoad(my_init);</script>
-<div id="auto_l10n_start_here">
-<!-- XXX This interface will probably go away soon in favor of merging its
-behavior into the regular checkin/process/capture interface. -->
-    <h1 class="AUTO_capture_heading booking"></h1>
-    <form class="nice_vertical_padding"
-        onsubmit="attempt_capture(); return false">
-        <label for="resource_barcode" class="AUTO_resource_barcode"></label>
-        <input id="resource_barcode" onfocus="clear_for_next();" />
-        <input type="button" class="AUTO_ATTR_VALUE_capture"
-            onclick="attempt_capture();" />
-        <span id="result_display"></span>
-    </form>
-    <div class="nice_vertical_padding" id="capture_info_top"></div>
-    <div class="nice_vertical_padding" id="capture_info_bottom"></div>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/booking/pickup.tt2 b/Open-ILS/src/templates/default/booking/pickup.tt2
deleted file mode 100644 (file)
index 8cff3fa..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" />
-<div id="auto_l10n_start_here">
-    <h1 class="booking AUTO_h1"></h1>
-    <div class="nice_vertical_padding" id="contains_barcode_control">
-        <form id="lookup" onsubmit="return act(this);">
-            <label for="patron_barcode" class="AUTO_patron_barcode"></label>
-            <input id="patron_barcode" name="patron_barcode" />
-            <input type="submit" class="AUTO_ATTR_VALUE_go" />
-        </form>
-    </div>
-    <div class="nice_vertical_padding" id="contains_patron_info">
-        <div id="patron_info"></div>
-    </div>
-    <div class="nice_vertical_padding" id="contains_ready_bresv">
-        <h3 class="booking AUTO_ready_bresv"></h3>
-        <div class="AUTO_no_ready_bresv" id="no_ready_bresv"></div>
-        <table id="ready_bresv" jsId="ready_bresv"
-            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
-            rowSelector="20px" autoHeight="true" width="auto">
-            <thead>
-                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
-                        too late to take care of the below elements. -->
-                    <th width="35%" field="type">Title</th>
-                    <th width="25%" field="resource">Barcode</th>
-                    <th width="20%" field="start_time">Start time</th>
-                    <th width="20%" field="end_time">End time</th>
-                </tr>
-            </thead>
-        </table>
-        <div class="nice_vertical_padding" id="controls_ready_bresv">
-            <form>
-                <input type="button" id="pickup_button"
-                    class="AUTO_ATTR_VALUE_pickup"
-                    onclick="p.act_on_selected('pickup', 'ready');" />
-            </form>
-        </div>
-    </div>
-    <div class="nice_vertical_padding" id="contains_out_bresv">
-        <hr />
-        <h3 class="booking AUTO_out_bresv"></h3>
-        <div class="AUTO_no_out_bresv" id="no_out_bresv"></div>
-        <table id="out_bresv" jsId="out_bresv"
-            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
-            rowSelector="20px" autoHeight="true" width="auto">
-            <thead>
-                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
-                        too late to take care of the below elements. -->
-                    <th width="35%" field="type">Title</th>
-                    <th width="25%" field="resource">Barcode</th>
-                    <th width="20%" field="pickup_time">Pickup time</th>
-                    <th width="20%" field="end_time">Due time</th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-    <div class="nice_vertical_padding" id="contains_misc_controls">
-        <hr />
-        <form>
-            <input type="button" class="AUTO_ATTR_VALUE_reset"
-                onclick="p.reset();" />
-        </form>
-    </div>
-</div>
-
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/populator.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/pickup.js"></script>
-<script type="text/javascript">
-    dojo.require("dojox.grid.DataGrid");
-    openils.Util.addOnLoad(my_init);
-
-    function act(f) {
-        p.populate({"patron": f.patron_barcode.value});
-        return false; /* Always. */
-    }
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/booking/pull_list.tt2 b/Open-ILS/src/templates/default/booking/pull_list.tt2
deleted file mode 100644 (file)
index d4f6765..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/pull_list.js"></script>
-<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" />
-<script type="text/javascript">openils.Util.addOnLoad(my_init);</script>
-<div id="auto_l10n_start_here">
-    <h1 class="booking AUTO_pull_list_title"></h1>
-    <form onsubmit="populate_pull_list(this); return false;">
-        <div id="owning_lib_selector_row" class="nice_vertical_padding">
-            <label for="owning_lib_selector" class="AUTO_owning_lib_selector">
-            </label>
-            <select dojoType="openils.widget.OrgUnitFilteringSelect"
-                id="owning_lib_selector" jsId="owning_lib_selector"
-                searchAttr="shortname" labelAttr="shortname"></select>
-        </div>
-        <div id="interval_input_row" class="nice_vertical_padding">
-            <label for="interval_in_days" class="AUTO_interval_in_days"></label>
-
-            <!-- XXX Hardcoded values (like the ones below) are bad. -->
-            <input id="interval_in_days" name="interval_in_days"
-                value="5" maxlength="2" />
-
-        </div>
-        <input type="submit" class="AUTO_ATTR_VALUE_fetch" />
-    </form>
-    <hr />
-    <div id="table_goes_here" class="nice_vertical_padding">
-        <table id="the_table" width="100%">
-            <thead>
-                <tr>
-                    <th width="25%" class="AUTO_th_title_or_name"></th>
-                    <th width="10%" class="AUTO_th_barcode"></th>
-                    <th width="15%" class="AUTO_th_call_number"></th>
-                    <th width="10%" class="AUTO_th_copy_location"></th>
-                    <th width="40%" class="AUTO_th_resv_details"></th>
-                </tr>
-            </thead>
-            <tbody id="the_table_body">
-            </tbody>
-        </table>
-        <div id="print_holder" class="nice_vertical_padding">
-            <!-- XXX Print button probably won't stay right here -->
-            <input type="button" class="AUTO_ATTR_VALUE_print"
-                onclick="window.print();" /><!-- XXX too simplistic? -->
-        </div>
-    </div>
-    <div id="no_results" class="AUTO_no_results"></div>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/booking/reservation.tt2 b/Open-ILS/src/templates/default/booking/reservation.tt2
deleted file mode 100644 (file)
index 5eb4a1d..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" />
-<div id="auto_l10n_start_here">
-    <div id="brt_search_block" class="container">
-        <h1 class="booking AUTO_choose_a_brt"></h1>
-        <form onsubmit="return false;">
-            <div id="select_noncat_brt_block">
-                <div id="brt_selector_here" class="nice_vertical_padding"></div>
-                <div class="nice_vertical_padding">
-                    <input type="button" class="AUTO_ATTR_VALUE_next"
-                        onclick="init_resv_iface_sel(); return false"
-                        />
-                </div>
-                <hr />
-                <div class="nice_vertical_padding AUTO_or" id="or"></div>
-            </div>
-            <div id="arbitrary_resource_block">
-                <label for="arbitrary_resource" class="AUTO_arbitrary_resource">
-                </label>
-                <input id="arbitrary_resource" name="arbitrary_resource" />
-                <input type="button"
-                    onclick="init_resv_iface_arb(); return false;"
-                    class="AUTO_ATTR_VALUE_next" />
-                <p class="AUTO_explain_bookable"></p>
-            </div>
-        </form>
-    </div>
-
-    <div id="brt_reserve_block" class="container">
-        <form onsubmit="return false;">
-            <div id="brsrc_available_outer">
-                <h1 class="booking" id="brsrc_list_header"></h1>
-                <!-- I'm reluctantly hardcoding the size attribute below to 12
-                    since you can't get the behavior of the size attribute with
-                    anything in CSS. -->
-                <select id="brsrc_list" name="brsrc_list" multiple="multiple"
-                    size="12"></select>
-                <div id="contain_patron_barcode" class="nice_vertical_padding">
-                    <label class="AUTO_patron_barcode"
-                        for="patron_barcode" /></label>
-                    <input name="patron_barcode" id="patron_barcode"
-                        onchange="update_bresv_grid();" />
-                </div>
-                <div id="pickup_lib_selector_row" class="nice_vertical_padding">
-                    <label for="pickup_lib_selector"
-                        class="AUTO_pickup_lib_selector"></label>
-                    <select dojoType="openils.widget.OrgUnitFilteringSelect"
-                        id="pickup_lib_selector" jsId="pickup_lib_selector"
-                        searchAttr="shortname" labelAttr="shortname"></select>
-                </div>
-                <div class="nice_vertical_padding">
-                    <span class="two_buttons">
-                        <input type="button"
-                            class="AUTO_ATTR_VALUE_reserve_brsrc"
-                            onclick="create_bresv_on_brsrc();" />
-                        &nbsp;
-                        <input type="button"
-                            class="AUTO_ATTR_VALUE_reserve_brt"
-                            onclick="create_bresv_on_brt();" />
-                    </span>
-                </div>
-            </div>
-            <div id="reserve_right_side">
-                <h2 class="booking AUTO_i_need_this_resource"></h2>
-                <div id="reserve_datetime_start">
-                    <label class="reserve_datetime AUTO_starting_at"
-                        for="reserve_date_start"></label><br />
-                    <input id="reserve_date_start" />
-                    <input id="reserve_time_start" />
-                </div>
-                <div id="reserve_datetime_end">
-                    <label class="reserve_datetime AUTO_ending_at"
-                        for="reserve_date_end"></label><br />
-                    <input id="reserve_date_end" />
-                    <input id="reserve_time_end" />
-                </div>
-                <h2 id="bra_and_brav_header"
-                    class="booking AUTO_with_these_attr"></h2>
-                <div id="bra_and_brav"></div>
-            </div>
-        </form>
-    </div>
-
-    <div id="reserve_under">
-        <hr />
-        <h2 class="booking" id="existing_reservation_patron_line"></h2>
-        <div id="bresv_grid_alt_explanation"></div>
-        <table id="bresv_grid" jsId="bresvGrid"
-            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
-            rowSelector="20px" autoHeight="true" width="auto">
-            <thead>
-                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
-                        too late to take care of the below elements. -->
-                    <th width="35%" field="type">Type</th>
-                    <th width="25%" field="resource">Resource</th>
-                    <th width="20%" field="start_time">Start time</th>
-                    <th width="20%" field="end_time">End time</th>
-                </tr>
-            </thead>
-        </table>
-        <div class="nice_vertical_padding"
-            id="existing_bresv_under_buttons">
-            <!-- <input type="button" id="button_edit_existing"
-                class="AUTO_ATTR_VALUE_button_edit_existing" /> -->
-            <input type="button" id="button_cancel_existing"
-                class="AUTO_ATTR_VALUE_button_cancel_existing"
-                onclick="cancel_selected_bresv(bresvGrid.selection.getSelected());" />
-        </div>
-    </div>
-</div>
-
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/reservation.js"></script>
-<script type="text/javascript">
-    dojo.require("dojox.grid.DataGrid");
-    openils.Util.addOnLoad(my_init);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/booking/return.tt2 b/Open-ILS/src/templates/default/booking/return.tt2
deleted file mode 100644 (file)
index a2f61c7..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-<link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/booking.css" />
-<div id="auto_l10n_start_here">
-    <h1 class="booking AUTO_return_h1"></h1>
-    <div class="nice_vertical_padding" id="contains_barcode_control">
-        <form id="lookup" onsubmit="return act(this);">
-            <label for="barcode_type" class="AUTO_barcode_type"></label>
-            <select name="barcode_type" id="barcode_type"
-                onchange="var b = this.form.barcode; b.focus(); b.select();">
-                <option id="option_resource" value="resource"
-                    selected="selected" class="AUTO_resource"></option>
-                <option id="option_patron" value="patron"
-                    class="AUTO_patron"></option>
-            </select>
-            <input id="barcode" name="barcode" />
-            <input type="submit" class="AUTO_ATTR_VALUE_go" />
-        </form>
-    </div>
-    <div class="nice_vertical_padding" id="contains_patron_info">
-        <div id="patron_info"></div>
-    </div>
-    <div class="nice_vertical_padding" id="contains_out_bresv">
-        <h3 class="booking AUTO_out_bresv"></h3>
-        <div class="AUTO_no_out_bresv" id="no_out_bresv"></div>
-        <table id="out_bresv" jsId="out_bresv"
-            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
-            rowSelector="20px" autoHeight="true" width="auto">
-            <thead>
-                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
-                        too late to take care of the below elements. -->
-                    <th width="35%" field="type">Title</th>
-                    <th width="25%" field="resource">Barcode</th>
-                    <th width="20%" field="pickup_time">Pickup time</th>
-                    <th width="20%" field="end_time">Due time</th>
-                </tr>
-            </thead>
-        </table>
-        <div class="nice_vertical_padding" id="controls_out_bresv">
-            <form>
-                <input type="button" id="return_button"
-                    class="AUTO_ATTR_VALUE_return"
-                    onclick="p.act_on_selected('return', 'out');" />
-            </form>
-        </div>
-    </div>
-    <div class="nice_vertical_padding" id="contains_in_bresv">
-        <hr />
-        <h3 class="booking AUTO_in_bresv"></h3>
-        <div class="AUTO_no_in_bresv" id="no_in_bresv"></div>
-        <table id="in_bresv" jsId="in_bresv"
-            dojoType="dojox.grid.DataGrid" query="{id: '*'}"
-            rowSelector="20px" autoHeight="true" width="auto">
-            <thead>
-                <tr><!-- FIXME: i18n problem: init_auto_l10n() runs
-                        too late to take care of the below elements. -->
-                    <th width="35%" field="type">Title</th>
-                    <th width="25%" field="resource">Barcode</th>
-                    <th width="20%" field="due_time">Due time</th>
-                    <th width="20%" field="return_time">Return time</th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-    <div class="nice_vertical_padding" id="contains_misc_controls">
-        <hr />
-        <form>
-            <input type="button" class="AUTO_ATTR_VALUE_reset"
-                onclick="p.reset();" />
-        </form>
-    </div>
-</div>
-
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/common.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/populator.js"></script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/booking/return.js"></script>
-<script type="text/javascript">
-    dojo.require("dojox.grid.DataGrid");
-    openils.Util.addOnLoad(my_init);
-
-    function act(f) {
-        var key = f.barcode_type.options[f.barcode_type.selectedIndex].value;
-        var obj = {};
-        obj[key] = f.barcode.value;
-        p.populate(obj);
-        return false; /* Always. */
-    }
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/cat/authority/list.tt2 b/Open-ILS/src/templates/default/cat/authority/list.tt2
deleted file mode 100644 (file)
index cfc341f..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-[% ctx.page_title = 'Authority record list' %]
-[% WRAPPER default/base.tt2 %]
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/cat/authority/list.js'> </script>
-
-<div dojoType="dijit.form.Form" id="myForm" jsId="myForm" encType="multipart/form-data" action="" method="">
-    <span style="white-space: nowrap;">
-        <label for="authTerm">Search term: </label>
-        <input type="text" name="authTerm" value="" dojoType="dijit.form.TextBox" trim="true" id="authTerm" propercase="false"/>
-    </span>
-    <span style="white-space: nowrap;">
-        <label for="authAxis">Authority type: </label>
-        <input
-            id="authAxis"
-            name="authAxis"
-            jsId="authAxis"
-            dojoType="openils.widget.PCrudAutocompleteBox"
-            fmclass="aba"
-            searchAttr="name"
-            fetchProperties="{ sort: [{attribute:'name'}] }"
-            propercase="false"
-            hasDownArrow="true"
-            store_options="{ honor_retrieve_all:true }"
-            trim="true"
-        />
-    </span>
-<!-- Not currently useful - see authOUListInit() above -->
-<!--    <label for="authOU">Library: </label><select dojoType="openils.widget.OrgUnitFilteringSelect" id="authOU" name="authOU" searchAttr="shortname" labelAttr="shortname"></select> -->
-
-    <span style="white-space: nowrap;">
-        <span dojoType="dijit.form.Button" type="button" value="Previous">Previous
-            <script type="dojo/method" event="onClick" args="evt">
-                displayRecords({"page":"prev"});
-            </script>
-        </span>
-
-        <label for="authPage">Page: </label>
-        <input dojoType="dijit.form.NumberSpinner" value="0" constraints="{min:-100,max:100,places:0}" smallDelta="1" id="authPage" name="authPage" style="width:5em;" />
-
-        <span dojoType="dijit.form.Button" type="button" value="Next">Next
-            <script type="dojo/method" event="onClick" args="evt">
-                displayRecords({"page":"next"});
-            </script>
-        </span>
-    </span>
-
-    <span style="white-space: nowrap;">
-        <span dojoType="dijit.form.Button" type="button" value="Submit">Submit
-            <script type="dojo/method" event="onClick" args="evt">
-                displayRecords();
-            </script>
-        </span>
-    </span>
-</div>
-
-<hr />
-
-<div id='mergebox-div' class='hidden' style='float:right; border: 4px solid; width: 25%;'>
-    <div style="border-bottom: 4px solid; text-align: center;">
-        <div dojoType="dijit.form.Form" encType="multipart/form-data" action="" method="">
-            <div dojoType="dijit.form.Button" type="button" value="Merge">Merge
-                <script type="dojo/method" event="onClick" args="evt">
-                    mergeRecords();
-                </script>
-            </div>
-            <div dojoType="dijit.form.Button" type="button" value="Clear">Clear
-                <script type="dojo/method" event="onClick" args="evt">
-                    clearMergeRecords();
-                </script>
-            </div>
-        </div>
-    </div>
-    <table>
-        <tbody id='mergebox-tbody'>
-        </tbody>
-    </table>
-</div>
-
-
-<div id='authlist-div'></div>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/circ/selfcheck/audio_config.tt2 b/Open-ILS/src/templates/default/circ/selfcheck/audio_config.tt2
deleted file mode 100644 (file)
index fc1bdef..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-[%#
-    Override the audio config values by copying this template into your local templates
-    directory (matching the relative path) and change the values accordingly.
-#%]
-
-<script type="text/javascript">
-    SelfCheckManager.audioConfig = {
-        'login-success' : '',
-        'login-failure' : '[% ctx.media_prefix %]/audio/question.wav',
-        'checkout-success' : '[% ctx.media_prefix %]/audio/bonus.wav',
-        'checkout-failure' : '[% ctx.media_prefix %]/audio/question.wav',
-    }
-</script>
diff --git a/Open-ILS/src/templates/default/circ/selfcheck/banner.tt2 b/Open-ILS/src/templates/default/circ/selfcheck/banner.tt2
deleted file mode 100644 (file)
index cda4866..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<div id='oils-selfck-user-banner'></div>
-<div id='oils-selfck-logo-div'>
-    <img src='[% ctx.media_prefix %]/images/eg_logo.jpg'/>
-</div>
-<div id='oils-selfck-scan-div'>
-    <div id='oils-selfck-scan-text'></div>
-    <input jsId='selfckScanBox' dojoType='dijit.form.TextBox'/>
-</div>
-<div id='oils-selfck-status-div'></div>
-
diff --git a/Open-ILS/src/templates/default/circ/selfcheck/circ_page.tt2 b/Open-ILS/src/templates/default/circ/selfcheck/circ_page.tt2
deleted file mode 100644 (file)
index 868f5f9..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<div id='oils-selfck-circ-table-div'>
-    <table id='oils-selfck-circ-table' class='oils-selfck-item-table'>
-        <thead>
-            <tr>
-                <td id='oils-self-circ-pic-cell'></td>
-                <td>Barcode</td>
-                <td>Title</td>
-                <td>Author</td>
-                <td>Due Date</td>
-                <td class='hidden'>Renewals Left</td>
-                <td>Type</td>
-            </tr>
-        </thead>
-        <tbody id='oils-selfck-circ-tbody'>
-            <tr id='oils-selfck-circ-row'>
-                <td><img class='oils-selfck-jacket' name='jacket'/></td>
-                <td name='barcode'></td>
-                <td name='title'></td>
-                <td name='author'></td>
-                <td name='due_date'></td>
-                <td class='hidden' name='remaining'></td>
-                <td>
-                    <div name='checkout' class='hidden'>Checkout</div>
-                    <div name='renew' class='hidden'>Renewal</div>
-                </td>
-            </tr>
-        </tbody>
-        <tbody id='oils-selfck-circ-out-tbody' class='oils-selfck-item-table'></tbody>
-    </table>
-</div>
diff --git a/Open-ILS/src/templates/default/circ/selfcheck/fines.tt2 b/Open-ILS/src/templates/default/circ/selfcheck/fines.tt2
deleted file mode 100644 (file)
index 0c27047..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<span id='oils-selfck-selected-total'></span>
-<span style='padding-left:5px;'><a class='hidden' href='javascript:void(0);' id='oils-selfck-pay-fines-link'>Pay Fines</a></span>
-<div id='oils-selfck-fines-table-div'>
-    <table id='oils-selfck-fines-table' class='oils-selfck-item-table'>
-        <thead>
-            <tr>
-                <td><input type='checkbox' checked='checked' id='oils-selfck-fines-selector'/></td>
-                <td>Type</td>
-                <td>Details</td>
-                <td>Total Billed</td>
-                <td>Total Paid</td>
-                <td>Balance Owed</td>
-            </tr>
-        </thead>
-        <tbody id='oils-selfck-fines-tbody'>
-            <tr id='oils-selfck-fines-row'>
-                <td><input type='checkbox' name='selector' checked='checked'/></td>
-                <td name='type'></td>
-                <td name='details'></td>
-                <td name='total_owed'></td>
-                <td name='total_paid'></td>
-                <td name='balance' style='color:red;'></td>
-            </tr>
-        </tbody>
-    </table>
-</div>
diff --git a/Open-ILS/src/templates/default/circ/selfcheck/holds_page.tt2 b/Open-ILS/src/templates/default/circ/selfcheck/holds_page.tt2
deleted file mode 100644 (file)
index 3336249..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<div id='oils-selfck-hold-table-div'>
-    <table id='oils-selfck-hold-table' class='oils-selfck-item-table'>
-        <thead>
-            <tr>
-                <td id='oils-self-hold-pic-cell'></td>
-                <td>Title</td>
-                <td>Author</td>
-                <td>Status</td>
-            </tr>
-        </thead>
-        <tbody id='oils-selfck-hold-tbody'>
-            <tr id='oils-selfck-hold-row'>
-                <td><img class='oils-selfck-jacket' name='jacket'/></td>
-                <td name='title'></td>
-                <td name='author'></td>
-                <td name='status'></td>
-            </tr>
-        </tbody>
-    </table>
-</div>
diff --git a/Open-ILS/src/templates/default/circ/selfcheck/main.tt2 b/Open-ILS/src/templates/default/circ/selfcheck/main.tt2
deleted file mode 100644 (file)
index 888ff4c..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-[% ctx.page_title = 'Self Checkout' %]
-[% WRAPPER default/base.tt2 %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/circ/selfcheck/selfcheck.js'> </script>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/circ/selfcheck/payment.js"></script>
-<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/selfcheck.css'/>
-[% INCLUDE 'default/circ/selfcheck/audio_config.tt2' %]
-
-<div id='oils-selfck-top-div'>
-    [% INCLUDE 'default/circ/selfcheck/banner.tt2' %]
-</div>
-<div id='oils-selfck-bottom-div'>
-    <div id='oils-selfck-content-div'>
-        <div id='oils-selfck-content-header'>
-            <span><a id='oils-selfck-print-list-link' href='javascript:void(0);'>Print List</a></span>
-        </div>
-        <div id='oils-selfck-circ-page' class='hidden'>
-            <!-- Checkout / renewal and items out interface -->
-            [% INCLUDE 'default/circ/selfcheck/circ_page.tt2' %]
-        </div>
-        <div id='oils-selfck-holds-page' class='hidden'>
-            <!-- Patron holds interface -->
-            [% INCLUDE 'default/circ/selfcheck/holds_page.tt2' %]
-        </div>
-        <div id='oils-selfck-fines-page' class='hidden'>
-            <!-- Fines and interface -->
-            [% INCLUDE 'default/circ/selfcheck/fines.tt2' %]
-        </div>
-        <div id='oils-selfck-payment-page' class='hidden'>
-            <!-- credit card payments interface -->
-            [% INCLUDE 'default/circ/selfcheck/payment.tt2' %]
-        </div>
-    </div>
-    <div id='oils-selfck-summary-div'>
-        [% INCLUDE 'default/circ/selfcheck/summary.tt2' %]
-    </div>
-</div>
-<div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'></div>
-<div dojoType="dijit.Dialog" jsId='oilsSelfckWsDialog' class='oils-login-dialog' style='display:none;'>
-    <form>
-        <table>
-            <tr>
-                <td>Choose a location</td>
-                <td><div dojoType='openils.widget.OrgUnitFilteringSelect' jsId='oilsSelfckWsLocSelector' 
-                    searchAttr='shortname' labelAttr='shortname'/></td>
-            </tr>
-            <tr>
-                <td>Enter a workstation name</td>
-                <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckWsName'/></td>
-            </tr>
-            <tr>
-                <td colspan='2' align='center'>
-                    <button jsId='oilsSelfckWsSubmit' dojoType='dijit.form.Button'>Submit</button>
-                </td>
-            </tr>
-        </table>
-    </form>
-</div>
-[% END %]
-
-
-
diff --git a/Open-ILS/src/templates/default/circ/selfcheck/patron_login.tt2 b/Open-ILS/src/templates/default/circ/selfcheck/patron_login.tt2
deleted file mode 100644 (file)
index da65d79..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<div>Please login using your library barcode</div>
-<div class='oils-selfck-login-box'>
-    <input jsId='selfckBarcodeBox' dojoType='dijit.form.TextBox'></input>
-</div>
-<div id='oils-selfck-login-pw' class='hidden oils-selfck-login-box'>
-    <input jsId='selfckPwBox' dojoType='dijit.form.TextBox'></input>
-</div>
diff --git a/Open-ILS/src/templates/default/circ/selfcheck/payment.tt2 b/Open-ILS/src/templates/default/circ/selfcheck/payment.tt2
deleted file mode 100644 (file)
index f4fe97e..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<div id='oils-selfck-cc-payment-summary'>
-    Total amount to pay: $<span></span>
-</div>
-<table id='oils-selfck-cc-payment-table'>
-    <tbody>
-        <!-- Technically not needed since card type is derived from the CC number
-        <tr>
-            <td>Type of Card</td>
-            <td>
-                <select dojoType='dijit.form.FilteringSelect' jsId='oilsSelfckCCType' required='true'>
-                    <option value='VISA'>VISA</option>
-                    <option value='MasterCard'>MasterCard</option>
-                    <option value='American Express'>American Express</option>
-                </select>
-            </td>
-        </tr>
-        -->
-        <tr>
-            <td>Credit Card #</td>
-            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCNumber' required='true'/></td>
-        </tr>
-        <tr>
-            <td>CVV #</td>
-            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCCVV' required='true'/></td>
-        </tr>
-        <tr>
-            <td>Exipration Month</td>
-            <td>
-                <select dojoType='dijit.form.FilteringSelect' jsId='oilsSelfckCCMonth' required='true'>
-                    <option value='01' selected='selected'>Jan</option>
-                    <option value='02'>Feb</option>
-                    <option value='03'>Mar</option>
-                    <option value='04'>April</option>
-                    <option value='05'>May</option>
-                    <option value='06'>June</option>
-                    <option value='07'>July</option>
-                    <option value='08'>Aug</option>
-                    <option value='09'>Sept</option>
-                    <option value='10'>Oct</option>
-                    <option value='11'>Nov</option>
-                    <option value='12'>Dec</option>
-                </select>
-            </td>
-        </tr>
-        <tr>
-            <td>Expiration Year</td>
-            <td><input dojoType='dijit.form.NumberSpinner' constraints='{pattern:"0000", places:0, maxlength:4}' jsId='oilsSelfckCCYear' required='true'/></td>
-        </tr>
-        <tr>
-            <td>Edit Billing Details</td>
-            <td><input dojoType='dijit.form.CheckBox' jsId='oilsSelfckEditDetails'/></td>
-        </tr>
-        <tr>
-            <td>First Name</td>
-            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCFName' disabled='disabled' required='true'/></td>
-        </tr>
-        <tr>
-            <td>Last Name</td>
-            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCLName' disabled='disabled' required='true'/></td>
-        </tr>
-        <tr>
-            <td>Street Address</td>
-            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCStreet' disabled='disabled' required='true'/></td>
-        </tr>
-        <tr>
-            <td>City</td>
-            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCCity' disabled='disabled' required='true'/></td>
-        </tr>
-        <tr>
-            <td>State or Province</td>
-            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCState' disabled='disabled' required='true'/></td>
-        </tr>
-        <tr>
-            <td>ZIP or Postal Code</td>
-            <td><input dojoType='dijit.form.TextBox' jsId='oilsSelfckCCZip' disabled='disabled' required='true'/></td>
-        </tr>
-        <tr>
-            <td colspan='2' align='center'>
-                <button dojoType='dijit.form.Button' jsId='oilsSelfckCCSubmit'>Submit Payment</button>
-            </td>
-        </tr>
-    </tbody>
-</table>
diff --git a/Open-ILS/src/templates/default/circ/selfcheck/summary.tt2 b/Open-ILS/src/templates/default/circ/selfcheck/summary.tt2
deleted file mode 100644 (file)
index b037ad7..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<div id='oils-selfck-circ-info-div'>
-    <div id='oils-selfck-info-nav'>
-        <span><a id='oils-selfck-nav-home' href='javascript:void(0);' class='selected'>Home</a></span>
-        <span><a id='oils-selfck-nav-logout-print' href='javascript:void(0);'>Logout</a></span>
-        <span><a id='oils-selfck-nav-logout' href='javascript:void(0);'>Logout (No Receipt)</a></span>
-    </div>
-    <fieldset>
-        <legend>Items Checked Out</legend>
-        <div id='oils-selfck-circ-session-total'></div>
-        <div id='oils-selfck-circ-account-total'></div>
-        <div><a href='javascript:void(0);' id='oils-selfck-items-out-details-link'>View Items Out</a></div>
-    </fieldset>
-    <fieldset>
-        <legend>Holds</legend>
-        <div id='oils-selfck-holds-ready'></div>
-        <div id='oils-selfck-holds-total'></div>
-        <div><a href='javascript:void(0);' id='oils-selfck-hold-details-link'>View Holds</a></div>
-    </fieldset>
-    <fieldset>
-        <legend>Fines</legend>
-        <div id='oils-selfck-fines-total'></div>
-        <div>
-            <span><a href='javascript:void(0);' id='oils-selfck-view-fines-link'>View Details</a></span>
-        </div>
-    </fieldset>
-</div>
-
diff --git a/Open-ILS/src/templates/default/conify/global/acq/cancel_reason.tt2 b/Open-ILS/src/templates/default/conify/global/acq/cancel_reason.tt2
deleted file mode 100644 (file)
index 4595ab6..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Cancel Reasons' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/cancel_reason.js'> </script>
-
-<!-- grid -->
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>PO / Item / Request Cancellation Reasons</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='crGrid.showCreateDialog()'>New Cancel Reason</button>
-                <button dojoType='dijit.form.Button' onClick='crGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div>
-            <span>Context Org Unit</span>
-            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='contextOrgSelector'
-                searchAttr='shortname' labelAttr='shortname'> </select>
-        </div>
-        <table  jsId="crGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'org_unit', 'label', 'description']"
-                query="{id: '*'}"
-                defaultCellWidth='"auto"'
-                fmClass='acqcr'
-                showPaginator='true'
-                editOnEnter='true'>
-        </table>
-    </div>
-</div>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/acq/claim_event_type.tt2 b/Open-ILS/src/templates/default/conify/global/acq/claim_event_type.tt2
deleted file mode 100644 (file)
index ab91d78..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Claim Event Types' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-         layoutAlign="top" class="oils-header-panel">
-        <div>Claim Event Types</div>
-        <div>
-            <button onclick="grid.showCreateDialog()">
-                New Claim Event Type
-            </button>
-            <button onclick="grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div class="oils-acq-basic-roomy">
-        <span>Show claim event types available to</span>
-        <select
-            dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId="ownerSelect" searchAttr="shortname"
-            labelAttr="shortname">
-        </select>
-    </div>
-    <table jsId="grid"
-        dojoType="openils.widget.AutoGrid"
-        fieldOrder="['code', 'org_unit', 'description']"
-        suppressFields="['id']"
-        query="{id: '*'}"
-        defaultCellWidth="20"
-        fmClass="acqclet"
-        showPaginator="true"
-        editOnEnter="true">
-    </table>
-</div>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/claim_grid.js"></script>
-<script type="text/javascript">
-openils.Util.addOnLoad(
-    function() {
-        prepareOwnerSelector("ADMIN_ACQ_CLAIM_EVENT_TYPE");
-        populateGrid();
-    }
-);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/acq/claim_policy.tt2 b/Open-ILS/src/templates/default/conify/global/acq/claim_policy.tt2
deleted file mode 100644 (file)
index 9bfa598..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Claim Policies' %]
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-         layoutAlign="top" class="oils-header-panel">
-        <div>Claim Policies</div>
-        <div>
-            <button onclick="grid.showCreateDialog()">New Claim Policy</button>
-            <button onclick="grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div class="oils-acq-basic-roomy">
-        <span>Show claim policies available to</span>
-        <select
-            dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId="ownerSelect" searchAttr="shortname"
-            labelAttr="shortname">
-        </select>
-    </div>
-    <table jsId="grid"
-        dojoType="openils.widget.AutoGrid"
-        fieldOrder="['name', 'org_unit', 'description']"
-        suppressFields="['id']"
-        query="{id: '*'}"
-        defaultCellWidth="20"
-        fmClass="acqclp"
-        showPaginator="true"
-        editOnEnter="true">
-    </table>
-</div>
-
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/claim_grid.js"></script>
-<script type="text/javascript">
-openils.Util.addOnLoad(
-    function() {
-        prepareOwnerSelector("ADMIN_CLAIM_POLICY");
-        populateGrid("[% ctx.page_args.0 %]");
-    }
-);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/acq/claim_policy_action.tt2 b/Open-ILS/src/templates/default/conify/global/acq/claim_policy_action.tt2
deleted file mode 100644 (file)
index 603b543..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Claim Policy Actions' %]
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-         layoutAlign="top" class="oils-header-panel">
-        <div>Claim Policy Actions</div>
-        <div>
-            <button onclick="grid.showCreateDialog()">
-                New Claim Policy Action
-            </button>
-            <button onclick="grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <table jsId="grid"
-        dojoType="openils.widget.AutoGrid"
-        suppressFields="['id']"
-        query="{id: '*'}"
-        defaultCellWidth="20"
-        fmClass="acqclpa"
-        showPaginator="true"
-        editOnEnter="true">
-    </table>
-</div>
-
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/claim_grid.js"></script>
-<script type="text/javascript">
-openils.Util.addOnLoad(
-    function() {
-        /* XXX TODO support URI param for claim_policy search constraint */
-        populateGrid();
-    }
-);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/acq/claim_type.tt2 b/Open-ILS/src/templates/default/conify/global/acq/claim_type.tt2
deleted file mode 100644 (file)
index 7f0fbc3..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Claim Types' %]
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-         layoutAlign="top" class="oils-header-panel">
-        <div>Claim Types</div>
-        <div>
-            <button onclick="grid.showCreateDialog()">New Claim Type</button>
-            <button onclick="grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div class="oils-acq-basic-roomy">
-        <span>Show claim types available to</span>
-        <select
-            dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId="ownerSelect" searchAttr="shortname"
-            labelAttr="shortname">
-        </select>
-    </div>
-    <table jsId="grid"
-        dojoType="openils.widget.AutoGrid"
-        fieldOrder="['code', 'org_unit', 'description']"
-        suppressFields="['id']"
-        query="{id: '*'}"
-        defaultCellWidth="20"
-        fmClass="acqclt"
-        showPaginator="true"
-        editOnEnter="true">
-    </table>
-</div>
-
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/claim_grid.js"></script>
-<script type="text/javascript">
-openils.Util.addOnLoad(
-    function() {
-        prepareOwnerSelector("ADMIN_ACQ_CLAIM_TYPE");
-        populateGrid();
-    }
-);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/acq/distribution_formula.tt2 b/Open-ILS/src/templates/default/conify/global/acq/distribution_formula.tt2
deleted file mode 100644 (file)
index 13b8647..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Distribution Formulas' %]
-
-<div id='formula-list-div'>
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-            <div>Distribution Formulas</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='fListGrid.showCreateDialog()'>New Formula</button>
-                <button dojoType='dijit.form.Button' onClick='fListGrid.deleteSelected()'>Delete Selected</button>
-                <button dojoType='dijit.form.Button' onClick='cloneSelectedFormula()'>Clone Selected</button>
-            </div>
-        </div>
-        <table  jsId="fListGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'name', 'owner', 'item_count']"
-                suppressFields="['skip_count']"
-                query="{id: '*'}"
-                defaultCellWidth='12'
-                fmClass='acqdf'
-                autoHeight='true'
-                editOnEnter='true'>
-            <thead>
-                <tr>
-                    <th field='name' get='getFormulaName' formatter='formatName'/>
-                    <th field='item_count' get='getItemCount'/>
-                </tr>
-            </thead>
-        </table>
-    </div>
-</div>
-
-
-<div id='formula-entry-div'>
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-        <div><a href='javascript:void(0);' id="formula_head"></a></div>
-        <div>
-        </div>
-    </div>
-    <br/>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='addEntry()'>New Entry</button>
-        <span style='padding-right:20px;'></span>
-        <button dojoType='dijit.form.Button' onClick='saveFormula()'>Apply Changes</button>
-    </div>
-    <br/>
-    <table class='oils-generic-table'>
-        <thead>
-            <tr>
-                <th></th>
-                <th>Owning Library</th>
-                <th>Shelving Location</th>
-                <th>Item Count</th>
-                <th></th>
-            </tr>
-        </thead>
-        <tbody id='formula-entry-tbody'>
-            <tr id='formula-entry-tempate'>
-                <td><div name='delete' dojoType='dijit.form.Button' style='color:red;' scrollOnFocus='false'>X</div></td>
-                <td><div name='owning_lib'></td>
-                <td><div name='location'></td>
-                <td><div name='item_count'></td>
-                <td>
-                    <img src='[% ctx.media_prefix %]/images/dimple.png'/>
-                    <img src='[% ctx.media_prefix %]/images/dimple.png'/>
-                    <img src='[% ctx.media_prefix %]/images/dimple.png'/>
-                <td>
-            </tr>
-        </tbody>
-    </table>
-    <br/>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='addEntry()'>New Entry</button>
-        <span style='padding-right:20px;'></span>
-        <button dojoType='dijit.form.Button' onClick='saveFormula()'>Apply Changes</button>
-    </div>
-</div>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/distribution_formula.js'></script>
-
-<script type="text/javascript"> 
-    var formulaId = '[% ctx.page_args.0 %]';
-
-    function getFormulaName(rowIndex, item) {
-        if(!item) return '';
-        var name = this.grid.store.getValue(item, 'name');
-        var id = this.grid.store.getValue(item, 'id');
-        return id + ':' + name;
-    }
-
-    function formatName(value) {
-        if(value) {
-            var vals = value.split(/:/);
-            return '<a href="'+location.href+ '/'+vals[0]+'">'+vals[1]+'</a>';
-        }
-    }
-</script>
-
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/conify/global/acq/edi_account.tt2 b/Open-ILS/src/templates/default/conify/global/acq/edi_account.tt2
deleted file mode 100644 (file)
index eebadd4..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'EDI Accounts' %]
-<style type="text/css">
-    .footer_notes { padding-top: 16px; font-size: smaller; }
-</style>
-
-<div id='main-list-div'>
-    <div dojoType="dijit.layout.ContentPane" layoutAlign='top'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>EDI Accounts</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='pListGrid.showCreateDialog()'>New Account</button>
-                <button dojoType='dijit.form.Button' onClick='pListGrid.deleteSelected()'>Delete Selected</button> 
-            </div>
-        </div>
-    </div>
-    <!--
-    <div>
-        <span>Context Org Unit</span>
-        <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='btContextOrgSelect'
-            searchAttr='shortname' labelAttr='shortname'> </select>
-    </div>
-    -->
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <table  jsId="pListGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'label', 'host', 'username', 'password', 'account', 'owner', 'last_activity', 'provider', 'path', 'in_dir', 'vendacct', 'vendcode']"
-                requiredFields="['label', 'host', 'provider', 'owner']"
-                query="{id: '*'}"
-                defaultCellWidth='"auto"'
-                fmClass='acqedi'
-                showPaginator='true'
-                editOnEnter='true'>
-            <thead>
-                <tr>
-                    <th field='provider' get='getProvider' formatter='formatProvider'/>
-                    <th field='owner' get='getOwner'/>
-                </tr>
-            </thead>
-        </table>
-    </div>
-    <div class="footer_notes">
-        <b>Username</b>, <b>Password</b> and <b>Account</b> are (s)FTP/SSH parameters.<br />
-        <b>Account</b> is unlikely to be used by modern systems and should typically be empty.<br />
-        <b>Vendor Account Number</b> (VAN) is vendor-assigned, only needed if different than the org_unit SAN.<br />
-        <b>Vendor Assigned Code</b> (VAC) is essentially a sub-account designation, e.g. '0001'.  It can be used with or without VAN.<br />
-        The location of codes in the EDI message itself may vary according to vendor-specific semantics.
-    </div>
-</div>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/edi_account.js'> </script>
-
-<script type="text/javascript">
-// dojo.require('openils.widget.OrgUnitFilteringSelect');
-dojo.require('fieldmapper.OrgUtils');
-
-var targetId = '[% ctx.page_args.0 %]';
-
-function getOrgName(orgId) {
-    return fieldmapper.aou.findOrgUnit(orgId).shortname();
-}
-function getOwner(rowIndex, item) {
-    if (!item) return '';
-    var id = this.grid.store.getValue(item, 'owner');
-    return getOrgName(id);
-}
-function getProvider(rowIndex, item) {
-    if (!item) return '';
-    var id = this.grid.store.getValue(item, 'provider');
-    return id + ':' + id;   // TODO: get acq.provider.code from fieldmapper or elsewhere
-}
-function formatProvider(value) {
-    if (value) {
-        var vals = value.split(/:/);
-        return '<a href="[% ctx.base_path %]/conify/global/acq/provider/'+vals[0]+'">'+vals[1]+'</a>';
-    }
-}
-</script>
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/conify/global/acq/exchange_rate.tt2 b/Open-ILS/src/templates/default/conify/global/acq/exchange_rate.tt2
deleted file mode 100644 (file)
index 47694e6..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Exchange Rates' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-    <div>Exchange Rates</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='erGrid.showCreateDialog()'>New Exchange Rate</button>
-        <button dojoType='dijit.form.Button' onClick='erGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="erGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['id', 'from_currency', 'to_currency', 'ratio']"
-            defaultCellWidth='12'
-            query="{id: '*'}"
-            fmClass='acqexr'
-            editOnEnter='true'>
-    </table>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.widget.AutoGrid');
-    dojo.require('dijit.form.FilteringSelect');
-    openils.Util.addOnLoad(
-        function() {
-            erGrid.loadAll({order_by:{acqpro : 'name'}});
-        }
-    );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/acq/fund_tag.tt2 b/Open-ILS/src/templates/default/conify/global/acq/fund_tag.tt2
deleted file mode 100644 (file)
index b3368b3..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Fund Tags' %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/acq/fund_tag.js"> </script>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-         layoutAlign="top" class="oils-header-panel">
-        <div>Fund Tags</div>
-        <div>
-            <button dojoType="dijit.form.Button"
-                onClick="ftGrid.showCreateDialog()">New Fund Tag</button>
-            <button dojoType="dijit.form.Button"
-                onClick="ftGrid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div class="oils-acq-basic-roomy">
-        <span>Show tags available to</span>
-        <select
-            dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId="ftOwnerSelect"
-            searchAttr="shortname" labelAttr="shortname">
-        </select>
-    </div>
-    <table jsId="ftGrid"
-        dojoType="openils.widget.AutoGrid"
-        fieldOrder="['id', 'owner', 'name']"
-        query="{id: '*'}"
-        fmClass="acqft"
-        editOnEnter="true">
-    </table>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/acq/invoice_item_type.tt2 b/Open-ILS/src/templates/default/conify/global/acq/invoice_item_type.tt2
deleted file mode 100644 (file)
index b1eeced..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Invoice Item Types' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-    <div>Invoice Item Types</div>
-    <div>
-        <button dojoType="dijit.form.Button" onClick="aiitGrid.showCreateDialog();">New Invoice Item Type</button>
-        <button dojoType="dijit.form.Button" onClick="aiitGrid.deleteSelected();">Delete Selected</button>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="aiitGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['code', 'name', 'prorate']"
-            defaultCellWidth="'auto'"
-            query="{id: '*'}"
-            fmClass="aiit"
-            editOnEnter="true">
-    </table>
-</div>
-
-<script type="text/javascript">
-    dojo.require("openils.widget.AutoGrid");
-    dojo.require("dijit.form.FilteringSelect");
-    openils.Util.addOnLoad(
-        function() { aiitGrid.loadAll({"order_by": {"aiit": "name"}}); }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/acq/invoice_payment_method.tt2 b/Open-ILS/src/templates/default/conify/global/acq/invoice_payment_method.tt2
deleted file mode 100644 (file)
index 3138991..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Invoice Payment Methods' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-    <div>Invoice Payment Methods</div>
-    <div>
-        <button dojoType="dijit.form.Button" onClick="acqipmGrid.showCreateDialog();">New Invoice Payment Method</button>
-        <button dojoType="dijit.form.Button" onClick="acqipmGrid.deleteSelected();">Delete Selected</button>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="acqipmGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['code', 'name']"
-            defaultCellWidth="'auto'"
-            query="{id: '*'}"
-            fmClass="acqipm"
-            editOnEnter="true">
-    </table>
-</div>
-
-<script type="text/javascript">
-    dojo.require("openils.widget.AutoGrid");
-    dojo.require("dijit.form.FilteringSelect");
-    openils.Util.addOnLoad(
-        function() { acqipmGrid.loadAll({"order_by": {"acqipm": "name"}}); }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/acq/lineitem_alert.tt2 b/Open-ILS/src/templates/default/conify/global/acq/lineitem_alert.tt2
deleted file mode 100644 (file)
index 33079c0..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Line Item Alerts' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/lineitem_alert.js'> </script>
-
-<!-- grid -->
-
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Line Item Alert Text</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='alertGrid.showCreateDialog()'>New Line Item Alert Text</button>
-                <button dojoType='dijit.form.Button' onClick='alertGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div>
-            <span>Context Org Unit</span>
-            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='alertContextOrgSelect'
-                searchAttr='shortname' labelAttr='shortname'> </select>
-        </div>
-        <table  jsId="alertGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'code', 'description', 'owning_lib']"
-                query="{id: '*'}"
-                defaultCellWidth='20'
-                fmClass='acqliat'
-                editOnEnter='true'>
-        </table>
-    </div>
-</div>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/acq/lineitem_marc_attr_def.tt2 b/Open-ILS/src/templates/default/conify/global/acq/lineitem_marc_attr_def.tt2
deleted file mode 100644 (file)
index efa0295..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Line Item MARC Attributes' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/lineitem_marc_attr_def.js'> </script>
-
-<!-- grid -->
-
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Line Item MARC Attribute Definition Editor</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='attrGrid.showCreateDialog()'>New Attribute</button>
-                <button dojoType='dijit.form.Button' onClick='attrGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <table  jsId="attrGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'code', 'description', 'tag', 'subfield', 'ident', 'remove', 'xpath']"
-                query="{id: '*'}"
-                defaultCellWidth='"auto"'
-                fmClass='acqlimad'
-                editOnEnter='true'>
-            <thead>
-                <tr>
-                    <th field='tag' get='attrGridGetTag'>Tag</th>
-                    <th field='subfield' get='attrGridGetSubfield'>Subfield</th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-</div>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/acq/provider.tt2 b/Open-ILS/src/templates/default/conify/global/acq/provider.tt2
deleted file mode 100644 (file)
index 05f9e6b..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Providers' %]
-
-<div class="hidden">
-    <select dojoType="dijit.form.FilteringSelect" jsId="nameSelect">
-        <option value='owning_lib'>Owning Library</option>
-        <option value='quantity'>Quantity</option>
-        <option value='call_number'>Call Number</option>
-        <option value='fund_code'>Fund Code</option>
-        <option value='local_note'>Local Note</option>
-        <option value='price'>Price</option>
-        <option value='circ_modifier'>Circulation Modifier</option>
-        <option value='copy_location'>Copy Location</option>
-        <option value='collection_code'>Collection Code</option>
-    </select>
-</div> 
-
-<div id='provider-list-div'>
-    <div dojoType="dijit.layout.ContentPane" layoutAlign='top'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Provider</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='pListGrid.showCreatePane()'>New Provider</button>
-                <button dojoType='dijit.form.Button' onClick='pListGrid.deleteSelected()'>Delete Selected</button> 
-            </div>
-        </div>
-    </div>
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <table  jsId="pListGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'name', 'code', 'owner', 'currency_type']"
-                query="{id: '*'}"
-                defaultCellWidth='"auto"'
-                fmClass='acqpro'
-                showPaginator='true'
-                editOnEnter='true'>
-            <thead>
-                <tr><th field='name' get='getProviderName' formatter='formatName'/></tr>
-            </thead>
-        </table>
-    </div>
-</div>
-
-<div id='provider-summary-pane'></div>     
-<div id='provider-details-div' style='height:600px'>
-<div dojoType="dijit.layout.TabContainer" style='height:100%' jsId='providerTabs'>
-
-    <div dojoType="dijit.layout.ContentPane" title='Provider Address' select='true' id='provider-address'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Provider Address</div>
-            <div>
-            <button dojoType='dijit.form.Button' onClick='paListGrid.showCreateDialog()'>New Provider Address</button>
-            <button dojoType='dijit.form.Button' onClick='paListGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:100px'>
-            <table  jsId="paListGrid"
-                    dojoType="openils.widget.AutoGrid"
-                    fieldOrder="['id', 'address_type', 'provider', 'street1', 'street2', 'city', 'county', 'state', 'country', 'post_code']"
-                    requiredFields="['street1', 'city', 'state', 'country', 'post_code']"
-                    query="{id: '*'}"
-                    fmClass='acqpa'
-                    defaultCellWidth='"auto"' 
-                    editOnEnter='true'>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.layout.ContentPane" title='Provider Contact' id='tab-pro-contact'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Provider Contact</div>
-            <div>
-            <button dojoType='dijit.form.Button' onClick='pcListGrid.showCreateDialog()'>New Contact</button>
-            <button dojoType='dijit.form.Button' onClick='pcListGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:200px'>
-            <table  jsId="pcListGrid"
-                    dojoType="openils.widget.AutoGrid"
-                    fieldOrder="['id', 'name', 'provider', 'role', 'email']"
-                    requiredFields="['name']"
-                    defaultCellWidth='"auto"'
-                    query="{id: '*'}"
-                    fmClass='acqpc'
-                    editOnEnter='true'>
-            </table>
-        </div>
-      
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Contact Address</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='pcaListGrid.showCreateDialog()'>New Contact Address</button>
-                <button dojoType='dijit.form.Button' onClick='pcaListGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:200px'>
-            <table  jsId="pcaListGrid"
-                    dojoType="openils.widget.AutoGrid"
-                    fieldOrder="['id', 'address_type', 'contact', 'street1', 'street2', 'city', 'county', 'state', 'country', 'post_code']"
-                    requiredFields="['street1', 'city', 'state', 'country', 'post_code']"
-                    query="{id: '*'}"
-                    fmClass='acqpca'
-                    defaultCellWidth='"auto"' 
-                    editOnEnter='true'>
-            </table>
-        </div>
-       
-    </div>
-    <div dojoType="dijit.layout.ContentPane" title='Attribute Definitions' id='tab-attr'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div> Attribute Definitions</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='padListGrid.showCreateDialog()'>New Attribute Definition</button>
-                <button dojoType='dijit.form.Button' onClick='padListGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:200px'>
-            <table  jsId="padListGrid"
-                    dojoType="openils.widget.AutoGrid"
-                    fieldOrder="['id', 'provider', 'code', 'description',  'provider', 'ident', 'remove',  'tag', 'subfield', 'xpath']"
-                    requiredFields="['code', 'description', 'xpath']"
-                    query="{id: '*'}"
-                    fmClass='acqlipad'
-                    editOnEnter='true'>
-                <thead>
-                    <tr>
-                        <th field="xpath" width='auto'/>
-                        <th field="tag" name="Tag" get='getParsedTag'/>
-                        <th field="subfield" name="Subfield" get='getParsedSubf'/>
-                    </tr>
-                </thead>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.layout.ContentPane" title='Holding Subfield' id='tab-hold'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Holding Subfield</div>
-            <div>
-            <button dojoType='dijit.form.Button' onClick='phsListGrid.showCreateDialog()'>New Holding Subfield</button>
-            <button dojoType='dijit.form.Button' onClick='phsListGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:400px'>
-            <table  jsId="phsListGrid"
-                    dojoType="openils.widget.AutoGrid"
-                    fieldOrder="['id', 'provider', 'name', 'subfield']"
-                    requiredFields="['name', 'subfield']"
-                    query="{id: '*'}"
-                    fmClass='acqphsm'
-                    editOnEnter='true'>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.layout.ContentPane" title="Invoices" id="tab-invoice">
-        <big class="oils-acq-basic-roomy"><strong>Invoices</strong></big>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style="height:400px">
-            <table jsId="invListGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['inv_ident', 'receiver', 'shipper']"
-                suppressFields="['id', 'provider']"
-                query="{id: '*'}"
-                showPaginator='true'
-                fmClass="acqinv">
-                <thead>
-                    <tr>
-                        <th field="inv_ident" get="getInvIdent" formatter="formatInvIdent" />
-                    </tr>
-                </thead>
-            </table>
-        </div>
-    </div>
-</div>
-</div>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/acq/provider.js'> </script>
-
-<script type="text/javascript"> 
-    var providerId = '[% ctx.page_args.0 %]';
-
-function getInvIdent(rowIndex, item) {
-    if (!item) return {};
-    return {
-          "id": this.grid.store.getValue(item, "id"),
-        "name": this.grid.store.getValue(item, "inv_ident")
-    };
-}
-
-function formatInvIdent(o) {
-    return "<a href='" + oilsBasePath + "/acq/invoice/view/" + o.id + "'>" + o.name + "</a>";
-}
-
-function getProviderName(rowIndex, item) {
-    if(!item) return '';
-    var name = this.grid.store.getValue(item, 'name');
-    var id   = this.grid.store.getValue(item, 'id');
-    return id + ':' + name;
-}
-
-function formatName(value) {
-    if(value) {
-        var vals = value.split(/:/);
-        return '<a href="[% ctx.base_path %]/conify/global/acq/provider/'+vals[0]+'">'+vals[1]+'</a>';
-    }
-}
-
-</script>
-
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/conify/global/action/survey.tt2 b/Open-ILS/src/templates/default/conify/global/action/survey.tt2
deleted file mode 100644 (file)
index e08fae7..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-   <div dojoType="dijit.layout.ContentPane" layoutAlign='top'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Survey List</div>
-            <div>
-                <button dojoType='dijit.form.Button' onclick='svNewSurvey();'>Add New Survey</button>
-                <button dojoType='dijit.form.Button' onclick='deleteFromGrid();'>Delete Selected</button>
-                <button dojoType='dijit.form.Button' onclick='endSurvey();'>End Selected Surveys</button>
-            </div>
-        </div>
-
-<!-- grid -->
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:400px'>
-    <table jsId="svGrid" dojoType="dojox.grid.DataGrid" query="{id: '*'}">
-        <thead>
-            <tr>
-                <th field="id">Survey ID</th>
-                <th field="name" formatter='formatName' width='auto'>Name</th>
-                <th field="description" width='auto'>Description</th>                    
-                <th field="owner" get='getOrgInfo'>Owning Library</th>
-                <th field="start_date" width='auto' get='getDateTimeField'>Survey Start Date</th>
-                <th field="end_date" width='auto' get='getDateTimeField'>End Date</th>
-                <th field="opac" formatter='formatBool'>OPAC Survey?</th>                
-                <th field="poll" formatter='formatBool' >Poll Style?</th>
-                <th field="required" formatter='formatBool'>Is Required?</th>
-                <th field="usr_summary" formatter='formatBool'>Display in User Summary?</th>
-            </tr>
-        </thead>
-    </table>    
-</div>
-
-<div style='display:none;' dojoType="dijit.Dialog" jsId='svSurveyDialog' title='New Survey' execute='svCreate(arguments[0]);'>
-
-        <table id='surveyDialog'>
-            <tr>
-                <td>Name</td>
-                <td><input dojoType='dijit.form.TextBox' name='svName'/></td>
-            </tr>
-            <tr>
-                <td>Description</td>
-                <td><input dojoType='dijit.form.TextBox' name='svDescription'></td>
-            </tr>
-            <tr>
-                <td>Owning Library</td>
-                <td><select dojoType='openils.widget.OrgUnitFilteringSelect' name='svOwner' jsId='asvOwningOrg' searchAttr='shortname' labelAttr='shortname'/></td>
-            </tr>
-            <tr>
-                <td>Start Date</td>
-                <td><input dojoType='dijit.form.TextBox' name='svStart_date'></td>
-            </tr>
-            <tr>
-                <td>End Date</td>
-                <td><input dojoType='dijit.form.TextBox' name='svEnd_date'></td>
-            </tr>
-            <tr>
-                <td>OPAC Survey?</td>
-                <td><input dojoType='dijit.form.CheckBox' name='svOpac'></td>
-            </tr>
-            <tr>
-                <td>Poll Style?</td>
-                <td><input dojoType='dijit.form.CheckBox' name='svPoll'></td>
-            </tr>
-            <tr>
-                <td>Is Required?</td>
-                <td><input dojoType='dijit.form.CheckBox' name='svRequired'></td>
-            </tr>
-            <tr>
-                <td>Display in User Summary?</td>
-                <td><input dojoType='dijit.form.CheckBox' name='svUsr_summary'></td>
-            </tr>
-            <tr>
-                <td colspan='2' align='center'>
-                    <button jsId='createSave' dojoType='dijit.form.Button' type='submit'>Save Changes</button>
-
-                    
-                </td>
-            </tr>
-            
-        </table>
-</div>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/action/survey.js'></script>
-<script type="text/javascript">
-    function formatName(inDatum) {
-        for(var i in svCache){
-            var sv = svCache[i];
-            var id = sv.id();
-            if (inDatum  == sv.name()){
-                return '<a href="[% ctx.base_path %]/conify/global/action/survey/edit/'+id+'">'+inDatum+'</a>';
-            }
-        }
-    }
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/action/survey/edit.tt2 b/Open-ILS/src/templates/default/conify/global/action/survey/edit.tt2
deleted file mode 100644 (file)
index f498d8a..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/skin/default/conify.css'/>
-<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/theme/default/conify.css'/>
-
-<!-- General survey info -->
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div id='edit-pane'> </div>
-
-</div>
-
-<!-- question/answer table-->
-<table id='survey_table'>
-</table>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/action/survey/edit.js'></script>
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    var surveyId = [%ctx.page_args.0 %];
-    openils.Util.addOnLoad(function() { drawSurvey(surveyId) });
-</script>
-
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/action_trigger/event_definition.tt2 b/Open-ILS/src/templates/default/conify/global/action_trigger/event_definition.tt2
deleted file mode 100644 (file)
index cb74df4..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Event Definitions' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/action_trigger/event_definition.js'></script>
-<script type="text/javascript">openils.Util.addOnLoad(loadEventDef)</script>
-
-<div class='hidden'>
-    <select dojoType='dijit.form.ComboBox' jsId='eventDefGranularity'>
-        <option value='hourly'>Hourly</option>
-        <option value='daily'>Daily</option>
-        <option value='weekly'>Weekly</option>
-        <option value='monthly'>Monthly</option>
-        <option value='yearly'>Yearly</option>
-    </select>
-</div>
-
-
-<div dojoType="dijit.layout.TabContainer" style='height:100%;' jsId='eventDefTabs'>
-
-    <div dojoType="dijit.layout.ContentPane" title='Event Definitions' id='tab-atevdef'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-            <div>Trigger Event Definitions</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='edGrid.showCreatePane()'>New</button>
-                <button dojoType='dijit.form.Button' onClick='edGrid.showClonePane(cloneEventEnv)'>Clone Selected</button>
-                <button dojoType='dijit.form.Button' onClick='edGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
-            <table  jsId="edGrid" 
-                    dojoType="openils.widget.AutoGrid" 
-                    fieldOrder="['owner', 'name', 'hook', 'active', 'delay', 'delay_field', 'group_field', 'reactor', 'validator']"
-                    suppressFields="['usr_field', 'opt_in_setting', 'max_delay', 'template', 'cleanup_failure', 'cleanup_success']"
-                    query="{id: '*'}" 
-                    fmClass='atevdef'
-                    editStyle='pane'
-                    showPaginator='true'
-                    editOnEnter='true'>
-                <thead>
-                    <tr><th field='name' width='15%' get='getEventDefNameLink' formatter='formatEventDefNameLink'/></tr>
-                </thead>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.layout.ContentPane" title='Hooks' id='tab-ath' style='height:100%;'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Trigger Hooks</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='thGrid.showCreateDialog()'>New</button>
-                <button dojoType='dijit.form.Button' onClick='thGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
-            <table  jsId="thGrid" 
-                    autoHeight='true'
-                    dojoType="openils.widget.AutoGrid" 
-                    fieldOrder="['key', 'core_type', 'description', 'passive']"
-                    query="{key: '*'}" 
-                    fmClass='ath'
-                    defaultCellWidth='20'
-                    showPaginator='true'
-                    editOnEnter='true'>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.layout.ContentPane" title='Reactors' id='tab-atreact'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Trigger Reactors</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='trGrid.showCreateDialog()'>New</button>
-                <button dojoType='dijit.form.Button' onClick='trGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
-            <table  jsId="trGrid" 
-                    dojoType="openils.widget.AutoGrid" 
-                    query="{module: '*'}" 
-                    fmClass='atreact'
-                    showPaginator='true'
-                    editOnEnter='true'>
-                <thead>
-                    <tr>
-                        <th field='module' width='200px;'/>
-                        <th field='description' width='auto'/>
-                    </tr>
-                </thead>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.layout.ContentPane" title='Validators' id='tab-atval'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Trigger Validators</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='tvGrid.showCreateDialog()'>New</button>
-                <button dojoType='dijit.form.Button' onClick='tvGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
-            <table  jsId="tvGrid" 
-                    dojoType="openils.widget.AutoGrid" 
-                    query="{module: '*'}" 
-                    fmClass='atval'
-                    showPaginator='true'
-                    editOnEnter='true'>
-                <thead>
-                    <tr>
-                        <th field='module' width='200px'/>
-                        <th field='description' width='auto'/>
-                    </tr>
-                </thead>
-            </table>
-        </div>
-    </div>
-
-</div>
-
-<div jsId='progressDialog' dojoType='openils.widget.ProgressDialog' indeterminate='true'></div>
-
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/conify/global/action_trigger/event_definition_data.tt2 b/Open-ILS/src/templates/default/conify/global/action_trigger/event_definition_data.tt2
deleted file mode 100644 (file)
index 997af3d..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
-    <h2 id='at-event-def-name'/>
-</div>
-
-<div dojoType="dijit.layout.TabContainer" style='height:100%;' jsId='eventDefTabs'>
-
-    <div dojoType="dijit.layout.ContentPane" title='Event Environment' id='tab-atenv'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Trigger Event Environment</div>
-            <div>   
-                <button dojoType='dijit.form.Button' onClick='teeGrid.showCreateDialog()'>New</button>
-                <button dojoType='dijit.form.Button' onClick='teeGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
-            <table  jsId="teeGrid" 
-                    dojoType="openils.widget.AutoGrid" 
-                    fieldOrder="['id', 'event_def', 'path', 'collector', 'label']"
-                    query="{id: '*'}" 
-                    fmClass='atenv'
-                    defaultCellWidth='20'
-                    editOnEnter='true'>
-            </table>
-        </div>
-    </div>
-
-
-    <div dojoType="dijit.layout.ContentPane" title='Event Parameters' id='tab-atevparam'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Trigger Event Parameters</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='tepGrid.showCreateDialog()'>New</button>
-                <button dojoType='dijit.form.Button' onClick='tepGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
-            <table  jsId="tepGrid" 
-                    dojoType="openils.widget.AutoGrid" 
-                    fieldOrder="['id', 'event_def', 'param', 'value']"
-                    query="{id: '*'}" 
-                    fmClass='atevparam'
-                    defaultCellWidth='20'
-                    editOnEnter='true'>
-            </table>
-        </div>
-    </div>
-
-    <div dojoType="dijit.layout.ContentPane" title='Test' id='tab-test'>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Event Definition Tests</div>
-            <div></div>
-        </div>
-        <br/>
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="client" style='height:600px'>
-            <div style='border:1px solid #aaa;' id='at-test-none'>
-                No tests for this type of event definition hook
-            </div>
-            <div style='border:1px solid #aaa;' id='at-test-circ' class='hidden'>
-                <h2>Test Circulation</h2>
-                <table class='oils-generic-table'>
-                    <tr>
-                        <td>Barcode of Circulating Copy</td>
-                        <td><div dojoType='dijit.form.TextBox' jsId='circTestBarcode'/></td>
-                    </tr>
-                    <tr>
-                        <td colspan='2'><button dojoType='dijit.form.Button' onclick='evtTestCirc'>Go</button></td>
-                    </tr>
-                </table>
-            </div>
-
-            <div id='test-event-output' style='width:90%;margin:20px;border:1px solid #aaa;' class='hidden'>
-            </div>
-            <div jsId='progressDialog' dojoType='openils.widget.ProgressDialog' indeterminate='true'></div>
-        </div>
-    </div>
-
-</div>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/action_trigger/event_definition.js'></script>
-<script type="text/javascript">
-    eventDefId = [% ctx.page_args.0 %];
-    openils.Util.addOnLoad(loadEventDefData)
-</script>
-
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/asset/copy_location_order.tt2 b/Open-ILS/src/templates/default/conify/global/asset/copy_location_order.tt2
deleted file mode 100644 (file)
index 77548af..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Copy Location Order' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/asset/copy_location_order.js'> </script>
-<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/js/dojo/dojo/resources/dnd.css'/>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-    <div>Copy Location Order</div>
-    <div></div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <span>Context Org Unit</span>
-    <select dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId='contextOrgSelector'
-            searchAttr='shortname'
-            labelAttr='shortname'>
-    </select>
-    <button dojoType='dijit.form.Button' onClick='applyChanges()'>Apply Changes</button>
-    <span>To move an item, drag it up or down with the mouse.</span>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <ol id='acl-ol'></ol>
-</div>
-
-<div class='hidden'>
-    <div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'/>
-</div>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/asset/copy_template.tt2 b/Open-ILS/src/templates/default/conify/global/asset/copy_template.tt2
deleted file mode 100644 (file)
index f36feb4..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Copy Templates" %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/conify/global/asset/copy_template.js"> </script>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-         layoutAlign="top" class="oils-header-panel">
-        <div>Copy Templates</div>
-        <div>
-            <button dojoType="dijit.form.Button"
-                onClick="actGrid.showCreatePane()">New Copy Template</button>
-            <button dojoType="dijit.form.Button"
-                onClick="actGrid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div class="oils-acq-basic-roomy">
-        <span>Show templates available at or above</span>
-        <select
-            dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId="actOwnerSelect"
-            searchAttr="shortname" labelAttr="shortname">
-        </select>
-    </div>
-    <table jsId="actGrid"
-        dojoType="openils.widget.AutoGrid"
-        fieldOrder="['name','owning_lib','circulate','holdable','opac_visible','loan_duration','fine_level','location','circ_modifier','floating','deposit','ref','mint_condition']"
-        suppressFields="['creator','editor','edit_date','create_date','circ_lib']"
-        suppressEditFields="['creator','editor','edit_date','create_date','circ_lib']"
-        query="{id: '*'}"
-        editStyle="pane"
-        fmClass="act"
-        autoHeight="true"
-        createPaneOnSubmit="create_or_update_act"
-        editPaneOnSubmit="create_or_update_act"
-        editOnEnter="true">
-    </table>
-    <div class="hidden">
-        <!-- these FilteringSelects will be attached manually to actGrid -->
-        <select required="false" dojoType="dijit.form.FilteringSelect"
-            jsId="special_fine_level">
-            <option value="1">Low</option>
-            <option value="2">Normal</option>
-            <option value="3">High</option>
-        </select>
-        <select required="false" dojoType="dijit.form.FilteringSelect"
-            jsId="special_loan_duration">
-            <option value="1">Short</option>
-            <option value="2">Normal</option>
-            <option value="3">Long</option>
-        </select>
-    </div>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/biblio/monograph_part.tt2 b/Open-ILS/src/templates/default/conify/global/biblio/monograph_part.tt2
deleted file mode 100644 (file)
index ee1256b..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Configure Monograph Parts' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Monograph Parts</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='monoPartGrid.showCreateDialog()'>New Monograph Part</button>
-            <button dojoType='dijit.form.Button' onClick='monoPartGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="monoPartGrid"
-            dojoType="openils.widget.AutoGrid"
-            autoHeight='true'
-            fieldOrder="['label']"
-            suppressFields="['id','record','label_sortkey']"
-            suppressEditFields="['id','label_sortkey']"
-            query="{id: null}"
-            fmClass='bmp'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.CGI');
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-
-    var cgi = new openils.CGI();
-    openils.Util.addOnLoad( function() {
-        monoPartGrid.overrideEditWidgets.record = new dijit.form.TextBox({"disabled": true});
-        monoPartGrid.overrideEditWidgets.record.shove = { create : cgi.param('r') };
-        monoPartGrid.loadAll({order_by : {bmp : 'label'}}, {record : cgi.param('r')});
-    });
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/booking/resource.tt2 b/Open-ILS/src/templates/default/conify/global/booking/resource.tt2
deleted file mode 100644 (file)
index 4e3fe1f..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Resources' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-    <div>Resources</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='brsrcGrid.showCreateDialog()'>New Resource</button>
-        <button dojoType='dijit.form.Button' onClick='brsrcGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <span>Context Org Unit</span>
-    <select dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId='contextOrgSelector'
-            searchAttr='shortname'
-            labelAttr='shortname'>
-    </select>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="brsrcGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['owner', 'type', 'barcode',
-                'overbook', 'deposit', 'deposit_amount', 'user_fee']"
-            query="{id: '*'}"
-            fmClass='brsrc'
-            showPaginator='true'
-            autoHeight='true'
-            editOnEnter='true'>
-    </table>
-</div>
-<script type ="text/javascript">
-    dojo.require('dijit.form.FilteringSelect');
-    dojo.require('openils.widget.AutoGrid');
-    dojo.require("openils.widget.PCrudAutocompleteBox");
-    dojo.require('openils.widget.OrgUnitFilteringSelect');
-
-    function filterGrid() {
-        brsrcGrid.resetStore();
-        var unit = contextOrgSelector.getValue();
-        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
-
-        if(unit){
-            brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}}, { 'owner' : list });
-        } else {
-            brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}});
-        }
-    }
-
-    openils.Util.addOnLoad(
-        function() {
-            var org_id = openils.User.user.ws_ou();
-            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
-
-            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE', contextOrgSelector, null, function() {
-                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
-
-            var search = {'owner':list};
-
-            if (xulG && xulG.resultant_brsrc)
-                search = {id: xulG.resultant_brsrc};
-
-            brsrcGrid.overrideEditWidgets.type =
-                new openils.widget.PCrudAutocompleteBox({
-                    "fmclass": "brt", "searchAttr": "name"
-                });
-            brsrcGrid.overrideEditWidgets.type.shove = {"create": ""};
-            brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}}, search);
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/booking/resource_attr.tt2 b/Open-ILS/src/templates/default/conify/global/booking/resource_attr.tt2
deleted file mode 100644 (file)
index b9a3ece..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Resource Attributes' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-    <div>Resource Attributes</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='braGrid.showCreateDialog()'>New Resource Attribute</button>
-        <button dojoType='dijit.form.Button' onClick='braGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <span>Context Org Unit</span>
-    <select dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId='contextOrgSelector'
-            searchAttr='shortname'
-            labelAttr='shortname'>
-    </select>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="braGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'owner', 'resource_type', 'required']"
-            query="{id: '*'}"
-            fmClass='bra'
-            autoHeight='true'
-            showPaginator='true'
-            editOnEnter='true'>
-    </table>
-</div>
-
-<script type ="text/javascript">
-    dojo.require("openils.widget.PCrudAutocompleteBox");
-    dojo.require('openils.widget.AutoGrid');
-    dojo.require('openils.widget.OrgUnitFilteringSelect');
-
-    function filterGrid() {
-        braGrid.resetStore();
-        var unit = contextOrgSelector.getValue();
-        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
-
-        if(unit){
-            braGrid.loadAll({order_by:{bra : 'name'}}, { 'owner' : list });
-        } else {
-            braGrid.loadAll({order_by:{bra : 'name'}});
-        }
-    }
-
-    openils.Util.addOnLoad(
-        function() {
-            braGrid.overrideEditWidgets.resource_type =
-                new openils.widget.PCrudAutocompleteBox({
-                    "fmclass": "brt", "searchAttr": "name"
-                });
-            braGrid.overrideEditWidgets.resource_type.shove = {"create": ""};
-            var org_id = openils.User.user.ws_ou();
-            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
-
-            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_ATTR', contextOrgSelector, null, function() {
-                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
-            braGrid.loadAll({order_by:{bra : 'name'}}, { 'owner' : list });
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/booking/resource_attr_map.tt2 b/Open-ILS/src/templates/default/conify/global/booking/resource_attr_map.tt2
deleted file mode 100644 (file)
index a691fa3..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Resource Attribute Maps' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-    <div>Resource Attribute Maps</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='bramGrid.showCreateDialog()'>New Resource Attribute Map</button>
-        <button dojoType='dijit.form.Button' onClick='bramGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <span>Context Org Unit</span>
-    <select dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId='contextOrgSelector'
-            searchAttr='shortname'
-            labelAttr='shortname'>
-    </select>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="bramGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['resource', 'resource_attr', 'value']"
-            query="{id: '*'}"
-            fmClass='bram'
-            autoHeight='true'
-            showPaginator='true'
-            editOnEnter='true'>
-    </table>
-</div>
-
-<script type ="text/javascript">
-    dojo.require("openils.widget.PCrudAutocompleteBox");
-    dojo.require('openils.widget.AutoGrid');
-    dojo.require('openils.widget.OrgUnitFilteringSelect');
-
-    function filterGrid() {
-        bramGrid.resetStore();
-        var unit = contextOrgSelector.getValue();
-        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
-
-        if(unit){
-            bramGrid.loadAll({"order_by":"resource_attr"}, {"resource_attr":{"in":{"select":{"bra":["id"]},"from":"bra","where":{"+bra":{"owner": list } } } } } );
-        } else {
-            bramGrid.loadAll({order_by:{bram : 'resource_attr'}});
-        }
-    }
-    openils.Util.addOnLoad(
-        function() {
-            var org_id = openils.User.user.ws_ou();
-            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
-
-            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_TYPE', contextOrgSelector, null, function() {
-                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
-
-            bramGrid.overrideEditWidgets.resource =
-                new openils.widget.PCrudAutocompleteBox({
-                    "fmclass": "brsrc", "searchAttr": "barcode"
-                });
-            bramGrid.overrideEditWidgets.resource.shove = {"create": ""};
-            bramGrid.loadAll({"order_by":"resource_attr"}, {"resource_attr":{"in":{"select":{"bra":["id"]},"from":"bra","where":{"+bra":{"owner": list } } } } } );
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/booking/resource_attr_value.tt2 b/Open-ILS/src/templates/default/conify/global/booking/resource_attr_value.tt2
deleted file mode 100644 (file)
index 3593db9..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Resource Attribute Values' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-    <div>Resource Attribute Values</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='bravGrid.showCreateDialog()'>New Resource Attribute Value</button>
-        <button dojoType='dijit.form.Button' onClick='bravGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <span>Context Org Unit</span>
-    <select dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId='contextOrgSelector'
-            searchAttr='shortname'
-            labelAttr='shortname'>
-    </select>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="bravGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['owner', 'attr', 'valid_value']"
-            query="{id: '*'}"
-            fmClass='brav'
-            autoHeight='true'
-            showPaginator='true'
-            editOnEnter='true'>
-    </table>
-</div>
-
-<script type ="text/javascript">
-    dojo.require('dijit.form.FilteringSelect');
-    dojo.require('openils.widget.AutoGrid');
-    dojo.require('openils.widget.OrgUnitFilteringSelect');
-
-    function filterGrid() {
-        bravGrid.resetStore();
-        var unit = contextOrgSelector.getValue();
-        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
-
-        if(unit){
-            bravGrid.loadAll({order_by:{brav : 'attr'}}, { 'owner' : list });
-        } else {
-            bravGrid.loadAll({order_by:{brav : 'attr'}});
-        }
-    }
-
-    openils.Util.addOnLoad(
-        function() {
-            var org_id = openils.User.user.ws_ou();
-            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
-
-            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_ATTR_VALUE', contextOrgSelector, null, function() {
-                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
-
-            bravGrid.loadAll({order_by:{brav : 'attr'}}, { 'owner' : list });
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/booking/resource_type.tt2 b/Open-ILS/src/templates/default/conify/global/booking/resource_type.tt2
deleted file mode 100644 (file)
index ac4c3a4..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Resource Types' %]
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-        <div>Resource Types</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='brtGrid.showCreateDialog()'>New Resource Type</button>
-            <button dojoType='dijit.form.Button' onClick='brtGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <span>Context Org Unit</span>
-    <select dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId='contextOrgSelector'
-            searchAttr='shortname'
-            labelAttr='shortname'>
-    </select>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="brtGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'fine_interval', 'fine_amount',
-                'owner', 'catalog_item', 'transferable']"
-            suppressFields="['record']"
-            suppressEditFields="['record']"
-            query="{id: '*'}"
-            fmClass='brt'
-            showPaginator='true'
-            autoHeight='true'
-            editOnEnter='true'>
-    </table>
-</div>
-
-<script type ="text/javascript">
-    dojo.require('dijit.form.FilteringSelect');
-    dojo.require('openils.widget.AutoGrid');
-    dojo.require('openils.widget.OrgUnitFilteringSelect');
-
-    function filterGrid() {
-        brtGrid.resetStore();
-        var unit = contextOrgSelector.getValue();
-        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
-
-        if(unit){
-            brtGrid.loadAll({order_by:{brt : 'name'}}, { 'owner' : list });
-        } else {
-            brtGrid.loadAll({order_by:{brt : 'name'}});
-        }
-    }
-    openils.Util.addOnLoad(
-        function() {
-            var org_id = openils.User.user.ws_ou();
-            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
-
-            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_TYPE', contextOrgSelector, null, function() {
-                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
-
-            brtGrid.loadAll({"order_by": {"brt": "name"}}, { 'owner' : list });
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/cat/authority/browse_axis.tt2 b/Open-ILS/src/templates/default/conify/global/cat/authority/browse_axis.tt2
deleted file mode 100644 (file)
index 8834b02..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Configure Authority Browse Axes" %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-        <div>Browse Axes</div>
-        <div>
-            <button dojoType="dijit.form.Button" onClick="aba_grid.showCreateDialog()">New Browse Axis</button>
-            <button dojoType="dijit.form.Button" onClick="aba_grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div>
-        <table  jsId="aba_grid"
-                dojoType="openils.widget.AutoGrid"
-                autoHeight="true"
-                defaultCellWidth="'auto'"
-                fieldOrder="['code','name','description','sorter']"
-                suppressEditFields="['id']"
-                query="{id: '*'}"
-                fmClass="aba"
-                editOnEnter="true">
-        </table>
-    </div>
-</div>
-<script type="text/javascript">
-    dojo.require("openils.widget.AutoGrid");
-
-    function my_init() {
-        aba_grid.overrideWidgetArgs.sorter = {
-            "dijitArgs": {"query": {"sorter": "t"}}
-        };
-        aba_grid.loadAll({"order_by": {"aba": "code"}});
-    }
-
-    openils.Util.addOnLoad(my_init);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/cat/authority/browse_axis_authority_field_map.tt2 b/Open-ILS/src/templates/default/conify/global/cat/authority/browse_axis_authority_field_map.tt2
deleted file mode 100644 (file)
index 8bb1af1..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Configure Browse Axis-Authority Field Maps" %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-        <div>Browse Axis-Authority Field Maps</div>
-        <div>
-            <button dojoType="dijit.form.Button" onClick="abaafm_grid.showCreateDialog()">New Browse Axis-Authority Field Map</button>
-            <button dojoType="dijit.form.Button" onClick="abaafm_grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div id="authority-field-metadata-holder" class="hidden">
-        Showing only browse axis-authority field maps linked to authority field:
-        <a id="authority-field-metadata"></a>
-    </div>
-    <div>
-        <table  jsId="abaafm_grid"
-                dojoType="openils.widget.AutoGrid"
-                autoHeight="true"
-                defaultCellWidth="'auto'"
-                suppressEditFields="['id']"
-                fieldOrder="['axis','field']"
-                query="{id: '*'}"
-                fmClass="abaafm"
-                editOnEnter="true">
-        </table>
-    </div>
-</div>
-<script type="text/javascript"
-    src="[% ctx.media_prefix %]/js/ui/default/conify/global/cat/authority/common.js"></script>
-<script type="text/javascript">
-    dojo.require("openils.widget.AutoGrid");
-    dojo.require("openils.CGI");
-    dojo.require("openils.PermaCrud");
-
-    dojo.requireLocalization("openils.authority", "authority");
-    var localeStrings =
-        dojo.i18n.getLocalization("openils.authority", "authority");
-
-    var cgi, pcrud;
-
-    function my_init() {
-        var authority_field, control_set_id;
-        var where = {"id": {"!=": null}};
-
-        cgi = new openils.CGI();
-        pcrud = new openils.PermaCrud();
-
-        authority_field = cgi.param("acsaf");
-        control_set_id = cgi.param("acs");
-
-        if (authority_field) {
-            /* This block not only limits the scope of our search for abaafm
-               objects, but makes sure that we create/update only abaafm's
-               that link back to the authority field (acsaf) we're interested
-               in.  */
-            authority_field = pcrud.retrieve("acsaf", authority_field);
-            where.field = authority_field.id();
-            render_authority_field_metadata(authority_field, control_set_id);
-
-            abaafm_grid.overrideEditWidgets.field =
-                new dijit.form.TextBox({"disabled": true});
-            abaafm_grid.overrideEditWidgets.field.shove =
-                {"create": authority_field.id()};
-        }
-
-        abaafm_grid.loadAll({"order_by": {"abaafm": "axis"}}, where);
-    }
-
-    openils.Util.addOnLoad(my_init);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/cat/authority/control_set.tt2 b/Open-ILS/src/templates/default/conify/global/cat/authority/control_set.tt2
deleted file mode 100644 (file)
index 69ba1d2..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Configure Authority Control Sets" %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-        <div>Control Sets</div>
-        <div>
-            <button dojoType="dijit.form.Button" onClick="acs_grid.showCreateDialog()">New Control Set</button>
-            <button dojoType="dijit.form.Button" onClick="acs_grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="acs_grid"
-            dojoType="openils.widget.AutoGrid"
-            autoHeight="true"
-            defaultCellWidth="'auto'"
-            fieldOrder="['name','description','id']"
-            suppressEditFields="['id']"
-            query="{id: '*'}"
-            fmClass="acs"
-            editOnEnter="true">
-            <thead>
-                <tr>
-                    <th name="Other properties"
-                        field="id" formatter="format_acs_id"></th>
-                </tr>
-            </thead>
-    </table>
-</div>
-
-<script type="text/javascript">
-    dojo.require("openils.widget.AutoGrid");
-    dojo.require("openils.CGI");
-    dojo.requireLocalization("openils.authority", "authority");
-    var localeStrings =
-        dojo.i18n.getLocalization("openils.authority", "authority");
-    var acs_cache = {};
-    var cgi;
-
-    function format_acs_id(id) {
-        if (id) {
-            var tlen = acs_cache[id].thesauri() ?
-                acs_cache[id].thesauri().length : 0;
-            var alen = acs_cache[id].authority_fields() ?
-                acs_cache[id].authority_fields().length : 0;
-
-            return "<a href='" + oilsBasePath +
-                "/conify/global/cat/authority/thesaurus?acs=" + id + "'>" +
-                dojo.string.substitute(localeStrings.THESAURI, [tlen]) +
-                "</a> &nbsp;" + " <a href='" + oilsBasePath +
-                "/conify/global/cat/authority/control_set_authority_field?acs=" +
-                id + "'>" +
-                dojo.string.substitute(localeStrings.AUTHORITY_FIELDS, [alen]) +
-                "</a>";
-        }
-    }
-
-    function acs_grid_loader() {
-        acs_cache = {};
-        acs_grid.resetStore();
-        acs_grid.showLoadProgressIndicator();
-        fieldmapper.standardRequest(
-            ["open-ils.cat", "open-ils.cat.authority.control_set.retrieve"], {
-                "async": true,
-                "params": [acs_grid.displayLimit, acs_grid.displayOffset, cgi.param("focus")],
-                "onresponse": function(r) {
-                    if (r = openils.Util.readResponse(r)) {
-                        acs_cache[r.id()] = r;
-                        acs_grid.store.newItem(r.toStoreItem());
-                    }
-                },
-                "oncomplete": function() {
-                    acs_grid.hideLoadProgressIndicator();
-                }
-            }
-        );
-    }
-
-    openils.Util.addOnLoad(
-        function() {
-            cgi = new openils.CGI();
-
-            acs_grid.onPostCreate = function(obj) {acs_cache[obj.id()] = obj;};
-            acs_grid.dataLoader = acs_grid_loader;
-            acs_grid_loader();
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/cat/authority/control_set_authority_field.tt2 b/Open-ILS/src/templates/default/conify/global/cat/authority/control_set_authority_field.tt2
deleted file mode 100644 (file)
index ed260df..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Configure Authority Authority Fields" %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-        <div>Authority Fields</div>
-        <div>
-            <button dojoType="dijit.form.Button" onClick="acsaf_grid.showCreateDialog()">New Authority Field</button>
-            <button dojoType="dijit.form.Button" onClick="acsaf_grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div id="control-set-metadata-holder" class="hidden">
-        Showing only authority fields linked to control set:
-        <a id="control-set-metadata"></a>
-    </div>
-    <div>
-        <table  jsId="acsaf_grid"
-                dojoType="openils.widget.AutoGrid"
-                autoHeight="true"
-                defaultCellWidth="'12%'"
-                fieldOrder="['id','name','description','main_entry','control_set','tag','sf_list','bib_fields','axis_maps']"
-                suppressEditFields="['id']"
-                query="{id: '*'}"
-                fmClass="acsaf"
-                editOnEnter="true">
-            <thead>
-                <tr>
-                    <th field="bib_fields" name="Controlled Bib Fields"
-                        get="get_just_id" formatter="format_bib_fields"></th>
-                    <th field="axis_maps" name="Axes"
-                        get="get_just_id" formatter="format_axis_maps"></th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-</div>
-<script type="text/javascript"
-    src="[% ctx.media_prefix %]/js/ui/default/conify/global/cat/authority/common.js"></script>
-<script type="text/javascript">
-    dojo.require("openils.widget.AutoGrid");
-    dojo.require("openils.CGI");
-    dojo.require("openils.PermaCrud");
-
-    dojo.requireLocalization("openils.authority", "authority");
-    var localeStrings =
-        dojo.i18n.getLocalization("openils.authority", "authority");
-
-    var cgi, pcrud, control_set;
-    var acsaf_cache = {};
-
-    function acsaf_grid_loader() {
-        acsaf_cache = {};
-        acsaf_grid.resetStore();
-        acsaf_grid.showLoadProgressIndicator();
-        fieldmapper.standardRequest(
-            ["open-ils.cat",
-                "open-ils.cat.authority.control_set_authority_field.retrieve"],{
-                "async": true,
-                "params": [
-                    acsaf_grid.displayLimit, acsaf_grid.displayOffset,
-                    control_set.id(), cgi.param("focus")
-                ],
-                "onresponse": function(r) {
-                    if (r = openils.Util.readResponse(r)) {
-                        acsaf_cache[r.id()] = r;
-                        acsaf_grid.store.newItem(r.toStoreItem());
-                    }
-                },
-                "oncomplete": function() {
-                    acsaf_grid.hideLoadProgressIndicator();
-                }
-            }
-        );
-    }
-
-    function get_just_id(row_index, item) {
-        if (item) return this.grid.store.getValue(item, "id");
-    }
-
-    function format_axis_maps(id) {
-        if (id) {
-            var text = acsaf_cache[id].axis_maps().map(
-                function(f) { return f.axis().name(); }
-            ).sort().join(", ") || localeStrings.NONE_LINK;
-            var href = "browse_axis_authority_field_map?";
-            if (control_set)
-                href += "acs=" + control_set.id() + "&amp;";
-            href += "acsaf=" + id;
-            return "<a href='" + href + "'>"  + text + "</a>";
-        }
-    }
-
-    function format_bib_fields(id) {
-        if (id) {
-            var text = acsaf_cache[id].bib_fields().map(
-                function(f) { return f.tag(); }
-            ).sort().join(", ") || localeStrings.NONE_LINK;
-            var href = "control_set_bib_field?";
-            if (control_set)
-                href += "acs=" + control_set.id() + "&amp;";
-            href += "acsaf=" + id;
-            return "<a href='" + href + "'>"  + text + "</a>";
-        }
-    }
-
-    function my_init() {
-        cgi = new openils.CGI();
-        pcrud = new openils.PermaCrud();
-
-        control_set = cgi.param("acs");
-        if (control_set) {
-            control_set = pcrud.retrieve("acs", control_set);
-            render_control_set_metadata(control_set);
-
-            acsaf_grid.overrideEditWidgets.control_set =
-                new dijit.form.TextBox({"disabled": true});
-            acsaf_grid.overrideEditWidgets.control_set.shove =
-                {"create": control_set.id()};
-        }
-
-        acsaf_grid.onPostCreate = function(o) {
-            o.bib_fields([]);
-            o.axis_maps([]);
-            acsaf_cache[o.id()] = o;
-        };
-
-        acsaf_grid.dataLoader = acsaf_grid_loader;
-        acsaf_grid_loader();
-    }
-
-    openils.Util.addOnLoad(my_init);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/cat/authority/control_set_bib_field.tt2 b/Open-ILS/src/templates/default/conify/global/cat/authority/control_set_bib_field.tt2
deleted file mode 100644 (file)
index 28b9916..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Configure Authority Control Set Bib Fields" %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-        <div>Control Set Bib Fields</div>
-        <div>
-            <button dojoType="dijit.form.Button" onClick="acsbf_grid.showCreateDialog()">New Control Set Bib Field</button>
-            <button dojoType="dijit.form.Button" onClick="acsbf_grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div id="authority-field-metadata-holder" class="hidden">
-        Showing only control set bib fields linked to authority field:
-        <a id="authority-field-metadata"></a>
-    </div>
-    <div>
-        <table  jsId="acsbf_grid"
-                dojoType="openils.widget.AutoGrid"
-                autoHeight="true"
-                defaultCellWidth="'auto'"
-                suppressEditFields="['id']"
-                fieldOrder="['tag','authority_field']"
-                query="{id: '*'}"
-                fmClass="acsbf"
-                editOnEnter="true">
-        </table>
-    </div>
-</div>
-<script type="text/javascript"
-    src="[% ctx.media_prefix %]/js/ui/default/conify/global/cat/authority/common.js"></script>
-<script type="text/javascript">
-    dojo.require("openils.widget.AutoGrid");
-    dojo.require("openils.CGI");
-    dojo.require("openils.PermaCrud");
-
-    dojo.requireLocalization("openils.authority", "authority");
-    var localeStrings =
-        dojo.i18n.getLocalization("openils.authority", "authority");
-
-    var cgi, pcrud;
-
-    function my_init() {
-        var authority_field, control_set_id;
-        var where = {"id": {"!=": null}};
-
-        cgi = new openils.CGI();
-        pcrud = new openils.PermaCrud();
-
-        authority_field = cgi.param("acsaf");
-        control_set_id = cgi.param("acs");
-
-        if (authority_field) {
-            /* This block not only limits the scope of our search for acsbf
-               objects, but makes sure that we create/update only acsbf's
-               that link back to the authority field (acsaf) we're interested
-               in.  */
-            authority_field = pcrud.retrieve("acsaf", authority_field);
-            where.authority_field = authority_field.id();
-            render_authority_field_metadata(authority_field, control_set_id);
-
-            acsbf_grid.overrideEditWidgets.authority_field =
-                new dijit.form.TextBox({"disabled": true});
-            acsbf_grid.overrideEditWidgets.authority_field.shove =
-                {"create": authority_field.id()};
-        }
-
-        acsbf_grid.loadAll({"order_by": {"acsbf": "tag"}}, where);
-    }
-
-    openils.Util.addOnLoad(my_init);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/cat/authority/thesaurus.tt2 b/Open-ILS/src/templates/default/conify/global/cat/authority/thesaurus.tt2
deleted file mode 100644 (file)
index 883cb28..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Configure Authority Thesauri" %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-        <div>Thesauri</div>
-        <div>
-            <button dojoType="dijit.form.Button" onClick="at_grid.showCreateDialog()">New Thesaurus</button>
-            <button dojoType="dijit.form.Button" onClick="at_grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div id="control-set-metadata-holder" class="hidden">
-        Showing only thesauri linked to control set:
-        <a id="control-set-metadata"></a>
-    </div>
-    <div>
-        <table  jsId="at_grid"
-                dojoType="openils.widget.AutoGrid"
-                autoHeight="true"
-                defaultCellWidth="'auto'"
-                fieldOrder="['code','control_set','name','description']"
-                suppressEditFields="['id']"
-                query="{id: '*'}"
-                fmClass="at"
-                editOnEnter="true">
-            <thead>
-                <tr>
-                    <th field="control_set" get="get_control_set"
-                        formatter="format_control_set"></th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-</div>
-<script type="text/javascript"
-    src="[% ctx.media_prefix %]/js/ui/default/conify/global/cat/authority/common.js"></script>
-<script type="text/javascript">
-    dojo.require("openils.widget.AutoGrid");
-    dojo.require("openils.CGI");
-    dojo.require("openils.PermaCrud");
-
-    dojo.requireLocalization("openils.authority", "authority");
-    var localeStrings =
-        dojo.i18n.getLocalization("openils.authority", "authority");
-
-    var cgi, pcrud;
-    var control_set;
-
-    function get_control_set(rowidx, item) {
-        if (item) {
-            /* I'm /sure/ there's a better way to do the following */
-            this._tmp = openils.widget.AutoGrid.defaultGetter;
-            var ordinary = this._tmp(rowidx, item); 
-            delete this._tmp;
-
-            if (control_set) {
-                return ordinary;
-            } else {
-                var id = this.grid.store.getValue(item, "control_set");
-                return {
-                    "id": id, "text": ordinary
-                };
-            }
-        }
-    }
-
-    function format_control_set(f) {
-        if (typeof f == "object") {
-            return '<a href="' + oilsBasePath +
-                '/conify/global/cat/authority/control_set?focus=' + f.id +
-                '">' + f.text + "</a>";
-        } else {
-            return f;
-        }
-
-    }
-
-    function my_init() {
-        var where = {"code": {"!=": null}};
-
-        cgi = new openils.CGI();
-        pcrud = new openils.PermaCrud();
-
-        control_set = cgi.param("acs");
-        if (control_set) {
-            control_set = pcrud.retrieve("acs", control_set);
-            where.control_set = control_set.id();
-            render_control_set_metadata(control_set);
-
-            at_grid.overrideEditWidgets.control_set =
-                new dijit.form.TextBox({"disabled": true});
-            at_grid.overrideEditWidgets.control_set.shove =
-                {"create": control_set.id()};
-        }
-
-        at_grid.loadAll({"order_by": {"at": "code"}}, where);
-    }
-
-    openils.Util.addOnLoad(my_init);
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/config/acn_prefix.tt2 b/Open-ILS/src/templates/default/conify/global/config/acn_prefix.tt2
deleted file mode 100644 (file)
index 5e7f640..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Call Number Prefixes' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/acn_prefix.js'> </script>
-
-<!-- grid -->
-
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Call Number Prefixes</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='thingGrid.showCreateDialog()'>New Prefix</button>
-                <button dojoType='dijit.form.Button' onClick='thingGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div>
-            <span>Context Org Unit</span>
-            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='thingContextOrgSelect'
-                searchAttr='shortname' labelAttr='shortname'> </select>
-        </div>
-        <table  jsId="thingGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'label', 'owning_lib']"
-                suppressFields="['label_sortkey']"
-                suppressEditFields="['label_sortkey']"
-                query="{id: '*'}"
-                defaultCellWidth='20'
-                fmClass='acnp'
-                editOnEnter='true'>
-            <thead>
-                <tr><th field='owning_lib' get='getOrgInfo'/></tr>
-            </thead>
-        </table>
-    </div>
-</div>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/acn_suffix.tt2 b/Open-ILS/src/templates/default/conify/global/config/acn_suffix.tt2
deleted file mode 100644 (file)
index 40dcbb9..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Call Number Suffixes' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/acn_suffix.js'> </script>
-
-<!-- grid -->
-
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Call Number Suffixes</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='thingGrid.showCreateDialog()'>New Suffix</button>
-                <button dojoType='dijit.form.Button' onClick='thingGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div>
-            <span>Context Org Unit</span>
-            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='thingContextOrgSelect'
-                searchAttr='shortname' labelAttr='shortname'> </select>
-        </div>
-        <table  jsId="thingGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'label', 'owning_lib']"
-                suppressFields="['label_sortkey']"
-                suppressEditFields="['label_sortkey']"
-                query="{id: '*'}"
-                defaultCellWidth='20'
-                fmClass='acns'
-                editOnEnter='true'>
-            <thead>
-                <tr><th field='owning_lib' get='getOrgInfo'/></tr>
-            </thead>
-        </table>
-    </div>
-</div>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/actor_sip_fields.tt2 b/Open-ILS/src/templates/default/conify/global/config/actor_sip_fields.tt2
deleted file mode 100644 (file)
index 5a0c897..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Actor Stat Cat Sip Fields' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Actor Stat Cat Sip Fields</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='actorSipFieldsGrid.showCreateDialog()'>New Sip Field</button>
-            <button dojoType='dijit.form.Button' onClick='actorSipFieldsGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="actorSipFieldsGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['field', 'name', 'one_only']"
-            query="{field: '*'}"
-            fmClass='actscsf'
-            defaultCellWidth='15'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { actorSipFieldsGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/asset_sip_fields.tt2 b/Open-ILS/src/templates/default/conify/global/config/asset_sip_fields.tt2
deleted file mode 100644 (file)
index bdf6e7e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Asset Stat Cat Sip Fields' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Asset Stat Cat Sip Fields</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='assetSipFieldsGrid.showCreateDialog()'>New Sip Field</button>
-            <button dojoType='dijit.form.Button' onClick='assetSipFieldsGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="assetSipFieldsGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['field', 'name', 'one_only']"
-            query="{field: '*'}"
-            fmClass='ascsf'
-            defaultCellWidth='15'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { assetSipFieldsGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/barcode_completion.tt2 b/Open-ILS/src/templates/default/conify/global/config/barcode_completion.tt2
deleted file mode 100644 (file)
index fc81951..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-[% ctx.page_title = 'Barcode Completion Configuration' %]
-[% WRAPPER default/base.tt2 %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/barcode_completion.js'> </script>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-    <div>Barcode Completion Configuration</div>
-    <div><button dojoType='dijit.form.Button' onClick='cmGrid.showCreatePane()'>New</button></div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="cmGrid"
-            style="height: 600px;"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['id', 'active', 'org_unit', 'prefix', 'suffix', 'length', 'padding', 'padding_end', 'asset', 'actor']"
-            defaultCellWidth='"auto"'
-            query="{id: '*'}"
-            fmClass='cbc'
-            editStyle='pane'
-            editOnEnter='true'
-            showColumnPicker='true'
-            columnPickerPrefix='"conify.config.barcode_completion"'>
-    </table>
-</div>
-
-<div class='hidden'><div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'/></div>
-
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/billing_type.tt2 b/Open-ILS/src/templates/default/conify/global/config/billing_type.tt2
deleted file mode 100644 (file)
index 8811067..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Billing Types' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/billing_type.js'> </script>
-
-<!-- grid -->
-
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Billing Types</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='btGrid.showCreateDialog()'>New Billing Type</button>
-                <button dojoType='dijit.form.Button' onClick='btGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-        <div>
-            <span>Context Org Unit</span>
-            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='btContextOrgSelect'
-                searchAttr='shortname' labelAttr='shortname'> </select>
-        </div>
-        <table  jsId="btGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'name', 'owner', 'default_price']"
-                query="{id: '*'}"
-                defaultCellWidth='20'
-                fmClass='cbt'
-                editOnEnter='true'>
-            <thead>
-                <tr><th field='owner' get='getOrgInfo'/></tr>
-            </thead>
-        </table>
-    </div>
-</div>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/circ_matrix_matchpoint.tt2 b/Open-ILS/src/templates/default/conify/global/config/circ_matrix_matchpoint.tt2
deleted file mode 100644 (file)
index e3725a2..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-[% ctx.page_title = 'Circulation Policy Configuration' %]
-[% WRAPPER default/base.tt2 %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/circ_matrix_matchpoint.js'> </script>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-    <div>Circulation Policy Configuration</div>
-    <div><button dojoType='dijit.form.Button' onClick='cmGrid.showCreatePane()'>New</button></div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="cmGrid"
-            style="height: 600px;"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['id', 'active', 'grp', 'org_unit', 'copy_circ_lib', 'copy_owning_lib', 'user_home_ou', 'is_renewal', 'juvenile_flag', 'circ_modifier', 'marc_type', 'marc_form', 'marc_bib_level', 'marc_vr_format', 'ref_flag', 'usr_age_lower_bound', 'usr_age_upper_bound', 'item_age', 'circulate', 'duration_rule', 'renewals', 'hard_due_date', 'recurring_fine_rule', 'grace_period', 'max_fine_rule', 'available_copy_hold_ratio', 'total_copy_hold_ratio', 'script_test']"
-            defaultCellWidth='"auto"'
-            query="{id: '*'}"
-            fmClass='ccmm'
-            editStyle='pane'
-            editOnEnter='true'
-            showColumnPicker='true'
-            columnPickerPrefix='"conify.config.circ_matrix_matchpoint"'>
-            <thead>
-                <tr>
-                    <th field="hard_due_date" formatter="format_hard_due_date">
-                    </th>
-                </tr>
-            </thead>
-    </table>
-</div>
-
-<div class='hidden'>
-    <div id='circ-mod-editor' style='border:1px solid #aaa'>
-        <h3>Circ Modifier Count Groups</h3>
-        <table class='oils-generic-table' name='circ-mod-group-table'>
-            <tbody><tr>
-                <td>Total items out</td>
-                <td><input type='text' size='3' name='circ-mod-count'></div></td>
-            </tr><tbody>
-            <tbody name='circ-mod-entry-tbody'>
-                <tr name='circ-mod-entry-row'>
-                    <td name='circ-mod'/>
-                    <td><a name='remove-circ-mod' href='javascript:void(0);'>Remove</a></td>
-                </tr>
-            </tbody>
-            <tbody>
-                <tr>
-                    <td><div name='circ-mod-selector'></div></td>
-                    <td><a href='javascript:void(0);' name='add-circ-mod'>Add</a></td>
-                </tr>
-            </tbody>
-        </table>
-        <span name='add-circ-mod-group-span'>
-        <a href='javascript:void(0);' name='add-circ-mod-group'>Create New Group</a>
-        </span>&nbsp;&nbsp;<span>
-        <a href='javascript:void(0);' onclick='applyCircModChanges()'>Apply Circ Modifier Changes</a>
-        </span>
-    </div>
-</div>
-
-<div class='hidden'><div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'/></div>
-
-<script type="text/javascript">
-    function format_hard_due_date(name, id) {
-        var item=this.grid.getItem(id);
-        if(!item) return name;
-        switch (this.grid.store.getValue(this.grid.getItem(id), 'hard_due_date')) {
-            case null :
-            case undefined :
-            case 'unset' :
-                return name;
-            default:
-                return "<a href='" + oilsBasePath +
-                    "/conify/global/config/hard_due_date?name=" +
-                    encodeURIComponent(name) + "'>" + name + "</a>";
-        }
-    }
-</script>
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/circ_matrix_weights.tt2 b/Open-ILS/src/templates/default/conify/global/config/circ_matrix_weights.tt2
deleted file mode 100644 (file)
index 0615abf..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Circ Matrix Weights' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Circ Matrix Weights</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='ruleCircWeightsGrid.showCreateDialog()'>New Weight Set</button>
-            <button dojoType='dijit.form.Button' onClick='ruleCircWeightsGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="ruleCircWeightsGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name']"
-            suppressFields="['id']"
-            query="{id: '*'}"
-            fmClass='ccmw'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { ruleCircWeightsGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/circ_modifier.tt2 b/Open-ILS/src/templates/default/conify/global/config/circ_modifier.tt2
deleted file mode 100644 (file)
index 7d60814..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-<h1>Circulation Modifier</h1> <br/>
-
-<div class='hidden'>
-    <select dojoType="dijit.form.FilteringSelect" jsId="sip2Selector">
-        <option value='000'>Other</option>
-        <option value='001' selected='selected'>Book</option>
-        <option value='002'>Magazine</option>
-        <option value='003'>Bound Journal</option>
-        <option value='004'>Audio Tape</option>
-        <option value='005'>Video Tape</option>
-        <option value='006'>CD/CDROM</option>
-        <option value='007'>Diskette</option>
-        <option value='008'>Book with diskette</option>
-        <option value='009'>Book with CD</option>
-        <option value='010'>Book with audio tape</option>
-    </select>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-    <div>Circulation Modifier</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='cmGrid.showCreateDialog()'>New Circ Modifier</button>
-        <button dojoType='dijit.form.Button' onClick='cmGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="cmGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['code', 'name', 'description', 'sip2_media_type', 'magnetic_media']"
-            query="{name: '*'}"
-            defaultCellWidth='"auto"'
-            fmClass='ccm'
-            showPaginator='true'
-            editOnEnter='true'>
-        <thead>
-            <tr>
-                <th field="magnetic_media" options='No,Yes' values='f,t'/>
-                <th field="sip2_media_type" formatter='formatSIPMediaType'/>
-            </tr>
-        </thead>
-    </table>
- </div>
-
-<script type ="text/javascript">
-
-    dojo.require('dijit.form.FilteringSelect');
-    dojo.require('openils.widget.AutoGrid');
-
-    function formatSIPMediaType(inDatum) {
-        switch (inDatum) {
-            case '000':
-                return 'Other';
-            case '001':
-                return 'Book';
-            case '002':
-                return 'Magazine';
-            case '003':
-                return 'Bound Journal';
-            case '004':
-                return 'Audio Tape';
-            case '005':
-                return 'Video Tape';
-            case '006':
-                return 'CD/CDROM';
-            case '007':
-                return 'Diskette';
-            case '008':
-                return 'Book with diskette';
-            case '009':
-                return 'Book with CD';
-            case '010':
-                return 'Book with audio tape';
-        }
-    }
-
-    openils.Util.addOnLoad(
-        function() {
-            cmGrid.overrideEditWidgets.sip2_media_type = sip2Selector;
-            cmGrid.loadAll({order_by:{ccm : 'name'}});
-        }
-    );
-
-</script>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/config/coded_value_map.tt2 b/Open-ILS/src/templates/default/conify/global/config/coded_value_map.tt2
deleted file mode 100644 (file)
index 592e539..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-<h1>Code Value Maps</h1> <br/>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-    <div>Coded Value Maps</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='ccvmGrid.showCreateDialog()'>New Map</button>
-        <button dojoType='dijit.form.Button' onClick='ccvmGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <span>Record Attribute Type: </span><div id='attr-def-div'/>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="ccvmGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['ctype', 'code', 'value', 'description']"
-            query="{code: '*'}"
-            defaultCellWidth='"25%"'
-            fmClass='ccvm'
-            showPaginator='true'
-            editOnEnter='true'/>
- </div>
-
-<script type ="text/javascript">
-
-    dojo.require('dijit.form.FilteringSelect');
-    dojo.require('openils.widget.AutoGrid');
-    dojo.require('openils.widget.AutoFieldWidget');
-
-    openils.Util.addOnLoad(
-        function() {
-
-            var selector = new openils.widget.AutoFieldWidget({
-                fmClass : 'ccvm',
-                fmField : 'ctype',
-                parentNode : dojo.byId('attr-def-div')
-            });
-
-            selector.build(
-                function(w, ww) {
-                    dojo.connect(w, 'onChange', 
-                        function(newVal) {
-                            ccvmGrid.resetStore();
-                            ccvmGrid.loadAll({order_by : {ccvm : 'code'}}, {ctype : newVal});
-                            ccvmGrid.overrideWidgetArgs.ctype = {dijitArgs : {value : newVal}};
-                            // ^-- why is this not working?
-                        }
-                    );
-                }
-            );
-
-            // hide the progress indicator since we're not loading any data up front
-            dojo.style(ccvmGrid.loadProgressIndicator, 'visibility', 'hidden');
-        }
-    );
-
-</script>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/config/global_flag.tt2 b/Open-ILS/src/templates/default/conify/global/config/global_flag.tt2
deleted file mode 100644 (file)
index 10a7a33..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Global Flags' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Global Flags</div>
-        <div></div>
-    </div>
-    <div>
-    <table  jsId="gfGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'label', 'enabled', 'value']"
-            suppressFields="['name']"
-            query="{name: '*'}"
-            defaultCellWidth='30'
-            fmClass='cgf'
-            hideSelector='true'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( 
-        function() { 
-            gfGrid.overrideWidgetArgs.name = {readOnly : true};
-            gfGrid.loadAll(); 
-        } 
-    );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/hard_due_date.tt2 b/Open-ILS/src/templates/default/conify/global/config/hard_due_date.tt2
deleted file mode 100644 (file)
index 2e671cf..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Hard Due Dates" %]
-<script type="text/javascript">
-    dojo.require("openils.CGI");
-    dojo.require("openils.Util");
-    dojo.require("openils.widget.AutoGrid");
-
-    function get_chdd_name(rowIndex, item) {
-        if (!item) return null;
-        else return {
-            "id": this.grid.store.getValue(item, "id"),
-            "name": this.grid.store.getValue(item, "name")
-        };
-    }
-
-    function format_chdd_name(blob) {
-        if (blob) {
-            return "<a href='" + oilsBasePath +
-                "/conify/global/config/hard_due_date_values?chdd=" +
-                blob.id + "'>" + blob.name + "</a>";
-        } else {
-            return "";
-        }
-    }
-
-    openils.Util.addOnLoad(
-        function() {
-            var cgi = new openils.CGI();
-            var filter = null;
-            var id = cgi.param("id");
-            var name = cgi.param("name");
-            if (id) {
-                filter = {"id": id};
-                openils.Util.show("one_only");
-            } else if (name) {
-                filter = {"name": name};
-                openils.Util.show("one_only");
-            }
-            chddGrid.loadAll({"order_by": {"chdd": "name"}}, filter);
-        }
-    );
-</script>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-        layoutAlign="top" class="oils-header-panel">
-        <div>Hard Due Dates</div>
-        <div>
-            <button
-                dojoType="dijit.form.Button"
-                onClick="chddGrid.showCreateDialog();">New Hard Due Date</button>
-            <button
-                dojoType="dijit.form.Button"
-                onClick="chddGrid.deleteSelected();">Deleted Selected</button>
-        </div>
-    </div>
-    <div id="one_only" class="hidden">
-        <em>Showing only one hard due date.</em> [
-            <a href="./hard_due_date">Show them all</a>
-        ]
-    </div>
-    <div>
-        <table jsId="chddGrid"
-            dojoType="openils.widget.AutoGrid"
-            showPaginator="true"
-            query="{name: '*'}"
-            defaultCellWidth="'auto'"
-            fieldOrder="['name', 'owner', 'ceiling_date', 'forceto']"
-            fmClass="chdd"
-            hideSelector="false"
-            editOnEnter="true">
-            <thead>
-                <tr>
-                    <th field="name" get="get_chdd_name"
-                        formatter="format_chdd_name"></th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/config/hard_due_date_values.tt2 b/Open-ILS/src/templates/default/conify/global/config/hard_due_date_values.tt2
deleted file mode 100644 (file)
index 5c51664..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Hard Due Date Values" %]
-<script type="text/javascript">
-    dojo.require("openils.CGI");
-    dojo.require("openils.PermaCrud");
-    dojo.require("openils.Util");
-    dojo.require("openils.widget.AutoGrid");
-    dojo.require("dijit.form.TextBox");
-
-    openils.Util.addOnLoad(
-        function() {
-            var filter = null;
-            var chdd_id = (new openils.CGI()).param("chdd");
-
-            if (chdd_id) {
-                filter = {"hard_due_date": chdd_id};
-                var hard_due_date =
-                    (new openils.PermaCrud()).retrieve("chdd", chdd_id);
-
-                dojo.byId("linked_chdd_name").innerHTML = hard_due_date.name();
-                dojo.byId("linked_chdd_link").innerHTML = hard_due_date.id();
-                dojo.byId("linked_chdd_link").onclick = function() {
-                    location.href = oilsBasePath +
-                        "/conify/global/config/hard_due_date?id=" +
-                        hard_due_date.id();
-                };
-                openils.Util.show("linked_chdd");
-            }
-
-            chddvGrid.overrideEditWidgets.hard_due_date =
-                new dijit.form.TextBox({"disabled": true});
-            chddvGrid.overrideEditWidgets.hard_due_date.shove = {
-                "create": chdd_id
-            };
-
-            chddvGrid.loadAll({"order_by": {"chddv": "active_date"}}, filter);
-        }
-    );
-</script>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-        layoutAlign="top" class="oils-header-panel">
-        <div>Hard Due Date Values</div>
-        <div>
-            <button
-                dojoType="dijit.form.Button"
-                onClick="chddvGrid.showCreateDialog();">New Hard Due Date Value</button>
-            <button
-                dojoType="dijit.form.Button"
-                onClick="chddvGrid.deleteSelected();">Deleted Selected</button>
-        </div>
-    </div>
-    <div class="hidden" id="linked_chdd">
-        <em>Showing only hard due date values related to hard due date object</em>
-        <strong id="linked_chdd_name"></strong> (#
-        <a href="javascript:void(0);" id="linked_chdd_link"></a>)
-    </div>
-    <div>
-        <table jsId="chddvGrid"
-            dojoType="openils.widget.AutoGrid"
-            showPaginator="true"
-            query="{name: '*'}"
-            defaultCellWidth="'auto'"
-            fieldOrder="['hard_due_date', 'ceiling_date', 'active_date']"
-            suppressFields="['hard_due_date']"
-            suppressEditFields="['id']"
-            fmClass="chddv"
-            hideSelector="true"
-            editOnEnter="true">
-        </table>
-    </div>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/config/hold_matrix_matchpoint.tt2 b/Open-ILS/src/templates/default/conify/global/config/hold_matrix_matchpoint.tt2
deleted file mode 100644 (file)
index 9315214..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-[% ctx.page_title = 'Hold Policy Configuration' %]
-[% WRAPPER default/base.tt2 %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-    <div>Hold Policy Configuration</div>
-    <div><button dojoType='dijit.form.Button' onClick='hmGrid.showCreatePane()'>New</button></div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="hmGrid" 
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid" 
-            fieldOrder="['id', 'strict_ou_match', 'user_home_ou', 'request_ou', 'pickup_ou', 'item_owning_ou', 'item_circ_ou', 'requestor_grp', 'circ_modifier', 'marc_type', 'marc_form', 'marc_bib_level', 'marc_vr_format']"
-            defaultCellWidth='"auto"'
-            query="{id: '*'}" 
-            fmClass='chmm' 
-            editStyle='pane'
-            editOnEnter='true'
-            showColumnPicker='true'
-            columnPickerPrefix='"conify.config.hold_matrix_matchpoint"'>
-    </table>
-    <div/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('dijit.layout.ContentPane');
-    dojo.require('dijit.form.Button');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad(
-        function(){
-            hmGrid.loadAll({order_by:{chmm:'circ_modifier'}});
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/config/hold_matrix_weights.tt2 b/Open-ILS/src/templates/default/conify/global/config/hold_matrix_weights.tt2
deleted file mode 100644 (file)
index 1aa25eb..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Hold Matrix Weights' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Hold Matrix Weights</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='ruleHoldWeightsGrid.showCreateDialog()'>New Weight Set</button>
-            <button dojoType='dijit.form.Button' onClick='ruleHoldWeightsGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="ruleHoldWeightsGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name']"
-            suppressFields="['id']"
-            query="{id: '*'}"
-            fmClass='chmw'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { ruleHoldWeightsGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/idl_field_doc.tt2 b/Open-ILS/src/templates/default/conify/global/config/idl_field_doc.tt2
deleted file mode 100644 (file)
index 9f6ac06..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Field Documentation' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/idl_field_doc.js'> </script>
-<table style='width:100%;margin-bottom:10px;'>
-    <tr>
-        <td align='left'><h3>Field Documentation</h3></td>
-        <td align='right'>
-            <span>Class:</span>
-            <span dojoType='dijit.form.FilteringSelect' jsId='fmClassSelector'></span>
-            <button dojoType='dijit.form.Button' onClick='fdocGrid.showCreateDialog()'>New</button>
-        </td>
-    </tr>
-</table>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="fdocGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['id', 'fm_class', 'owner', 'field', 'string']"
-            query="{id: '*'}"
-            fmClass='fdoc'
-            defaultCellWidth='15'
-            editOnEnter='true'>
-        <thead>
-            <tr><th field='string' width='auto'/></tr>
-        </thead>
-    </table>
-  </div>
-<div class='hidden'>
-    <span dojoType='dijit.form.FilteringSelect' jsId='editClassSelector'></span>
-    <span dojoType='dijit.form.FilteringSelect' jsId='editFieldSelector'></span>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/config/metabib_field.tt2 b/Open-ILS/src/templates/default/conify/global/config/metabib_field.tt2
deleted file mode 100644 (file)
index 0a811a7..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Metabib Field' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Metabib Field</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='mbFieldGrid.showCreateDialog()'>New Field</button>
-            <button dojoType='dijit.form.Button' onClick='mbFieldGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="mbFieldGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'label', 'field_class', 'weight', 'format', 'search_field', 'facet_field', 'xpath']"
-            query="{field: '*'}"
-            fmClass='cmf'
-            autoHeight='true'
-            editOnEnter='true'>
-        <thead>
-            <tr><th field='xpath' width='25%'/></tr>
-        </thead>
-    </table>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { mbFieldGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/org_unit_setting_type.tt2 b/Open-ILS/src/templates/default/conify/global/config/org_unit_setting_type.tt2
deleted file mode 100644 (file)
index 4768cce..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Org Unit Setting Types' %]
-
-<div class='hidden'>
-    <select dojoType="dijit.form.FilteringSelect" jsId="dTypeSelector">
-        <option value='string' selected='selected'>String</option>
-        <option value='bool'>Boolean</option>
-        <option value='integer'>Integer</option>
-        <option value='float'>Float</option>
-        <option value='currency'>Currency</option>
-        <option value='interval'>Interval</option>
-        <option value='date'>Date</option>
-        <option value='object'>Object</option>
-        <option value='array'>Array</option>
-        <option value='link'>Link</option>
-    </select>
-</div>
-
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-    <div>Org Unit Setting Types</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='ostGrid.showCreateDialog()'>New Org Setting Type</button>
-        <button dojoType='dijit.form.Button' onClick='ostGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="ostGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'label', 'datatype', 'description', 'fm_class']"
-            query="{name: '*'}"
-            defaultCellWidth='"auto"'
-            fmClass='coust'
-            showPaginator='true'
-            editOnEnter='true'>
-        <thead>
-            <tr>
-                <th field="datatype" formatter="formatDtype"/>
-            </tr>
-        </thead>
-    </table>
- </div>
-
-<script type ="text/javascript">
-    dojo.require('dijit.form.FilteringSelect');
-    dojo.require('openils.widget.AutoGrid');
-
-    openils.Util.addOnLoad(
-        function() {
-            ostGrid.overrideEditWidgets.datatype = dTypeSelector;
-            ostGrid.loadAll({order_by:{coust : 'name'}});
-        }
-    );
-
-    function formatDatatype(dtype) {
-        // pull the label from the type selector
-        return dojo.query('[value=' + dtype +']', dTypeSelector.domNode)[0].innerHTML;
-    }
-
-</script>
-
-[% END %]
diff --git 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
deleted file mode 100644 (file)
index 4af3b48..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'MARC Record Attribute Definitions' %]
-<h1>Record Attribute Definitions</h1> <br/>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-    <div>Record Attribute Definitions</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='cradGrid.showCreateDialog()'>New Attr. Definition</button>
-        <button dojoType='dijit.form.Button' onClick='cradGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="cradGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'label']",
-            query="{name: '*'}"
-            fmClass='crad'
-            showPaginator='true'
-            editOnEnter='true'/>
- </div>
-
-<script type ="text/javascript">
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad(
-        function() {
-            // avoid loading the entire config.xml_transform object
-            cradGrid.overrideWidgetArgs.format = {searchOptions : {"select":{"cxt":["name"]}}};
-            cradGrid.loadAll({order_by : {crad : 'name'}}) 
-        }
-    );
-</script>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/config/rule_age_hold_protect.tt2 b/Open-ILS/src/templates/default/conify/global/config/rule_age_hold_protect.tt2
deleted file mode 100644 (file)
index 50ed1c9..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Age Hold Protect Rules' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Age Hold Protect Rules</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='ruleAgeProtectGrid.showCreateDialog()'>New Age Hold Protect Rule</button>
-            <button dojoType='dijit.form.Button' onClick='ruleAgeProtectGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="ruleAgeProtectGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'age', 'prox']"
-            suppressFields="['id']"
-            query="{id: '*'}"
-            fmClass='crahp'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { ruleAgeProtectGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/rule_circ_duration.tt2 b/Open-ILS/src/templates/default/conify/global/config/rule_circ_duration.tt2
deleted file mode 100644 (file)
index 697362d..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Circ Duration Rules' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Circ Duration Rules</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='ruleCircDurationGrid.showCreateDialog()'>New Duration Rule</button>
-            <button dojoType='dijit.form.Button' onClick='ruleCircDurationGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="ruleCircDurationGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'max_renewals', 'shrt', 'normal', 'extended']"
-            suppressFields="['id']"
-            query="{id: '*'}"
-            fmClass='crcd'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { ruleCircDurationGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/rule_max_fine.tt2 b/Open-ILS/src/templates/default/conify/global/config/rule_max_fine.tt2
deleted file mode 100644 (file)
index f6ad07a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Circ Max Fine Rules' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Circ Max Fine Rules</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='ruleMaxFineGrid.showCreateDialog()'>New Max Fine Rule</button>
-            <button dojoType='dijit.form.Button' onClick='ruleMaxFineGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="ruleMaxFineGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'amount', 'is_percent']"
-            suppressFields="['id']"
-            query="{id: '*'}"
-            fmClass='crmf'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { ruleMaxFineGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/rule_recurring_fine.tt2 b/Open-ILS/src/templates/default/conify/global/config/rule_recurring_fine.tt2
deleted file mode 100644 (file)
index fbb25f6..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Recurring Fine Rules' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Recurring Fine Rules</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='ruleRecurringFineGrid.showCreateDialog()'>New Recurring Fine Rule</button>
-            <button dojoType='dijit.form.Button' onClick='ruleRecurringFineGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="ruleRecurringFineGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'recurrence_interval', 'low', 'normal', 'high', 'grace_period']"
-            suppressFields="['id']"
-            query="{id: '*'}"
-            fmClass='crrf'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { ruleRecurringFineGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/standing_penalty.tt2 b/Open-ILS/src/templates/default/conify/global/config/standing_penalty.tt2
deleted file mode 100644 (file)
index 598e639..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-<style type="text/css">
-    @import "[% ctx.media_prefix %]/js/dojo/dojox/form/resources/CheckedMultiSelect.css";
-</style>
-<h1>Standing Penalty Types</h1><br/>
-
-  <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-            <div>Standing Penalty Types</div>
-            <div>
-                <button dojoType='dijit.form.Button' onClick='spGrid.showCreateDialog()'>New Penalty Type</button>
-                <button dojoType='dijit.form.Button' onClick='spGrid.deleteSelected()'>Delete Selected</button>
-            </div>
-        </div>
-
-        <table  jsId="spGrid"
-                dojoType="openils.widget.AutoGrid"
-                fieldOrder="['id', 'name', 'label', 'block_list']"
-                query="{name: '*'}"
-                defaultCellWidth='"auto"'
-                fmClass='csp'
-                editOnEnter='true'>
-            <thead>
-                <tr> <th field="id" formatter='formatId'/> </tr>
-            </thead>
-        </table>
-    </div>
-</div>
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/standing_penalty.js'></script>
-<script type="text/javascript">
-
-    if(!dojo._hasResource['openils.widget.StandingPenaltyBlockedSelector']) {
-        dojo.provide('openils.widget.StandingPenaltyBlockedSelector');
-        dojo.require('dojox.form.CheckedMultiSelect');
-        dojo.require('dojo.data.ItemFileReadStore');
-        dojo.declare(
-            'openils.widget.StandingPenaltyBlockedSelector',
-            [dojox.form.CheckedMultiSelect],
-            {
-                postCreate : function() {
-                    this._multiValue = true;
-                    this.addOption({value:'CIRC', label:'CIRC'});
-                    this.addOption({value:'RENEW', label:'RENEW'});
-                    this.addOption({value:'HOLD', label:'HOLD'});
-                },
-                attr : function(name, value) {
-                    if(name == 'value' && value == null) {
-                        var val = this.inherited('attr', arguments);
-                        var str = '';
-                        for(var i in val)
-                            str += val[i] + '|';
-                        return str.substring(0, str.length - 1);
-                    } else {
-                        return this.inherited('attr', arguments);
-                    }
-                }
-            }
-        );
-    }
-
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/usr_setting_type.tt2 b/Open-ILS/src/templates/default/conify/global/config/usr_setting_type.tt2
deleted file mode 100644 (file)
index 2b477a2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'User Setting Types' %]
-
-<div class='hidden'>
-    <select dojoType="dijit.form.FilteringSelect" jsId="dTypeSelector">
-        <option value='string' selected='selected'>String</option>
-        <option value='bool'>Boolean</option>
-        <option value='integer'>Integer</option>
-        <option value='float'>Float</option>
-        <option value='currency'>Currency</option>
-        <option value='interval'>Interval</option>
-        <option value='date'>Date</option>
-        <option value='object'>Object</option>
-        <option value='array'>Array</option>
-        <option value='link'>Link</option>
-    </select>
-</div>
-
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-    <div>User Setting Types</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='ustGrid.showCreateDialog()'>New User Setting Type</button>
-        <button dojoType='dijit.form.Button' onClick='ustGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="ustGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'label', 'datatype', 'description', 'fm_class']"
-            query="{name: '*'}"
-            defaultCellWidth='"auto"'
-            fmClass='cust'
-            showPaginator='true'
-            editOnEnter='true'>
-        <thead>
-            <tr>
-                <th field="datatype" formatter="formatDtype"/>
-            </tr>
-        </thead>
-    </table>
- </div>
-
-<script type ="text/javascript">
-    dojo.require('dijit.form.FilteringSelect');
-    dojo.require('openils.widget.AutoGrid');
-
-    openils.Util.addOnLoad(
-        function() {
-            ustGrid.overrideEditWidgets.datatype = dTypeSelector;
-            ustGrid.loadAll({order_by:{cust : 'name'}});
-        }
-    );
-
-    function formatDatatype(dtype) {
-        // pull the label from the type selector
-        return dojo.query('[value=' + dtype +']', dTypeSelector.domNode)[0].innerHTML;
-    }
-
-</script>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/config/weight_assoc.tt2 b/Open-ILS/src/templates/default/conify/global/config/weight_assoc.tt2
deleted file mode 100644 (file)
index 8f66e81..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Matrix Weight Associations' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Matrix Weight Associations</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='ruleWeightAssocGrid.showCreateDialog()'>New Weight Association</button>
-            <button dojoType='dijit.form.Button' onClick='ruleWeightAssocGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-    <table  jsId="ruleWeightAssocGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['active','org_unit','circ_weights','hold_weights']"
-            suppressFields="['id']"
-            query="{id: '*'}"
-            fmClass='cwa'
-            editOnEnter='true'/>
-</div>
-
-<script type="text/javascript">
-    dojo.require('openils.Util');
-    dojo.require('openils.widget.AutoGrid');
-    openils.Util.addOnLoad( function() { ruleWeightAssocGrid.loadAll(); } );
-</script>
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/config/z3950_source.tt2 b/Open-ILS/src/templates/default/conify/global/config/z3950_source.tt2
deleted file mode 100644 (file)
index 67063d0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Z39.50 Servers' %]
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/z3950_source.js'> </script>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Z39.50 Servers</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='zsGrid.showCreateDialog()'>New Z39.50 Server</button>
-            <button dojoType='dijit.form.Button' onClick='zsGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-
-    <table  jsId="zsGrid"
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'label', 'host', 'port', 'db', 'record_format', 'transmission_format', 'auth']"
-            query="{name: '*'}"
-            defaultCellWidth='"auto"'
-            fmClass='czs'
-            editOnEnter='true'>
-    </table>
-</div>
-
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/conify/global/permission/grp_penalty_threshold.tt2 b/Open-ILS/src/templates/default/conify/global/permission/grp_penalty_threshold.tt2
deleted file mode 100644 (file)
index 5984739..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Group Penalty Thresholds' %]
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
-    <div>Penalty Threshold</div>
-    <div>
-        <button dojoType='dijit.form.Button' onClick='gptGrid.showCreateDialog()'>New Penalty Threshold</button>
-        <button dojoType='dijit.form.Button' onClick='gptGrid.deleteSelected()'>Delete Selected</button>
-    </div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <span>Context Org Unit</span>
-    <select dojoType="openils.widget.OrgUnitFilteringSelect" 
-            jsId='contextOrgSelector' 
-            searchAttr='shortname' 
-            labelAttr='shortname'> 
-    </select>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table  jsId="gptGrid" 
-            autoHeight='true'
-            dojoType="openils.widget.AutoGrid" 
-            fieldOrder="['id', 'grp', 'org_unit', 'penalty', 'threshold']"
-            defaultCellWidth='15'
-            query="{id: '*'}" 
-            fmClass='pgpt' 
-            editOnEnter='true'>
-    </table>    
-</div>
-    
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/permission/grp_penalty_threshold.js'> </script>    
-<script type='javascript/text'>
-    var org_id = openils.User.user.ws_ou();
-    var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( 
-        function (i) { return i.id() } );
-</script>
-
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/conify/global/vandelay/match_set.tt2 b/Open-ILS/src/templates/default/conify/global/vandelay/match_set.tt2
deleted file mode 100644 (file)
index fad64db..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = 'Vandelay Match Sets' %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-        <div>[% ctx.page_title %]</div>
-        <div>
-            <button dojoType="dijit.form.Button"
-                onClick="vms_grid.showCreateDialog()">New Match Set</button>
-            <button dojoType="dijit.form.Button"
-                onClick="vms_grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div>
-        Show sets owned at or below:
-        <select dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId="context_org_selector"></select>
-    </div>
-    <table jsId="vms_grid"
-        dojoType="openils.widget.AutoGrid"
-        query="{id: '*'}"
-        defaultCellWidth="'16em'"
-        fmClass="vms"
-        fieldorder="['name', 'owner']"
-        suppressEditFields="['id']"
-        showPaginator="true"
-        editOnEnter="true">
-        <thead>
-            <tr>
-                <th field="name" get="field_plus_id" formatter="tree_editor_link"></th>
-                <th field="owner" get="openils.widget.AutoGrid.orgUnitGetter">
-                </th>
-            </tr>
-        </thead>
-    </table>
-</div>
-<div class="hidden">
-    <select dojoType="dijit.form.FilteringSelect" jsId="mtype_selector">
-        [%# for the origin of these hard coded options, see the definition
-        of vandelay.match_set.mtype in 012.schema.vandelay.sql %]
-        <option value="biblio">biblio</option>
-        <option value="authority">authority</option>
-        <!-- XXX: nah <option value="mfhd">mfhd</option> -->
-    </select>
-</div>
-
-<script type="text/javascript">
-    dojo.require("dijit.form.FilteringSelect");
-    dojo.require("openils.widget.AutoGrid");
-    dojo.require("openils.widget.OrgUnitFilteringSelect");
-
-    var context_org;
-
-    function load_grid(search) {
-        if (!search) search = {"id": {"!=": null}};
-
-        vms_grid.loadAll({"order_by": {"vms": "name"}}, search);
-    }
-
-    function field_plus_id(rowIndex, item) {
-        if (!item) return null;
-        var datum = {};
-        datum[this.field] = this.grid.store.getValue(item, this.field);
-        datum.id = this.grid.store.getValue(item, "id");
-        return datum;
-    }
-
-    function tree_editor_link(datum) {
-        if (!datum) return "";
-        return '<a href="[% ctx.base_path %]/eg/conify/global/vandelay/match_set_tree?match_set=' +
-            datum.id + '">' + datum.name + '</a>';
-    }
-
-    openils.Util.addOnLoad(
-        function() {
-            new openils.User().buildPermOrgSelector(
-                "ADMIN_IMPORT_MATCH_SET", context_org_selector,
-                null, function() {
-                    context_org_selector.onChange = function() {
-                        context_org = this.attr("value");
-                        vms_grid.resetStore();
-                        load_grid({
-                            "owner": aou.descendantNodeList(context_org, true)
-                        });
-                    };
-                }
-            );
-
-            vms_grid.overrideEditWidgets.mtype = mtype_selector;
-            vms_grid.overrideEditWidgets.mtype.shove = {"create": "biblio"};
-            load_grid();
-        }
-    );
-</script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/conify/global/vandelay/match_set_tree.tt2 b/Open-ILS/src/templates/default/conify/global/vandelay/match_set_tree.tt2
deleted file mode 100644 (file)
index cc5c788..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-[% ctx.page_title = 'Vandelay Match Set Editor' %]
-<style type="text/css">
-    h1 { margin: 1ex 0; }
-    .outer { clear: both; margin-bottom: 1ex; }
-    .space-me input { margin: 0 1em; }
-    button { margin: 0 0.5em; }
-    input[type=submit] { padding: 0 0.5em; }
-    #tree-here { margin-bottom: 1.5em; }
-    #vms-table { padding-bottom: 2ex; }
-    #vms-table th { text-align: right; }
-    #vms-table td { padding-left: 1em; }
-    #src-pane { float: left; width: 49%; }
-    #tree-pane { float: right; width: 50%; }
-    #submit-row { clear: both; text-align: center; padding-top: 1.5ex; }
-    #submit-row hr { margin: 1.5ex 0; }
-    #expr-preview-row { margin: 2ex 0; }
-    #expr-preview {
-        font-family: monospace;
-        font-size: 125%;
-        font-weight: bold;
-        background-color: #000066;
-        color: white;
-    }
-    .node-editor { margin-bottom: 1.5ex; }
-    .node-editor td { padding: 0.5ex; }
-    li { background-color: #ddd; }
-    .replace-mode { background-color: #990; color: #fff; }
-</style>
-<h1>[% ctx.page_title %]</h1>
-<table id="vms-table">
-    <tbody>
-        <tr>
-            <th>Match set name:</th>
-            <td><strong id="vms-name"></strong></td>
-        </tr>
-        <tr>
-            <th>Owning Library:</th>
-            <td id="vms-owner"></td>
-        </tr>
-        <tr>
-            <th>Type:</th>
-            <td id="vms-mtype"></td>
-        </tr>
-    </tbody>
-</table>
-<hr />
-<!-- XXX TODO
-    give some indication of which match set we're editing the tree for
-    -->
-<table class="hidden">
-    <tr quality-controls="1">
-        <td>
-            <label for="value-input">Value:</label>
-        </td>
-        <td>
-            <input id="value-input" type="text" fmfield="value" />
-        </td>
-    </tr>
-    <tr consistent-controls="1">
-        <td>
-            <label for="quality-input"
-                title="A relative number representing the impact of this expression on the score of the overall record match"><!-- XXX tooltipize -->
-                Match Score
-            </label>
-        </td>
-        <td>
-            <input id="quality-input" type="text" value="1"
-                size="4" maxlength="3" fmfield="quality" />
-        </td>
-    </tr>
-    <tr point-controls="1">
-        <td>
-            <label for="negate-input">Negate?</label>
-        </td>
-        <td>
-            <input id="negate-input" type="checkbox" fmfield="negate" />
-        </td>
-    </tr>
-</table>
-<div class="outer">
-    <div id="expr-preview-row">
-        <em>Your Expression:</em>
-        <span id="expr-preview"></span>
-    </div>
-    <div id="vmsp-buttons">
-        Add new
-        <button onclick="node_editor.add('svf');">Record Attribute</button>
-        <button onclick="node_editor.add('tag');">MARC Tag and Subfield</button>
-        <button onclick="node_editor.add('bool_op');">Boolean Operator</button>
-    </div>
-</div>
-<div class="outer" style="margin-top: 2ex;">
-    <div id="src-pane">
-        <div><big>Working Match Point</big></div>
-        <div>
-            <form id="node-editor-container" onsubmit="return false;"></form>
-        </div>
-        <ul id="src-here"></ul>
-    </div>
-
-    <div id="tree-pane">
-        <div><big>Your Expression</big></div>
-        <div id="tree-here"></div>
-        <div>
-            <button id="deleter" onclick="delete_selected_in_tree()">
-                Delete Selected Node
-            </button>
-            <button id="replacer" onclick="replace_mode()"></button>
-        </div>
-    </div>
-</div>
-<div id="submit-row">
-    <button onclick="save_tree()">Save Changes To Expression</button>
-</div>
-<hr />
-<div id="quality-editor-wrapper">
-    <div>
-        <div style="float: left; width: 50%;">
-            <big>Quality Metrics for this Match Set</big>
-        </div>
-        <div style="float: right; width: 49%; text-align: right;">
-            <button onclick="qnode_editor.add('svf')">
-                Record Attribute
-            </button>
-            <button onclick="qnode_editor.add('tag')">
-                MARC Tag and Subfield
-            </button>
-            <button onclick="vmsq_grid.deleteSelected()">
-                Delete Selected Metrics
-            </button>
-        </div>
-    </div>
-    <br style="clear: both;" />
-    <table id="qnode-editor-container"></table>
-    <table jsId="vmsq_grid"
-        dojoType="openils.widget.AutoGrid"
-        query="{id: '*'}"
-        defaultCellWidth="'17%'"
-        fmClass="vmsq"
-        fieldOrder="['quality','svf','tag','subfield','value']"
-        suppressFields="['match_set']"
-        showPaginator="true"
-        editOnEnter="false">
-    </table>
-</div>
-<div jsId="progress_dialog" dojoType="openils.widget.ProgressDialog"></div>
-<script type="text/javascript"
-    src="[% ctx.media_prefix %]/js/ui/default/conify/global/vandelay/match_set.js"></script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/footer.tt2 b/Open-ILS/src/templates/default/footer.tt2
deleted file mode 100644 (file)
index 2b087d2..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Powered By <img src='[% ctx.media_prefix %]/images/eg_tiny_logo.jpg'/>
-
diff --git a/Open-ILS/src/templates/default/header.tt2 b/Open-ILS/src/templates/default/header.tt2
deleted file mode 100644 (file)
index eb308f7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<div id='oils-base-header-content-div'>
-    <span id='oils-base-header-user-info'> </span>
-    <script type="text/javascript">
-        /*
-        dojo.addOnLoad(function(){
-            dojo.byId('oils-base-header-user-info').appendChild(
-                document.createTextNode(openils.User.user.usrname()));
-        });
-        */
-    </script>
-</div>
diff --git a/Open-ILS/src/templates/default/menu.tt2 b/Open-ILS/src/templates/default/menu.tt2
deleted file mode 100644 (file)
index fcd1992..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-<div id='oils-menu-div'>
-    <div dojoType="dijit.Toolbar" class='menuBar'>
-
-        <div dojoType="dijit.form.DropDownButton">
-            <span>Acquisitions</span>
-            <div dojoType="dijit.Menu">
-
-                <!-- ==========================================================================
-                     Picklist SubMenu
-                    ========================================================================== -->
-                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
-                    <span>Selection Lists</span>
-                     <div dojoType="dijit.Menu">
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                            onClick="location.href = '[% ctx.base_path %]/acq/picklist/list';">
-                            My Selection Lists
-                        </div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                            onClick="location.href = '[% ctx.base_path %]/acq/picklist/bib_search';">
-                            Title Search
-                        </div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                            onClick="location.href = '[% ctx.base_path %]/acq/picklist/upload';">
-                            Load Records
-                        </div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                            onClick="location.href = '[% ctx.base_path %]/acq/picklist/brief_record';">
-                            New Brief Record
-                        </div>
-                    </div>
-                </div>
-
-                <!-- ==========================================================================
-                     Purchase Order SubMenu
-                    ========================================================================== -->
-                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
-                    <span>Purchase Orders</span>
-                     <div dojoType="dijit.Menu">
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                            onClick="location.href = '[% ctx.base_path %]/acq/po/search';">
-                            PO Search
-                        </div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                            onClick="location.href = '[% ctx.base_path %]/acq/lineitem/search';">
-                            Lineitem Search
-                        </div>
-                        <!-- XXX 
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                            onClick="location.href = '[% ctx.base_path %]/acq/po/marc_upload';">
-                            Load Vendor Order Records
-                        </div>
-                        -->
-                    </div>
-                </div>
-                <!-- ==========================================================================
-                     Receiving SubMenu
-                    ========================================================================== -->
-                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
-                    <span>Receiving</span>
-                    <div dojoType="dijit.Menu">
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                            onClick="location.href = '[% ctx.base_path %]/acq/receiving/process';">
-                                Receiving
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-
-        <div dojoType="dijit.form.DropDownButton">
-            <span>Admin</span>
-            <div dojoType="dijit.Menu">
-                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
-                    <span>Acquisitions</span>
-                     <div dojoType="dijit.Menu">
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                            onClick="location.href = '[% ctx.base_path %]/acq/fund/list';">Funds</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/acq/funding_source/list';">Funding Sources</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/acq/provider';">Providers</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/acq/currency_type/list';">Currency Types</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/acq/exchange_rate';">Exchange Rates</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/acq/distribution_formula';">Distribution Formulas</div>
-                    </div>
-                </div>
-                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
-                    <span>Config</span>
-                     <div dojoType="dijit.Menu">
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/billing_type';">Billing Types</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/standing_penalty';">Standing Penalties</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/permission/grp_penalty_threshold';">
-                                    Group Penalty Thresholds</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/idl_field_doc';">Field Documentation</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/z3950_source';">Z39.50 Sources</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/circ_modifier';">Circulation Modifiers</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
-                                onClick="location.href = '[% ctx.base_path %]/conify/global/action_trigger/event_definition';">Action Trigger</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                             onClick="location.href = '[% ctx.base_path %]/conify/global/action/survey';">Surveys</div>
-                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
-                             onClick="location.href = '[% ctx.base_path %]/conify/global/config/org_unit_setting_type';">Org Unit Setting Types</div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-    <script type="text/javascript">
-        dojo.require('openils.XUL');
-        if(openils.XUL.isXUL()) 
-            openils.Util.hide('oils-menu-div')
-        dojo.require('dijit.form.Button');
-        dojo.require('dijit.Toolbar');
-        dojo.require('dijit.Menu');
-    </script>
-
diff --git a/Open-ILS/src/templates/default/opac/advanced.tt2 b/Open-ILS/src/templates/default/opac/advanced.tt2
deleted file mode 100644 (file)
index e752636..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    WRAPPER "default/opac/parts/base.tt2";
-    INCLUDE "default/opac/parts/topnav.tt2";
-    ctx.page_title = l("Advanced Search");
-    pane = CGI.param("pane") || "advanced" %]
-    <div id="search-wrapper">
-        [% INCLUDE "default/opac/parts/printnav.tt2" %]
-        <div id="adv_search_parent">
-            <div id="adv_search_tabs">
-                <a href="?pane=advanced" alt="[% l('Advanced Search') %]" [% IF pane == 'advanced' %]class="on" [% END %]id="adv_search"></a>
-                <a href="?pane=numeric" alt="[% l('Numeric Search') %]" [% IF pane == 'numeric' %]class="on" [% END %]id="num_search"></a>
-                <a href="?pane=expert" alt="[% l('Expert Search') %]" [% IF pane == 'expert' %]class="on" [% END %]id="expert_search"></a>
-            </div>
-        </div>
-    </div>
-    <div id="content-wrapper">
-        <div id="main-content">
-            <div class="advanced_div">
-            [% 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 %]
-            </div>
-            <div class="common-full-pad"></div>        
-        </div>
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/cnbrowse.tt2 b/Open-ILS/src/templates/default/opac/cnbrowse.tt2
deleted file mode 100644 (file)
index b9c7453..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-[%  # This is the stand-alone call-number browser.  This mainly wraps around
-    # the same guts as the "shelf browser" part of a record results page.
-
-    PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/base.tt2";
-    INCLUDE "default/opac/parts/topnav.tt2";
-    ctx.page_title = l("Call Number Browse"); %]
-    <div id="search-wrapper">
-        [% INCLUDE "default/opac/parts/printnav.tt2" %]
-        [% INCLUDE "default/opac/parts/searchbar.tt2" %]
-    </div>
-    <div id="content-wrapper">
-        <div id="main-content">
-            <div class="cnbrowse_div">
-                [% INCLUDE "default/opac/parts/record/cnbrowse.tt2" %]
-            </div>
-            <div class="common-full-pad"></div>        
-        </div>
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/home.tt2 b/Open-ILS/src/templates/default/opac/home.tt2
deleted file mode 100644 (file)
index 5e1fe41..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    WRAPPER "default/opac/parts/base.tt2";
-    INCLUDE "default/opac/parts/topnav.tt2";
-    ctx.page_title = l("Home") %]
-    <div id="search-wrapper">
-        [% INCLUDE "default/opac/parts/printnav.tt2" %]
-        [% INCLUDE "default/opac/parts/searchbar.tt2" %]
-    </div>
-    <div id="content-wrapper">
-        <div id="main-content-home">
-            <div class="common-full-pad"></div>
-            [% INCLUDE "default/opac/parts/homesearch.tt2" %]
-            <div class="common-full-pad"></div>        
-        </div>
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/login.tt2 b/Open-ILS/src/templates/default/opac/login.tt2
deleted file mode 100644 (file)
index 5f4d03f..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    WRAPPER "default/opac/parts/base.tt2";
-    INCLUDE "default/opac/parts/topnav.tt2";
-    ctx.page_title = l("Account Login") %]
-    <div id="search-wrapper">
-        [% INCLUDE "default/opac/parts/printnav.tt2" %]
-        [% INCLUDE "default/opac/parts/searchbar.tt2" %]
-    </div>
-    <div id="content-wrapper">
-        <div id="main-content">
-            [% INCLUDE "default/opac/parts/login/form.tt2" %]
-            <div class="clear-both very-big-height"></div>     
-            <script type="text/javascript">
-                /* Note: when common browsers suppor HTML5 "autofocus", we can remove this */
-                var _onload = window.onload;
-                window.onload = function() {
-                    try {
-                        document.getElementById("username_field").focus();
-                        if (_onload) _onload();
-                    } catch (E) {
-                        void(0);
-                    }
-                };
-            </script>
-        </div>
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/mylist.tt2 b/Open-ILS/src/templates/default/opac/mylist.tt2
deleted file mode 100644 (file)
index 2ec8a5d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-[%  PROCESS "default/opac/parts/header.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") %]
-    <div id="search-wrapper">
-        [% INCLUDE "default/opac/parts/printnav.tt2" %]
-        [% INCLUDE "default/opac/parts/searchbar.tt2" %]
-    </div>
-    <div id="content-wrapper">
-        <div id="main-content">
-            [%  IF ctx.mylist.size;
-                    INCLUDE "default/opac/parts/anon_list.tt2";
-                ELSE %]
-                <div class="opac-auto-171 opac-auto-097">[% l("You have not created a list yet."); %]</div>
-                [% END %]
-            <div class="common-full-pad"></div>        
-        </div>
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/circ_history.tt2 b/Open-ILS/src/templates/default/opac/myopac/circ_history.tt2
deleted file mode 100644 (file)
index d7c7989..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2";
-    myopac_page = "circs"
-    limit = ctx.circ_history_limit;
-    offset = ctx.circ_history_offset;
-%]
-
-<div style="padding:0px;">
-    
-    <div id="acct_checked_tabs" style="padding-bottom: 12px;color:#666;">
-        <div class="align selected">
-            <a href='circs'><img src="[% ctx.media_prefix %]/images/sub_checked_out_off.jpg"/></a>
-        </div>
-        <div class="align">
-            <img src="[% ctx.media_prefix %]/images/sub_checked_hist_on.jpg"/>
-        </div>
-        <div class="clear-both"></div>
-    </div>
-
-    <div class="header_middle">
-        <span class="float-left">[% l('Previously Checked Out Items') %]</span>
-        <span class='float-left' style='padding-left: 10px;'>
-            <a href='circ_history?limit=[% limit %]&amp;offset=[% offset - limit %]'
-                [% IF offset == 0 %] class='invisible' [% END %]><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
-            [%# TODO: get total to prevent paging off then end of the list.. %]
-            <a href='circ_history?limit=[% limit %]&amp;offset=[% offset + limit %]'
-               [% IF ctx.circs.size < limit %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
-        </span>
-        <span class="float-right">
-            <a class="hide_me" href="#">[% l('Export List') %]</a>
-        </span>
-    </div>
-    <div class="clear-both"></div>
-
-    [% IF ctx.circs.size < 1 %]
-    <div class="warning_box">
-        <big><strong>[% l('There are no items in your circulation history.') %]</strong></big>
-    </div>
-    [% ELSE %]
-
-    <div id='checked_main'>
-        <table style='border-collapse:collapse;'>
-            <thead id="acct_checked_main_header">
-                <tr>
-                    <td width="32%" style="padding-left:5px;">
-                        <span title="Click to sort" class='pointer'>[% l('Title') %]</span> /
-                        <span title="Click to sort" class='pointer'>[% l('Author') %]</span>
-                    </td>
-                    <td width="10%" style="padding-left:5px;">
-                        <span title="Click to sort" class='pointer'>[% l('Checkout Date') %]</span>
-                    </td>
-                    <td width="10%" style="padding-left:5px;">
-                        <span title="Click to sort" class='pointer'>[% l('Due Date') %]</span>
-                    </td>
-                    <td width="10%" style="padding-left:5px;">
-                        <span title="Click to sort" class='pointer'>[% l('Date Returned') %]</span>
-                    </td>
-                    <td width="16%">
-                        <span title="Click to sort" class='pointer'>[% l('Barcode') %]</span>
-                    </td>
-                    <td width="22%">
-                        <span title="Click to sort" class='pointer'>[% l('Call Number') %]</span>
-                    </td>
-                </tr>
-            </thead>
-            <tbody>
-                [% FOR circ IN ctx.circs;
-                    attrs = {marc_xml => circ.marc_xml};
-                    PROCESS get_marc_attrs args=attrs; %]
-                    <tr>
-                        <td style="padding-left:5px;padding-bottom:10px;">
-                            <a href="[% ctx.opac_root %]/record/[% circ.circ.target_copy.call_number.record.id %]" 
-                                name="[% l('Catalog record') %]">[% attrs.title | html %]</a>
-                            [% IF attrs.author %] /
-                            <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
-                            [% END %]
-                        </td>
-                        <td style="padding-left:5px;">
-                            [% date.format(ctx.parse_datetime(circ.circ.xact_start),DATE_FORMAT); %]
-                        </td>
-                        <td style="padding-left:5px;">
-                            [% date.format(ctx.parse_datetime(circ.circ.due_date),DATE_FORMAT); %]
-                        </td>
-                        <td style="padding-left:5px;">
-                            [% 
-                                IF circ.circ.checkin_time; 
-                                    date.format(ctx.parse_datetime(circ.circ.checkin_time),DATE_FORMAT); 
-                                ELSE; %]
-                                <span style='color:blue;'>*</span><!-- meh -->
-                            [% END; %]
-                        </td>
-                        <td>[% circ.circ.target_copy.barcode | html %]</td>
-                        <td>[% circ.circ.target_copy.call_number.label | html %]</td>
-                    </tr>
-                [% END %]
-            </tbody>
-        </table>
-    </div>
-    [% END %]
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/circs.tt2 b/Open-ILS/src/templates/default/opac/myopac/circs.tt2
deleted file mode 100644 (file)
index c878524..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2";
-    myopac_page = "circs"  %]
-<div id='myopac_checked_div' style="padding:0px;">
-
-    <div id="acct_checked_tabs" style="padding-bottom: 12px;color:#666;">
-        <div class="align selected">
-            <img src="[% ctx.media_prefix %]/images/sub_checked_out_on.jpg" />
-        </div>
-        <div class="align">
-            <a href="circ_history"><img
-                src="[% ctx.media_prefix %]/images/sub_checked_hist_off.jpg" /></a>
-        </div>
-        <div class="clear-both"></div>
-    </div>
-
-    <div class="header_middle">
-        <span class="float-left">[% l('Current Items Checked Out') %]</span>
-        <span class="float-right">
-            <a class="hide_me" href="#">[% l('Export List') %]</a>
-        </span>
-    </div>
-    <div class="clear-both"></div>
-    [% IF ctx.circs.size < 1 %]
-    <div class="warning_box">
-        <big><strong>[% l('You have no items checked out.') %]</strong></big>
-    </div>
-    [% ELSE %]
-    [% IF ctx.success_renewals %]
-    <div class="renew-summary">
-        [% l("Successfully renewed [_1] item(s)", ctx.success_renewals) %]
-    </div>
-    [% END %]
-    [% IF ctx.failed_renewals %]
-    <div class="renew-summary red">
-        [% l("Failed to renew [_1] item(s)", ctx.failed_renewals) %]
-    </div>
-    [% END %]
-    <div id='checked_main'>
-        <form method="POST" id="circ-form"
-            onsubmit="return confirm('[% l("Are you sure you wish to renew the selected item(s)?") %]');">
-        <table cellpadding='0' cellspacing='0' class="item_list_padding">
-            <tr>
-                <td>
-                    <select name="action">
-                        <option value="renew">[% l('Renew Selected Titles') %]</option>
-                    </select>
-                </td>
-                <td style="padding-left:9px;">
-                    <input type="image"
-                        alt="[% l('Go') %]" title="[% l('Go') %]"
-                        src="[% ctx.media_prefix %]/images/go-btn.png" /></a>
-                </td>
-                <td style="padding-left:5px;">
-                    <a href="#"><img alt="Renewing Help"
-                        src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
-                </td>
-            </tr>
-        </table>
-        <table id="acct_checked_main_header" cellpadding='0' cellspacing='0'
-            border='0'>
-            <tr>
-                <td width="1%" style="padding-left:10px;">
-                    <input type="checkbox" id="check_all_checked"
-                        onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'circ' && !inputs[i].disabled) inputs[i].checked = this.checked;}"
-                    />
-                </td>
-                <td width="40%" style="padding-left:5px;">
-                    <span title="Click to sort" class='pointer'>
-                        Title
-                    </span> /
-                    <span title="Click to sort" class='pointer'>
-                        Author
-                    </span>
-                </td>
-                <td width="8%" style="padding-right:5px;" align="center">
-                    <span title="Click to sort" class='pointer'>Renews<br />Left
-                    </span>
-                </td>
-                <td width="13%" style="padding-left:5px;">
-                    <span title="Click to sort" class='pointer'>Due Date</span>
-                </td>
-                <td width="16%">
-                    <span title="Click to sort" class='pointer'>barcode</span>
-                </td>
-                <td width="22%">
-                    <span title="Click to sort" class='pointer'>call number</span>
-                </td>
-            </tr>
-        </table>
-   
-        <div id="checked_temp_parent">
-            <div id="acct_checked_temp">
-                <table cellpadding='0' cellspacing='0' border='0'
-                    style="margin-top:5px;">
-                    [% FOR circ IN ctx.circs;
-                        attrs = {marc_xml => circ.marc_xml};
-                        PROCESS get_marc_attrs args=attrs; %]
-                    <tr>
-                        <td width="1%" style="padding-left:10px;" valign="top">
-                            <input type="checkbox" name="circ"
-                                [% IF circ.circ.renewal_remaining < 1; l('disabled="disabled"'); END %]
-                                value="[% circ.circ.id %]" />
-                        </td>
-                        <td width="40%"
-                            style="padding-left:5px;padding-bottom:10px;"
-                            name="author">
-                            <a href="[% ctx.opac_root %]/record/[% circ.circ.target_copy.call_number.record.id %]" name="[% l('Catalog record') %]">[% attrs.title | html %]</a>
-                            [% IF attrs.author %] /
-                            <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
-                            [% END %]
-                        </td>
-                        <td width="8%" name="renewals" align="center">
-                            [% circ.circ.renewal_remaining %]
-                        </td>
-                        <td width="13%" style="padding-left:5px;"
-                            name="due_date">
-                            [% date.format(ctx.parse_datetime(circ.circ.due_date),DATE_FORMAT) %]
-                        </td>
-                        <td width="16%" name="barcode">
-                            [% circ.circ.target_copy.barcode | html %]
-                        </td>
-                        <td width="22%" name="call_number">
-                            [% circ.circ.target_copy.call_number.label | html %]
-                        </td>
-                    </tr>
-                    [%  IF circ.renewal_response AND
-                            circ.renewal_response.textcode != 'SUCCESS' %]
-                    <tr>
-                        <td colspan="6">[%# XXX colspan="0" does not work in IE %]
-                            <span class="failure-text" title="[% circ.renewal_response.textcode | html %] / [% circ.renewal_response.payload.fail_part | html %]">
-                                [% (circ.renewal_response.desc || circ.renewal_response.payload.fail_part || circ.renewal_response.textcode) | html %]
-                            </span>
-                        </td>
-                    </tr>
-                    [%  END;
-                    END %]
-                </table>
-            </div>
-        </div>
-        </form>
-    </div>
-    [% END %]
-    <div id='non_cat_circs_div' class='hide_me'>
-        <br/>
-        <div style='text-align: center'><b>[% l("Other Circulations") %]</b></div>
-        <table class='data_grid' width='100%'>
-            <thead>
-                <tr>
-                    <td>[% l("Circulating Library") %]</td>
-                    <td>[% l("Circulation Type") %]</td>
-                    <td>[% l("Please return by ...") %]</td>
-                </tr>
-            </thead>
-            <tbody id='non_cat_circs_tbody'>
-                <tr id='non_cat_circs_row'>
-                    <td name='circ_lib'/>
-                    <td name='item_type'/>
-                    <td name='circ_time'/>
-                </tr>
-            </tbody>
-        </table>
-    </div>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/hold_history.tt2 b/Open-ILS/src/templates/default/opac/myopac/hold_history.tt2
deleted file mode 100644 (file)
index ca0ac59..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2";
-    myopac_page = "holds"  
-    limit = ctx.hold_history_limit;
-    offset = ctx.hold_history_offset;
-%]
-
-<div id='myopac_holds_div'>
-
-    <div id="acct_holds_tabs" style="padding-bottom: 12px;color:#666;">
-        <div class="align selected">
-            <a href='holds'><img src="[% ctx.media_prefix %]/images/sub_holds_off.jpg"/></a>
-        </div>
-        <div class="align">
-            <img src="[% ctx.media_prefix %]/images/sub_holds_hist_on.jpg"/>
-        </div>
-        <div class="clear-both"></div>
-    </div>
-
-    <div class="header_middle">
-        <span style="float:left;">[% l("Previously Held Items") %]</span>
-        <span class='float-left' style='padding-left: 10px;'>
-            <a href='hold_history?limit=[% limit %]&amp;offset=[% offset - limit %]'
-                [% IF offset == 0 %] class='invisible' [% END %]><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
-            [%# TODO: get total to prevent paging off then end of the list.. %]
-            <a href='hold_history?limit=[% limit %]&amp;offset=[% offset + limit %]'
-               [% IF ctx.holds.size < limit %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
-        </span>
-        <span style="float:right;">
-            <a class="hide_me" href="#">Export List</a>
-        </span>
-    </div>
-    <div class="clear-both"></div>
-
-    <div id='holds_main'>
-        [% IF ctx.holds.size < 1 %]
-        <div class="warning_box">
-            <big><strong>[% l('No holds found.') %]</strong></big>
-        </div>
-        [% ELSE %]
-        <table style='border-collapse:collapse; width: 100%;'>
-            <thead id='acct_holds_main_header'>
-                <tr>
-                    <td width="138"><span>[% l('Title') %]</span></td>
-                    <td width="123"><span>[% l('Author') %]</span></td>
-                    <td width="64"> <span>[% l('Format') %]</span></td>
-                    <td width="136"><span>[% l('Pickup Location') %]</span> </td>
-                    <td width="104">[% l('Active On') %]</td>
-                    <td width="95">[% l('Active') %]</td>
-                    <td width="106">[% l('Date Fulfilled') %]</td>
-                    <td width="172"><span>[% l('Status') %]</span></td>
-                </tr>
-            </thead>
-            <tbody>
-                [% FOR hold IN ctx.holds;
-                    attrs = {marc_xml => hold.marc_xml};
-                    PROCESS get_marc_attrs args=attrs;
-                    ahr = hold.hold.hold %]
-
-                <tr id="acct_holds_temp" name="acct_holds_temp" class="acct_holds_temp">
-
-                    <td width="138">
-                        <div style="margin-top:10px;margin-bottom:10px;">
-                            <a href="[% ctx.opac_root %]/record/[% hold.hold.bre.id %]">[% attrs.title | html %]</a>
-                        </div>
-                    </td>
-                    <td width="123">
-                        <div style="margin-top:10px;margin-bottom:10px;">
-                            <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
-                        </div>
-                    </td>
-                    <td width="64">
-                        <div style="width:26px;height:23px;margin-top:6px;margin-bottom:6px;">
-                            [% IF attrs.format_icon %]
-                            <img src="[% ctx.media_prefix %]/images/[% attrs.form_icon %]"
-                                title="[% attrs.format %]" alt="[% attrs.format %]" />
-                            [% ELSE;
-                                attrs.format;
-                               END %]
-                        </div>
-                    </td>
-                    <td width="136">
-                        [% ctx.get_aou(ahr.pickup_lib).name | html %]
-                    </td>
-                    <td width="104">
-                        [% IF ahr.frozen == 't' AND ahr.thaw_date;
-                            date.format(ctx.parse_datetime(ahr.thaw_date), DATE_FORMAT);
-                        END %]
-                    </td>
-                    <td width="95">
-                        [% l(ahr.frozen == 'f' ? 'Active' : 'Suspended') %]
-                    </td>
-                    <td width="106">
-                        [% IF ahr.fulfillment_time;
-                            date.format(ctx.parse_datetime(ahr.fulfillment_time), DATE_FORMAT);
-                        END %]
-                    </td>
-                    <td width="110">
-                        <div name="acct_holds_status"
-                            style="margin-top:10px;margin-bottom:10px;">
-                            [%
-                                IF hold.hold.status == 4;
-                                    l("Available");
-                                    IF ahr.shelf_expire_time;
-                                        l('<br/>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;
-                            %]
-                        </div>
-                    </td>
-                </tr>
-                [% END %]
-            </tbody>
-        </table>
-        [% END %]
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/holds.tt2 b/Open-ILS/src/templates/default/opac/myopac/holds.tt2
deleted file mode 100644 (file)
index e5f5c94..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2";
-    myopac_page = "holds"  %]
-<div id='myopac_holds_div'>
-
-    <div id="acct_holds_tabs" style="padding-bottom: 12px;color:#666;">
-        <div class="align selected">
-            <img src="[% ctx.media_prefix %]/images/sub_holds_on.jpg"/>
-        </div>
-        <div class="align">
-            <a href='hold_history'><img src="[% ctx.media_prefix %]/images/sub_holds_hist_off.jpg"/></a>
-        </div>
-        <div class="clear-both"></div>
-    </div>
-
-    <div class="header_middle">
-        <span id="acct_holds_header" style="float:left;">
-            [%  IF CGI.param("available");
-                    l("Items Ready for Pickup");
-                ELSE;
-                    l("Current Items on Hold");
-                END
-            %]
-        </span>
-        <span style="float:right;">
-            <a class="hide_me" href="#">Export List</a>
-        </span>
-    </div>
-    <div class="clear-both"></div>
-    <div id='holds_main'>
-        <form method="POST">
-        <table cellpadding='0' cellspacing='0' class="opac-auto-097">
-            <tr>
-                <td width="1">
-                    <select name="action" id="acct_holds_actions">
-                        <option id='myopac_holds_actions_none' value=''>
-                        -- [% l("Actions for selected holds") %] --
-                        </option>
-                        <option value='suspend'>
-                            [% l("Suspend") %]
-                        </option>
-                        <option value='activate'>
-                            [% l("Activate") %]
-                        </option>
-                        <!-- XXX maybe later <option value='thaw_date'>
-                            [% l("Set Active Date") %]
-                        </option> -->
-                        <option value='cancel'>
-                            [% l("Cancel") %]
-                        </option>
-                    </select>
-                </td>
-                <td width="1" style="padding-left:9px;">
-                    <input type="image"
-                        alt="[% l('Go') %]" title="[% l('Go') %]"
-                        src="[% ctx.media_prefix %]/images/go-btn.png" />
-                </td>
-                <td width="1" style="padding-left:5px;">
-                    <a href="#"><img
-                        alt="Holds Help"
-                        src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
-                </td>
-                <td align="right">
-                    [% l("Show") %] &nbsp; &nbsp;
-                    [% IF CGI.param("available") %]
-                    <a href="holds">[% l('all') %]</a> |
-                    <strong>[% l("only available") %]</strong>
-                    [% ELSE %]
-                    <strong>[% l("all") %]</strong> |
-                    <a href="holds?available=1">[% l("only available") %]</a>
-                    [% END %] &nbsp; &nbsp;
-                    [% l("holds") %]
-                    <select class="hide_me" id="holds_sort">
-                        <option value="">-- Sort By --</option>
-                        <option value="title">Title</option>
-                        <option value="pickup">PickUp Location</option>
-                        <option value="status">Status</option>
-                    </select>
-                </td>
-            </tr>
-        </table>
-        [% IF ctx.holds.size < 1 %]
-        <div class="warning_box">
-            <big><strong>[% l('No holds found.') %]</strong></big>
-        </div>
-        [% ELSE %]
-        <table id="acct_holds_main_header" cellpadding='0' cellspacing='0'
-            border='0' width="100%">
-            <tr>
-                <td width="36" align="center">
-                    <input type="checkbox" onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'hold_id' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
-                </td>
-                <td width="138">
-                    <span title="Click to sort"
-                        style="cursor:pointer;">
-                        Title
-                    </span>
-                </td>
-                <td width="123">
-                    <span title="Click to sort" style="cursor:pointer;">Author</span>
-                </td>
-                <td width="64">
-                    <span title="Click to sort"
-                        style="cursor:pointer;">Format</span>
-                </td>
-                <td width="136">
-                    <span title="Click to sort"
-                        style="cursor:pointer;">Pickup Location</span>
-                </td>
-                <td width="104">Activate</td>
-                <td width="106">Cancel if not<br />filled by</td>
-                <td width="95">Active</td>
-                <td width="172">
-                    <span title="Click to sort"
-                        style="cursor:pointer;">Status</span>
-                </td>
-            </tr>
-        </table>
-        <div class="hide_me">
-            <select id="hold_pickup_lib_temp" name="hold_pickup_lib_sel"
-                class="hide_me" style="width:125px;height:21px;"></select>
-        </div>
-
-        <table cellpadding='0' cellspacing='0' border='0' width="100%">
-            <tbody id="holds_temp_parent">
-                [% FOR hold IN ctx.holds;
-                    attrs = {marc_xml => hold.marc_xml};
-                    PROCESS get_marc_attrs args=attrs;
-                    ahr = hold.hold.hold %]
-                <tr id="acct_holds_temp" name="acct_holds_temp"
-                    class="acct_holds_temp[% ahr.frozen == 't' ? ' inactive-hold' : '' %]">
-                    <td width="36" align="center" style="text-align:center;">
-                        <input type="checkbox" name="hold_id" value="[% ahr.id %]" />
-                    </td>
-                    <td width="138">
-                        <div style="margin-top:10px;margin-bottom:10px;">
-                            <a href="[% ctx.opac_root %]/record/[% hold.hold.bre.id %]">[% attrs.title | html %]</a>
-                        </div>
-                    </td>
-                    <td width="123">
-                        <div style="margin-top:10px;margin-bottom:10px;">
-                            <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
-                        </div>
-                    </td>
-                    <td width="64">
-                        <div style="width:26px;height:23px;margin-top:6px;margin-bottom:6px;">
-                            [% IF attrs.format_icon %]
-                            <img src="[% ctx.media_prefix %]/images/[% attrs.form_icon %]"
-                                title="[% attrs.format %]" alt="[% attrs.format %]" />
-                            [% ELSE;
-                                attrs.format;
-                               END %]
-                        </div>
-                    </td>
-                    <td width="136">
-                        [% ctx.get_aou(ahr.pickup_lib).name | html %]
-                    </td>
-                    <td width="104">
-                        <!-- <input
-                            title="Enter a date (e.g. 10/21/2010)"
-                            class="hide_me" style="width:91px;"
-                            name="activate_box" type="text" /> -->
-                        [% IF ahr.frozen == 't' AND
-                                ahr.thaw_date;
-                            date.format(ctx.parse_datetime(ahr.thaw_date), DATE_FORMAT);
-                        END %]
-                    </td>
-                    <td width="106">
-                        <!-- <input title="[% l('Enter a date (e.g. 10/21/2010)') %]"
-                            class="hide_me" style="width:91px;"
-                            name="hold_expires_box" type="text" />-->
-                        [% IF ahr.expire_time;
-                            date.format(ctx.parse_datetime(ahr.expire_time), DATE_FORMAT);
-                        END %]
-                    </td>
-                    <td width="95">
-                        <!-- <select name="hold_active_sel"
-                            style="width:90px;" class="hide_me">
-                            <option value="f">Active</option>
-                            <option value="t">Suspended</option>
-                        </select> -->
-                        [% l(ahr.frozen == 'f' ? 'Active' : 'Suspended') %]
-                    </td>
-                    <td width="110">
-                        <div name="acct_holds_status"
-                            style="margin-top:10px;margin-bottom:10px;">
-                            [% PROCESS get_hold_status hold=hold; %]
-                        </div>
-                    </td>
-                    <td class="opac-auto-161">
-                        <a href="[% ctx.opac_root %]/myopac/holds/edit?id=[% ahr.id %]">Edit</a>
-                    </td>
-                </tr>
-                [% END %]
-            </tbody>
-        </table>
-        [% END %]
-        </form>
-    </div>
-
-    <span id='myopac.holds.cancel.confirm' class='hide_me'>[% l("Are you sure you wish to cancel the selected holds?") %]</span>
-    <span id='myopac.holds.freeze.confirm' class='hide_me'>[% l("Are you sure you wish to suspend the selected holds?  If an item has already been selected to fulfill the hold, it will not be suspended") %]</span>
-    <span id='myopac.holds.thaw.confirm' class='hide_me'>[% l("Are you sure you wish to activate the selected holds?") %]</span>
-    <span id='myopac.holds.thaw_date.confirm' class='hide_me'>[% l("Are you sure you wish to change the activate date for the selected holds?") %]</span>
-    <span id='myopac.holds.freeze.select_thaw' class='hide_me'>[% l("Select an automatic activation date.  If no date is chosen, the holds will remain suspended until they are manually activated.") %]</span>
-
-    <table width='100%' id='myopac_holds_processing' class='hide_me'>
-        <tr><td>[% l("Processing holds... This may take a moment.") %]</td></tr>
-    </table>
-   
-    <span class='hide_me' id='myopac_holds_cancel_verify'>
-       [% l("If you wish to cancel the selected hold, click OK, otherwise click Cancel.") %]
-    </span>
-</div>
-<div id='myopac_holds_thaw_date_form' class='hide_me'>
-    <div id='myopac_holds_freeze_select_thaw'>
-        [% l("Select an automatic activation date.  If no date is chosen, the holds will remain suspended until they are manually activated.") %]
-    </div>
-    <p>
-        <input size='10' maxlength='10'
-            type='text' id='myopac_holds_thaw_date_input' />
-    </p>
-    <p>
-        <button>[% l("Submit") %]</button>
-    </p>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/holds/edit.tt2 b/Open-ILS/src/templates/default/opac/myopac/holds/edit.tt2
deleted file mode 100644 (file)
index f432697..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-[%  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 = ctx.holds.0;
-    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) : '';
-%]
-<div class="pad-bottom-five">
-    <div class="header_middle">
-        <span id="acct_holds_header float-left">[% l('Editing Hold') %]</span>
-        &nbsp; &nbsp; &nbsp; &nbsp;
-        <a href="[% ctx.opac_root %]/myopac/holds">[% l('List all holds') %]</a>
-    </div>
-    <div id="hold_editor">
-        [% IF hold %]
-            <h1>[% attrs.title | html %]</h1>
-            <h2>[% attrs.author | html %]</h2>
-            [% IF attrs.format_icon %]<p>
-                <strong>[% l('Format:') %]</strong>
-                <img src="[% ctx.media_prefix %]/images/[% attrs.format_icon %]" alt="[% attrs.format %]" title="[% attrs.title | html %]" />
-            </p>[% END %]
-            <p>
-                <strong>[% l('Status') %]</strong>: [% hold.human_status | html %]
-            </p>
-            <form method="POST">
-                <table id="hold_editor_table">
-                    <tr>
-                        <th>
-                            <input type="hidden" name="action" value="edit" />
-                            <input type="hidden" name="hold_id"
-                                value="[% ahr.id %]" />
-                            [% l('Pickup library') %]
-                        </th>
-                        <td>
-                            [% PROCESS build_org_selector
-                                name='pickup_lib' value=ahr.pickup_lib %]
-                        </td>
-                    </tr>
-                    <tr>
-                        <th>
-                            [% l('Cancel unless filled by') %]
-                        </th>
-                        <td>
-                            <input type="text" name="expire_time"
-                                value="[% expire_time | html %]" />
-                        </td>
-                        <td class="fmt-note">
-                            <em>[% l('Enter date in MM/DD/YYYY format') %]</em>
-                            <!-- XXX TODO pick out a minimal, simple, reliable
-                            calendar widget that's not part of some giant,
-                            bloated framework and doesn't do anything at onload.
-                            -->
-                        </td>
-                    </tr>
-                    <tr>
-                        <th>
-                            [% l('Active?') %]
-                        </th>
-                        <td>
-                            <select name="frozen">
-                                <option value="f"[% ahr.frozen == 't' ? '' :' selected="selected"' %]>
-                                    [% l('Yes, this hold is active now') %]
-                                </option>
-                                <option value="t"[% ahr.frozen == 't' ? ' selected="selected"' : '' %]>
-                                    [% l('No, this hold is suspended') %]
-                                </option>
-                            </select>
-                        </td>
-                    </tr>
-                    <tr>
-                        <th>
-                            [% l('If suspended, activate on') %]
-                        </th>
-                        <td>
-                            <input type="text" name="thaw_date"
-                                value="[% thaw_date | html %]" />
-                        </td>
-                        <td class="fmt-note">
-                            <em>[% l('Enter date in MM/DD/YYYY format') %]</em>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td colspan="2" class="hold-editor-controls">
-                            <input type="image"
-                                src="[% ctx.media_prefix %]/images/btnSubmit.png"
-                                alt="[% l('Submit') %]"
-                                title="[% l('Submit') %]" />
-                            <a href="[% ctx.opac_root %]/myopac/holds"><img
-                                src="[% ctx.media_prefix %]/images/btnCancel.png"
-                                alt="[% l('Cancel') %]"
-                                title="[% l('Cancel') %]" /></a>
-                        </td>
-                    </tr>
-                </table>
-            </form>
-        [% ELSE;
-            l('Hold not found');
-        END %]
-    </div>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/lists.tt2 b/Open-ILS/src/templates/default/opac/myopac/lists.tt2
deleted file mode 100644 (file)
index 0c4852f..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2";
-    myopac_page = "lists"  %]
-<div id='myopac_bookbag_div' style="padding:5px;">
-
-    <!-- <div class="header_middle">
-        <span id="acct_holds_header" style="float:left;">[% l('My Lists') %]</span>
-        <span style="float:right;"><a class="hide_me" href="#">[% l('Export List') %]</a></span>
-    </div>
-    <div style="float:right;width:85px;">
-        <div style="position:absolute">
-            <div style="position:relative;top:13px;">
-                <a href="#" style="position:relative;top:-3px;left:-5px;"><img alt="[% l('Saving Help') %]" 
-                    src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
-                <a href="#"><img alt="[% l('Save') %]" src="[% ctx.media_prefix %]/images/save-btn.png"/></a>
-            </div>
-        </div>
-    </div> -->
-    <div id="temp_wrapper">
-
-
-    <!-- new list creation -->
-    <form action="[% ctx.opac_root %]/myopac/list/update" method="POST" id="create_form">
-        <h2>[% l('Create new list') %]</h2><a name="createnewlist"></a>
-        <table cellpadding="0" border="0" id="list_create_table">
-            <tr>
-                <td>
-                    <label for="list_create_name">[% l('Enter the name of the new list:') %]</label>
-                    <input id="list_create_name" type="text" name="name" />
-                    <input type="hidden" name="action" value="create" />
-                </td>
-                <td>
-                    <label for="list_create_shared">[% l('Share this list?') %]</label>
-                    <select name="shared" id="list_create_shared">
-                        <option value="0">[% l('No') %]
-                        <option value="1">[% l('Yes') %]
-                    </select>
-                    <a href="javascript:void(0);" onclick="alert(document.getElementById('bb_publish_text').innerHTML);"><img alt="[% l('Sharing Help') %]"
-                        src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
-                </td>
-                <td class="list-create-table-buttons">
-                    <input type="image" alt="[% l('Submit') %]" src="[% ctx.media_prefix %]/images/btnSubmit.png"/>
-                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                    <a href="javascript:void(0);"
-                        onclick="document.getElementById('create_form').reset(); return false"><img
-                        alt="[% l('Cancel') %]"
-                        src="[% ctx.media_prefix %]/images/btnCancel.png" /></a>
-                </td>
-            </tr>
-        </table>
-    </form>
-
-    [% INCLUDE "default/opac/parts/anon_list.tt2" %]
-    [% IF ctx.bookbags.size %]
-    <div id='acct_lists_prime'>
-        [% FOR bbag IN ctx.bookbags %]
-        <div id='acct_list_template'>
-            <div style="width:100%">
-                <form action="[% ctx.opac_root %]/myopac/list/update" method="POST">
-                    <div class="bookbag-share">
-                        <input type="hidden" name="list" value="[% bbag.id %]" />
-                        [% IF bbag.pub != 't' %]
-                        <input type="hidden" name="action" value="show" />
-                        <input type="submit" value="[% l('Share') %]" />
-                        [% ELSE %]
-                        <input type="hidden" name="action" value="hide" />
-                        <input type="submit" value="[% l('Hide') %]" />
-                        [% END %]
-                    </div>
-                </form>
-                <form action="[% ctx.opac_root %]/myopac/list/update" method="POST">
-                    <div class="bookbag-controls">
-                        <input type="hidden" name="list" value="[% bbag.id %]" />
-                        <input type="hidden" name="action" value="delete" />
-                        <input type="submit" value="[% l('Delete List') %]" />
-                    </div>
-                </form>
-                <div class="bookbag-controls">
-                    <big><strong>
-                    [% IF bbag.pub == 't' %]
-                        [% url = 'http://' _ ctx.hostname _ '/opac/extras/feed/bookbag/html-full/' _ bbag.id %]
-                        <a target='_blank' href='[% url %]'>[% bbag.name | html %]</a>
-                    [% ELSE %]
-                    [% bbag.name | html %]
-                    [% END %]
-                    </strong></big>
-                </div>
-                <div class="bookbag-controls">
-                    [% IF bbag.pub == 't'; %]
-                    <a target='_blank' href='/opac/extras/feed/bookbag/rss2-full/[% bbag.id %]'><img
-                        alt="[% l('RSS Feed') %]" border="0"
-                        src="[% ctx.media_prefix %]/images/small-rss.png"/></a>
-                    [% END %]
-                </div>
-                <div class="clear-both pad-bottom-five"></div>
-            </div>
-            <form action="[% ctx.opac_root %]/myopac/list/update" method="POST">
-            <input type="hidden" name="list" value="[% bbag.id %]" />
-            <table cellpadding='0' cellspacing='0' border='0'>
-                <thead id="acct_list_header">
-                    <tr>
-                        <td width="1%" style="padding-left: 10px;">
-                        <input type="checkbox" onclick="
-                            var inputs=document.getElementsByTagName('input'); 
-                            for (i = 0; i < inputs.length; i++) { 
-                                if (inputs[i].name == 'selected_item' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %]) 
-                                    inputs[i].checked = this.checked;}"/>
-
-                        </td>
-                        <td width="49%" style="padding-left: 5px;">[% l('Title') %]</td>
-                        <td width="49%">[% l('Author(s)') %]</td>
-                        <td width="1%" class="nowrap">
-                            <select class="selector_actions_for_list" name="action">
-                                <option>[% l('-- Actions for this list --') %]</option>
-                                <option value="place_hold">[% l('Place Hold') %]</option>
-                                <option value="del_item">[% l('Remove Items') %]</option>
-                            </select>
-                            <input type="submit" value="[% l('Go') %]" />
-                        </td>
-                    </tr>
-                </thead>
-                <tbody>
-                    [% UNLESS bbag.items.size %]
-                    <tr><td colspan="4" class="opac-auto-171 opac-auto-097">
-                        [% l("This list contains no items.") %]
-                    </td></tr>
-                    [% END %]
-                    [% FOR item IN bbag.items;
-                        rec_id = item.target_biblio_record_entry;
-                        attrs = {marc_xml => ctx.bookbags_marc_xml.$rec_id};
-                        PROCESS get_marc_attrs args=attrs %]
-                    <tr>
-                        <td class="item_list_padding" style="padding-left: 10px;"><input type="checkbox" name="selected_item" value="[% item.id %]" bbag='[% bbag.id %]'/></td>
-                        <td class="item_list_padding" style="padding-left: 5px;">[% attrs.title | html %]</td>
-                        <td class="item_list_padding">[% attrs.author | html %]</td>
-                    </tr>
-                    [% END %]
-                </tbody>
-            </table>
-            </form>
-            <br /><br />
-        </div>
-        [% END %]
-    </div>
-    [% END %]
-
-    <div id='myopac_delete_bookbag_warn' class='hide_me'>
-        [% l("This will remove the selected bookbag and all items contained within the bookbag.  Are you sure you wish to continue?") %]
-    </div>
-    <div style='text-align: center; font-weight: bold;' 
-        class='hide_me' id='myopac_bookbags_none'>[% l("You have not created any bookbags") %]</div>
-    <div style='width: 99%; text-align: center'>
-        <b id='myopac_bookbag_items_name'> </b>
-    </div>
-    <span id='bb_publish_text' class='hide_me'>
-[% |l %]Sharing a Bookbag means that the contents 
-of the Bookbag will be visible to others.  
-To see the public view of a shared Bookbag, 
-click on the Bookbag's name in the Bookbag list.[% END %]
-    </span>
-    <span id='myopac_remove_bb_item_confirm' class='hide_me'>
-        [% l("Are you sure you wish to remove this bookbag item?") %]
-    </span>
-    <span id='myopac_make_published_confirm' class='hide_me'>
-        [% l("Sharing this bookbag will allow the contents of the bookbag to be seen by others.  Are you sure you wish to share this bookbag?") %]
-    </span>
-    <span id='myopac_make_unpublished_confirm' class='hide_me'>
-        [% l("Are you sure you wish to hide this bookbag?") %]
-    </span>
-    <span id='myopac_bb_update_success' class='hide_me'>
-        [% l("The Bookbag was successfully updated.") %]
-    </span>
-    <span id='bb_create_warning' class='hide_me'>
-        [% l("Warning: Adding items to a bookbag creates a link between you and the items in the database.  The contents of the bookbag are NOT publicly viewable unless the bookbag is shared. However, if you prefer not to have any link between your patron record and a particular item or items, we suggest that you do not place said items in a bookbag or that you avoid using bookbags all together.  Thank you.") %]
-    </span>
-    <span id='myopac_bb_what_are' class='hide_me'>
-        [% l("Bookbags are...") %]
-    </span>
-    <span class='hide_me' id='bb_update_success'>
-        [% l("Bookbag successfully updated") %]
-    </span>
-
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/main.tt2 b/Open-ILS/src/templates/default/opac/myopac/main.tt2
deleted file mode 100644 (file)
index 818d75c..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-[%  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";
-%]
-<form action="[% ctx.opac_root %]/myopac/main_payment_form" method="GET">
-    [% IF ctx.fines.circulation.size > 0 %]
-    <div id='myopac_circ_trans_div'>
-        <table width='100%' class='data_grid'>
-            <thead>
-                <tr>
-                    <td colspan='10' style='padding: 6px'>
-                        <strong>[% l("Fines") %]</strong>
-                    </td>
-                </tr>
-                <tr>
-                    <td>[% l("Title") %]</td>
-                    <td>[% l("Author") %]</td>
-                    <td>[% l("Checkout Date") %]</td>
-                    <td>[% l("Due Date") %]</td>
-                    <td>[% l("Date Returned") %]</td>
-                    <td>[% l("Balance Owed") %]</td>
-                    <td nowrap="nowrap" style="white-space:nowrap;">
-                        <input id="pay_fines_box1" checked="checked"
-                            type="checkbox" onchange="select_all_checkboxes('xact', this.checked)"
-                            title="[% l('Click to (un)select all fines') %]" />
-                        <label for="pay_fines_box1">[% l('Pay Fines') %]</label>
-                    </td>
-                </tr>
-            </thead>
-            <tbody id='myopac_circ_trans_tbody'>
-                [% 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 %]
-                <tr id='myopac_circ_trans_row'>
-                    <td>
-                        [% recid = f.xact.circulation.target_copy.call_number.record.id || f.xact.reservation.target_resource_type.record.id;
-                        IF recid; %]
-                        <a href="[% ctx.opac_root %]/record/[% recid %]">[% attrs.title | html %]</a>
-                        [% ELSE %]
-                        [% attrs.title | html %]
-                        [% END %]
-                    </td>
-                    <td>
-                        <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
-                    </td>
-                    <td name='myopac_circ_trans_start'>
-                        [% ts = f.xact.circulation.xact_start || f.xact.reservation.start_time || 0;
-                        IF ts;
-                            date.format(ctx.parse_datetime(ts), DATE_FORMAT);
-                        END %]
-                    </td>
-                    <td name='myopac_circ_trans_due'>
-                        [% ts = f.xact.circulation.due_date || f.xact.reservation.end_time || 0;
-                        IF ts;
-                            date.format(ctx.parse_datetime(ts), DATE_FORMAT);
-                        END %]
-                    </td>
-                    <td name='myopac_circ_trans_finished'>
-                        [%  ts = f.xact.circulation.checkin_time || f.xact.reservation.return_time || 0;
-                            IF ts;
-                                date.format(ctx.parse_datetime(ts), DATE_FORMAT);
-                            ELSE %]
-                            <!-- XXX TODO fines aren't really accruing
-                                if circ has hit maxfines. more clarity
-                                here? -->
-                            <span class="red">[% l('(fines accruing)') %]</span>
-                        [%  END %]
-                    </td>
-                    <td>
-                        <strong class="red">
-                            [% money(f.xact.balance_owed) %]
-                        </strong>
-                    </td>
-                    <td>
-                        <input type="checkbox" checked="checked" 
-                            title="[% l('Pay this fine') %]" name="xact"
-                            value="[% f.xact.id %]" />
-                    </td>
-                </tr>
-                [% END %]
-            </tbody>
-        </table>
-    </div>
-    [% END %]
-
-    [% IF ctx.fines.grocery.size > 0 %]
-    <!-- Table for all non-circulation transactions -->
-    <div id='myopac_trans_div'>
-        <br/>
-        <hr class='opac-auto-013'  color="#dcdbdb" />
-        <br/>
-        <table width='100%' class='data_grid data_grid_center'
-            id='myopac_trans_table'>
-            <thead>
-                <tr>
-                    <td colspan='8' style='padding: 6px'>
-                        <b>[% l("Other Fees") %]</b>
-                    </td>
-                </tr>
-                <tr>
-                    <td width='16%'>[% l("Transaction Start Time") %]</td>
-                    <td width='16%'>[% l("Last Payment Time") %]</td>
-                    <td width='16%'>[% l("Initial Amount Owed") %]</td>
-                    <td width='16%'>[% l("Total Amount Paid") %]</td>
-                    <td width='16%'>[% l("Balance Owed") %]</td>
-                    <td width='16%'>[% l("Billing Type") %]</td>
-                    <td width='4%' align="center" nowrap="nowrap"
-                        style="white-space:nowrap;">
-                        <input id="pay_fines_box2" checked="checked"
-                            type="checkbox" onchange="select_all_checkboxes('xact_misc', this.checked)"
-                            title="[% l('Click to (un)select all fines') %]" />
-                        <label for="pay_fines_box2">[% l("Pay Fines") %]</label>
-                    </td>
-                </tr>
-            </thead>
-            <tbody id='myopac_trans_tbody'>
-                [% FOR f IN ctx.fines.grocery %]
-                <tr id='myopac_trans_row'>
-                    <td>[% date.format(
-                            ctx.parse_datetime(f.xact.xact_start),
-                            DATE_FORMAT
-                    ) %]</td>
-                    <td>
-                        [%  IF f.xact.last_payment_ts;
-                                date.format(
-                                    ctx.parse_datetime(
-                                        f.xact.last_payment_ts
-                                    ), DATE_FORMAT
-                                );
-                            END %]
-                    </td>
-                    <td>[% money(f.xact.total_owed) %]</td>
-                    <td>[% money(f.xact.total_paid) %]</td>
-                    <td class="red">
-                        <strong>
-                            [% money(f.xact.balance_owed) %]
-                        </strong>
-                    </td>
-                    <td>[% f.xact.last_billing_type %]</td>
-                    <td>
-                        <input type="checkbox" title='[% l("Pay this fine") %]'
-                            name="xact_misc" value="[% f.xact.id %]"
-                            checked="checked" />
-                    </td>
-                </tr>
-                [% END %]
-            </tbody>
-        </table>
-    </div>
-    [% END %]
-    [% UNLESS ctx.fines.grocery.size OR ctx.fines.circulation.size %]
-    <div>[% l('You have no current fines.') %]</div>
-    [% ELSE %]
-    <div class="text-right pad-top-ten">
-        <input type="image"
-            alt="[% l('Pay selected fines') %]"
-            title="[% l('Pay selected fines') %]"
-            onmouseover="this.src='[% ctx.media_prefix %]/images/pay-fines-btn-hover.png';"
-            onmouseout="this.src='[% ctx.media_prefix %]/images/pay-fines-btn.png';"
-            src="[% ctx.media_prefix %]/images/pay-fines-btn.png" />
-    </div>
-    [% END %]
-</form>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/main_pay.tt2 b/Open-ILS/src/templates/default/opac/myopac/main_pay.tt2
deleted file mode 100644 (file)
index e1cfcbd..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-[%  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" %]
-<div id="myopac_summary_div">
-    [% IF ctx.payment_response.textcode %]
-        <div class="payment-error">
-            <span title="[% ctx.payment_response.textcode %]">
-                [% ctx.payment_response.desc || ctx.payment_response.textcode %]
-            </span><br />
-            [% ctx.payment_response.note %]
-            [% ctx.payment_response.payload.error_message %]
-        </div>
-        <p>
-            <a href="[% ctx.opac_root %]/myopac/main"
-                onclick="history.go(-1); return false;">[% l('Go back') %]</a>
-            [% l('to try again or to cancel this payment attempt.') %]
-        </p>
-    [% ELSE %]
-        <p><big>[% l('Your payment has been approved.') %]</big></p>
-        [% IF ctx.printable_receipt.template_output;
-            print_args = [];
-            FOR p IN ctx.payment_response.payments;
-                print_args.push('payment=' _ p);
-            END %]
-        <p>[ <a href="[% ctx.opac_root %]/myopac/receipt_print?[% print_args.join('&amp;') %]"
-            target="_egrecpt"
-            onclick="try { print_node('printable-receipt'); } catch (e) { window.print(); } return false;">[% l('Print receipt') %]</a> ]</p>
-        <tt id="printable-receipt">
-            [% ctx.printable_receipt.template_output.data %]
-        </tt>
-        [% ELSE %]
-        <div class="payment-error">
-            [% 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')
-                ) | html %]
-        </div>
-        [% END %]
-        <p>[ <a href="[% ctx.opac_root %]/myopac/main">[%
-            l("Back to Account Summary") %]</a> ]</p>
-    [% END %]
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/main_payment_form.tt2 b/Open-ILS/src/templates/default/opac/myopac/main_payment_form.tt2
deleted file mode 100644 (file)
index 55cf823..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-[%  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 %]
-<div>
-    [% l("You either have no fines to pay or you have selected fines whose " _
-        "total is non-positive.  We cannot process non-positive amounts.") %]
-</div>
-[% ELSE %]
-<div id="pay_fines_now">
-    [% IF last_chance %]
-    <p><big>[% l("Are you sure you are ready to charge [_1] to your credit card?", money(ctx.fines.balance_owed)) %]</big></p>
-    <form action="[% ctx.opac_root %]/myopac/main_pay" method="POST">
-        [% FOR k IN CGI.Vars;
-            NEXT UNLESS k %]
-        <input type="hidden" name="[% k | html %]" value="[% CGI.param(k) | html %]" />
-        [% END %]
-        <input type="submit" value="[% l('Submit Payment') %]" />
-        <input type="reset" value="[% l('Cancel') %]"
-            onclick="history.go(-1);" />
-    [% ELSE %]
-    <form method="POST">
-        <input type="hidden" name="last_chance" value="1" />
-        [% FOR xact IN CGI.param('xact') %]
-        <input type="hidden" name="xact" value="[% xact | html %]" />
-        [% END %]
-        [% FOR xact IN CGI.param('xact_misc') %]
-        <input type="hidden" name="xact_misc" value="[% xact | html %]" />
-        [% END %]
-
-        <table>
-            <tbody>
-                <tr>
-                    <td colspan='2'><strong>[% l('Billing Information') %]</strong></td>
-                    <td rowspan='13' valign='top'>
-                        <p>[% l('Selected fines you are paying for:') %]</p>
-                        <table cellpadding="0" cellspacing="0" border="0" class="myopac_payments_table">
-                            <thead>
-                                <tr>
-                                    <th>[% l('Name') %]</th>
-                                    <th>[% l('Amount') %]</th>
-                                </tr>
-                            </thead>
-                            <tbody>
-                            [%
-                            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 %]
-                                <tr>
-                                    <td>[% attrs.title | html %]</td>
-                                    <td class="text-right">[% money(f.xact.balance_owed) %]</td>
-                                </tr>
-                            [%
-                            END;
-                            FOR f IN ctx.fines.grocery;
-                                NEXT IF CGI.param('xact_misc').size &&
-                                    !CGI.param('xact_misc').grep(f.xact.id).size %]
-                                <tr>
-                                    <td>[% f.xact.last_billing_type | html %]</td>
-                                    <td class="text-right">[% money(f.xact.balance_owed) %]</td>
-                                </tr>
-                            [% END %]
-                            </tbody>
-                        </table>
-                        <br />
-                        <div>
-                            [% l('Total amount to pay:') %]
-                            <strong>[% money(ctx.fines.balance_owed) %]</strong>
-                        </div>
-                        <br />
-                        [% | l('<strong>', '</strong>') %]Click [_1]Cancel[_2] to go back and (un)select other fines.[% END %]
-                    </td>
-                </tr>
-                <tr>
-                    <td>[% l('First Name') %]</td>
-                    <td><input type="text" name="billing_first" value="[% ctx.user.first_given_name | html %]" /></td>
-                </tr>
-                <tr>
-                    <td>[% l('Last Name') %]</td>
-                    <td><input type="text" name="billing_last" value="[% ctx.user.family_name | html %]" /></td>
-                </tr>
-                <tr>
-                    <td>[% l('Email Address') %]</td>
-                    <td>
-                        <input type="text" disabled="disabled" readonly="readonly" value="[% ctx.user.email | html %]" />
-                        <a href="[% ctx.opac_root %]/myopac/update_email?return_to_referer=1">[% l("Update") %]</a>
-                    </td>
-                </tr>
-                <tr>
-                    <td>[% l('Street Address') %]</td>
-                    <td><input type="text" name="billing_address" value="[% ctx.user.billing_address.street1 _ ctx.user.billing_address.street2 | html %]" /></td>
-                </tr>
-                <tr>
-                    <td>[% l('City' )%]</td>
-                    <td><input type="text" name="billing_city" value="[% ctx.user.billing_address.city | html %]" /></td>
-                </tr>
-                <tr>
-                    <td>[% l('State or Province') %]</td>
-                    <td><input type="text" name="billing_state" value="[% ctx.user.billing_address.state | html %]" /></td>
-                </tr>
-                <tr>
-                    <td>[% l('ZIP or Postal Code') %]</td>
-                    <td><input type="text" name="billing_zip" value="[% ctx.user.billing_address.post_code | html %]" /></td>
-                </tr>
-                <tr>
-                  <td colspan='2'><strong>[% l('Credit Card Information') %]</strong></td>
-                </tr>
-                <!-- Technically not needed since card type is derived from the CC number
-                <tr>
-                    <td>Type of Card</td>
-                    <td>
-                        <select name="type">
-                            <option value='VISA'>VISA</option>
-                            <option value='MasterCard'>MasterCard</option>
-                            <option value='American Express'>American Express</option>
-                        </select>
-                    </td>
-                </tr>
-                -->
-                <tr>
-                    <td>[% l('Credit Card #') %]</td>
-                    <td><input type="text" name="number" maxlength="16" /></td>
-                </tr>
-                <tr>
-                    <td>[% l('Security Code') %]</td>
-                    <td>
-                        <input type="text" size="4" maxlength="5" name="cvv2" />
-                    </td>
-                </tr>
-                <tr>
-                    <td>[% l('Exipration Month') %]</td>
-                    <td>
-                        <select name="expire_month">
-                            <option value="01">[% l("January") %]</option>
-                            <option value="02">[% l("February") %]</option>
-                            <option value="03">[% l("March") %]</option>
-                            <option value="04">[% l("April") %]</option>
-                            <option value="05">[% l("May") %]</option>
-                            <option value="06">[% l("June") %]</option>
-                            <option value="07">[% l("July") %]</option>
-                            <option value="08">[% l("August") %]</option>
-                            <option value="09">[% l("September") %]</option>
-                            <option value="10">[% l("October") %]</option>
-                            <option value="11">[% l("November") %]</option>
-                            <option value="12">[% l("December") %]</option>
-                        </select>
-                    </td>
-                </tr>
-                <tr>
-                    <td>[% l('Expiration Year') %]</td>
-                    <td>
-                        <select name="expire_year">
-                        [% year = date.format(date.now, '%Y');
-                        y = year;
-                        WHILE y < year + 10; # show ten years starting now %]
-                            <option value="[% y %]">[% y %]</option>
-                        [% y = y + 1; END %]
-                        </select>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan='2' align="center">
-                        <input type="submit" value="[% l('Next') %]" />
-                        <input type="reset" value="[% l('Cancel') %]"
-                            onclick="history.go(-1);" />
-                    </td>
-                </tr>
-                [% INCLUDE "default/opac/parts/myopac/main_refund_policy.tt2" %]
-            </tbody>
-        </table>
-    [% END %]
-    </form>
-</div>
-[% END %]
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/main_payments.tt2 b/Open-ILS/src/templates/default/opac/myopac/main_payments.tt2
deleted file mode 100644 (file)
index 80755fb..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-[%  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;
-%]
-
-<div>
-    <div class="header_middle">
-        <span class="float-left">[% l('Payments History') %]</span>
-        <span class='float-left' style='padding-left: 10px;'>
-            <a href='main_payments?limit=[% limit %]&amp;offset=[% offset - limit %]'
-                [% IF offset == 0 %] class='invisible' [% END %]><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
-            [%# TODO: get total to prevent paging off then end of the list.. %]
-            <a href='main_payments?limit=[% limit %]&amp;offset=[% offset + limit %]'
-               [% IF ctx.payments.size < limit %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
-        </span>
-    </div>
-    <div class="clear-both"></div>
-
-    [% IF ctx.payments.size %]
-    <table class='myopac_payments_table data_grid' width='100%'>
-        <thead><tr>
-            <th>[% l('Payment Date') %]</th>
-            <th>[% l('Payment For') %]</th>
-            <th>[% l('Amount') %]</th>
-            <th>[% l('Receipt') %]</th> 
-        </tr></thead>
-        <tbody>
-            [% FOR payment IN ctx.payments %]
-            <tr>
-                <td>[% date.format(ctx.parse_datetime(payment.mp.payment_ts), DATE_FORMAT) %]</td>
-                <td>[% 
-                    btype = payment.last_billing_type | html;
-                    ptitle = payment.title | html;
-                    (payment.xact_type == 'grocery') ? btype : ptitle
-                %]</td>
-                <td>[% money(payment.mp.amount) %]</td>
-                <td>
-                    <form action="[% ctx.opac_root %]/myopac/receipt_print" method="POST">
-                        <input type="hidden" name="payment" value="[% payment.mp.id %]" />
-                        <input type="submit" value="[% l('Print') %]" />
-                    </form>
-                    <form action="[% ctx.opac_root %]/myopac/receipt_email" method="POST">
-                        <input type="hidden" name="payment" value="[% payment.mp.id %]" />
-                        <input type="submit" value="[% l('Email') %]" />
-                    </form>
-                </td>
-            </tr>
-            [% END %]
-        </tbody>
-    </table>
-    [% ELSE %]
-    <div>[% l('You have no historical payments to display.') %]</div>
-    [% END %]
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/prefs.tt2 b/Open-ILS/src/templates/default/opac/myopac/prefs.tt2
deleted file mode 100644 (file)
index 2150fb1..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    WRAPPER "default/opac/parts/myopac/prefs_base.tt2";
-    myopac_page = "prefs";
-    prefs_page = 'personal' %]
-
-<div id="acct_info_main">
-    <div id='myopac.expired.alert'
-         class='hide_me'
-         style='margin-bottom: 20px;'>
-        <table class='data_grid'
-               width='100%'>
-            <tbody>
-                <tr>
-                    <td width='100%' class='red'>
-                        [% l("Your account expired on") %]
-                        <span id='myopac.expired.date'></span>!
-                        [% l("Please see a librarian to renew your account.") %]</td>
-                </tr>
-            </tbody>
-        </table>
-    </div>
-
-    <div id='myopac.notes.div'
-         class='hide_me'>
-        <table class='data_grid'
-               width='100%'>
-            <thead>
-                <tr>
-                    <td colspan='2'>
-                    <b>[% l("* Staff Notes *") %]</b></td>
-                </tr>
-            </thead>
-
-            <tbody id='myopac.notes.tbody'>
-                <tr id='myopac.notes.tr'>
-                    <td><b name='title'></b> : <span name=
-                    'value'></span></td>
-                </tr>
-            </tbody>
-        </table><br />
-    </div>
-
-    <table width='70%'
-           class='light_border data_grid'>
-        <tbody id='myopac_summary_tbody'>
-            <tr>
-                <td width='30%'
-                    class='color_4 light_border'>[% l("Name") %]</td>
-
-                <td class='light_border'>[% l(
-                    HUMAN_NAME_FORMAT,
-                    ctx.user.prefix, ctx.user.first_given_name,
-                    ctx.user.second_given_name, ctx.user.family_name,
-                    ctx.user.suffix
-                ) | html %]</td>
-
-                <td></td>
-            </tr>
-
-            <tr>
-                <td class='color_4 light_border'>
-                [% l("Day Phone") %]</td>
-
-                <td class='light_border'
-                    id='myopac_summary_dayphone'>[% ctx.user.day_phone | html %]</td>
-
-                <td class='light_border'><a href='#'
-                   class="hide_me"
-                   id='myopac_summary_phone1_change'
-                   style=
-                   'text-decoration: underline;'>[% l("Change") %]</a></td>
-            </tr>
-
-            <tr id='myopac_update_phone1_row'
-                class='hide_me'>
-                <td class='myopac_update_cell'
-                    colspan='3'>
-                    <span class='myopac_update_span'>
-                        Enter New [% l("Day Phone") %]:
-                    </span>
-
-                    <input type='text' size='24' id='myopac_new_phone1' />
-                    <span class='myopac_update_span'>
-                        <button>
-                            <span class='myopac_update_span'>
-                                [% l("Submit") %]</span>
-                        </button>
-                    </span>
-                    <span class='myopac_update_span'>
-                        <button>
-                            <span class='myopac_update_span'>
-                                [% l("Cancel") %]</span>
-                        </button>
-                    </span>
-                </td>
-            </tr>
-
-            <tr>
-                <td class='color_4 light_border'>
-                [% l("Evening Phone") %]</td>
-
-                <td class='light_border'
-                    id='myopac_summary_eveningphone'>[% ctx.user.evening_phone | html %]</td>
-
-                <td class='light_border'><a href='#'
-                   class="hide_me"
-                   id='myopac_summary_phone2_change'
-                   style=
-                   'text-decoration: underline;'>[% l("Change") %]</a></td>
-            </tr>
-
-            <tr id='myopac_update_phone2_row'
-                class='hide_me'>
-                <td class='myopac_update_cell'
-                    colspan='3'><span class='myopac_update_span'>New
-                    [% l("Evening Phone") %]:</span>
-                    <input type='text' size='24' id='myopac_new_phone2' />
-                    <span class='myopac_update_span'><button><span class=
-                        'myopac_update_span'>[% l("Submit") %]</span></button></span>
-                    <span class='myopac_update_span'><button><span class=
-                        'myopac_update_span'>[% l("Cancel") %]</span></button></span>
-                </td>
-            </tr>
-
-            <tr>
-                <td class='color_4 light_border'>
-                [% l("Other Phone") %]</td>
-
-                <td class='light_border'
-                    id='myopac_summary_otherphone'>[% ctx.user.other_phone | html %]</td>
-
-                <td class='light_border'><a href='#'
-                   class="hide_me"
-                   id='myopac_summary_phone3_change'
-                   style=
-                   'text-decoration: underline;'>[% l("Change") %]</a></td>
-            </tr>
-
-            <tr id='myopac_update_phone3_row'
-                class='hide_me'>
-                <td class='myopac_update_cell'
-                    colspan='3'><span class='myopac_update_span'>Enter
-                    New [% l("Other Phone") %]:</span>
-                    <input type='text' size='24' id='myopac_new_phone3' />
-                    <span class='myopac_update_span'><button><span class=
-                        'myopac_update_span'>[% l("Submit") %]</span></button></span>
-                    <span class='myopac_update_span'><button><span class=
-                        'myopac_update_span'>[% l("Cancel") %]</span></button></span>
-                </td>
-            </tr>
-
-            <tr>
-                <td class='color_4 light_border'>
-                    <div style="position:absolute">
-                        <div class="hide_me" style="position:relative;left:70px;top:-3px;">
-                            <a href="#"><img alt="Username Help" src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
-                        </div>
-                    </div>[% l("Username") %]
-                </td>
-                <td class='light_border'>[% ctx.user.usrname | html %]</td>
-                <td class='light_border'><a href='update_username'>[% l("Change") %]</a></td>
-            </tr>
-            <tr>
-                <td class='color_4 light_border'>[% l("Password") %]</td>
-                <td class='light_border'>[% l("(not shown)") %]</td>
-                <td class='light_border'><a href='update_password'>[% l("Change") %]</a></td>
-            </tr>
-            <tr>
-                <td class='color_4 light_border'>[% l("Email Address") %]</td>
-                <td class='light_border'>[% ctx.user.email | html %]</td>
-                <td class='light_border'><a href='update_email'>[% l('Change') %]</a></td>
-            </tr>
-
-            [% IF ctx.user.ident_value %]<tr class="hide_me">
-                <td class='color_4 light_border'>
-                [% l("Primary Identification") %]</td>
-
-                <td class='light_border'>
-                    [%
-                    # l('[_1] ([_2])', ctx.user.ident_value, ctx.user.ident_type.name) | html
-                    # XXX uncomment the above line to show primary
-                    # identification. With a minor tweak it could
-                    # alternatively be shown but partially obscured. 
-                    %]
-                </td>
-                <td></td>
-            </tr>[% END %]
-
-            <tr>
-                <td class='color_4 light_border'>
-                [% l("Active Barcode") %]</td>
-
-                <td class='light_border'>[% ctx.user.card.barcode %]</td>
-
-                <td></td>
-            </tr>
-
-            <tr>
-                <td class='color_4 light_border'>
-                [% l("Home Library") %]</td>
-                <td class='light_border'>[% ctx.user.home_ou.name | html %]</td>
-                <td><a href='#'
-                   class="hide_me"
-                   style='text-decoration: underline;'>[% l("Change") %]</a></td>
-            </tr>
-            <tr class='hide_me'>
-                <td class='myopac_update_cell'
-                    colspan='3'>
-                    <span class='myopac_update_span'>
-                        New home library:</span>
-                    <select>
-                    </select>
-                    <span class='myopac_update_span'>
-                        <button>
-                            <span class= 'myopac_update_span'>
-                                [% l("Submit") %]</span>
-                        </button>
-                    </span>
-                    <span class='myopac_update_span'>
-                        <button>
-                            <span class= 'myopac_update_span'>
-                                [% l("Cancel") %]</span>
-                        </button>
-                    </span>
-                </td>
-            </tr>
-            <tr class="hide_me">
-                <td class='color_4 light_border'>
-                    [% l("Account Creation Date") %]
-                </td>
-                <td class='light_border'
-                    id='myopac_summary_create_date'></td>
-                <td></td>
-            </tr>
-        </tbody>
-    </table><br />
-    <hr class='opac-auto-013' color="#DCDBDB" />
-    <br />
-
-    <table width='100%' class='light_border data_grid'>
-        <thead>
-            <tr>
-                <td><strong>[% l("Addresses") %]</strong></td>
-                <td><strong>[% l("Pending Addresses") %]</strong></td>
-            </tr>
-        </thead>
-        <tbody>
-            [% 
-                # cycle through the non-pending address.  For each non-pending addr
-                # that has a corresponding pending addr, render the pending addr 
-                # along the right inside it's own edit form
-                pending = {};
-                regular = [];
-                edit_addr_id = CGI.param('edit_address');
-                FOR addr IN ctx.user.addresses;
-                    IF addr.pending == 't';
-                        replaces = addr.replaces;
-                        pending.$replaces = addr;
-                    ELSE;
-                        regular.push(addr);
-                    END;
-                END;
-            FOR addr IN regular;
-                cur_id = addr.id; 
-                pending_addr = pending.$cur_id;
-            %]
-            <tr>
-                <td>
-                    <!-- read-only address display -->
-                    <table class='light_border'>
-                        <tr><td>[% l("Address Type") %]</td><td>[% addr.address_type | html %]</td></tr>
-                        <tr><td>[% l("Street") %]</td><td>[% addr.street1 | html %]</td></tr>
-                        <tr><td>[% l("Street") %]</td><td>[% addr.street2 | html %]</td></tr>
-                        <tr><td>[% l("City") %]</td><td>[% addr.city | html %]</td></tr>
-                        <tr><td>[% l("County") %]</td><td>[% addr.county| html  %]</td></tr>
-                        <tr><td>[% l("State") %]</td><td>[% addr.state | html %]</td></tr>
-                        <tr><td>[% l("Country") %]</td><td>[% addr.country | html %]</td></tr>
-                        <tr><td>[% l("Zip") %]</td><td>[% addr.post_code | html %]</td></tr>
-                        [% IF ctx.get_org_setting(ctx.user.home_ou.id, 'opac.allow_pending_address') 
-                                AND !pending_addr AND edit_addr_id != cur_id %]
-                        <tr>
-                            <td colspan='2'>
-                                <a href='?edit_address=[% addr.id %]'>[% l('Edit Address') %]</a>
-                            </td>
-                        </tr>
-                        [% END %]
-                    </table>
-                </td>
-
-                <!-- pending address form -->
-                [% IF pending_addr OR edit_addr_id == cur_id;
-                    update_addr = pending_addr || addr %]
-                <td>
-                    <form method='POST'>
-                        [% IF pending_addr %]
-                            <input type='hidden' name='pending_addr' value='[% pending_addr.id %]'/>
-                        [% ELSE %]
-                            <input type='hidden' name='replace_addr' value='[% edit_addr_id | html %]'/>
-                        [% END %]
-                        <table class='pending-addr'>
-                            <tr>
-                                <td>[% l("Address Type") %]</td>
-                                <td><input name='address_type' value='[% update_addr.address_type | html %]'/></td>
-                            </tr>
-                            <tr>
-                                <td>[% l("Street") %]</td>
-                                <td><input name='street1' value='[% update_addr.street1 | html %]'/></td>
-                            </tr>
-                            <tr>
-                                <td>[% l("Street") %]</td>
-                                <td><input name='street2' value='[% update_addr.street2 | html %]'/></td>
-                            </tr>
-                            <tr>
-                                <td>[% l("City") %]</td>
-                                <td><input name='city' value='[% update_addr.city | html %]'/></td>
-                            </tr>
-                            <tr>
-                                <td>[% l("County") %]</td>
-                                <td><input name='county' value='[% update_addr.county| html %]'/></td>
-                            </tr>
-                            <tr>
-                                <td>[% l("State") %]</td>
-                                <td><input name='state' value='[% update_addr.state | html %]'</td>
-                            </tr>
-                            <tr>
-                                <td>[% l("Country") %]</td>
-                                <td><input name='country' value='[% update_addr.country | html %]'/></td>
-                            </tr>
-
-                            <tr>
-                                <td>[% l("Zip") %]</td>
-                                <td><input name='post_code' value='[% update_addr.post_code | html %]'/></td>
-                            </tr>
-                            <tr>
-                                <td><input type='submit' value="[% l('Save Changes') %]"/></td>
-                                <td>
-                                    [% IF pending_addr;
-                                        url = mkurl('', {delete_pending => pending_addr.id}, 1);
-                                    ELSE;
-                                        url = mkurl('', {}, 1);
-                                    END %]
-                                    <a href="[% url %]">[% l('Discard Pending Address') %]</a>
-                                </td>
-                            </tr>
-                            <tr><td colspan='2'><i>[% l('Address changes will be verified by staff') %]</i></td></tr>
-                        </table>
-                    </form>
-                </td>
-                [% END %] <!-- if pending_addr -->
-            </tr>
-            [% END %]
-        </tbody>
-    </table>
-</div>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/prefs_notify.tt2 b/Open-ILS/src/templates/default/opac/myopac/prefs_notify.tt2
deleted file mode 100644 (file)
index da3d520..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    WRAPPER "default/opac/parts/myopac/prefs_base.tt2";
-    myopac_page = "prefs_notify";
-    prefs_page = 'notify' %]
-
-
-<form method='POST'>
-
-    <div style="float:right;width:65px;">
-        <input type='image' alt="[% l('Save') %]" src="[% ctx.media_prefix %]/images/save-btn.png" />
-    </div>
-
-    <table>
-        <thead><tr>
-            <th>[% l('Notifation Type') %]</th>
-            <th>[% l('Enabled') %]</th>
-        </tr></thead>
-        <tbody class='data_grid'>
-            [% IF optin.size == 0 %]
-                <strong>[% l('No notification preferences are configured') %]</strong>
-            [% END %]
-            [% FOR optin IN ctx.opt_in_settings %]
-                <tr>
-                    <td>[% optin.cust.label | html %]</td>
-                    <td>
-                        <input type='checkbox' name='setting' 
-                            value='[% optin.cust.name | uri %]' 
-                            [% IF optin.value %] checked='checked' [% END %]/>
-                    </td>
-                </tr>
-            [% END %]
-        </tbody>
-    </table>
-</form>
-
-
-<!-- NOTIFICATION PREFS / leaving here for reference
-<table class="hide_me"
-       id="acct_notify_main">
-    <tbody>
-        <tr class="hide_me">
-            <td><span>[% l("Default Hold Notification Method") %]</span> <a class=
-            'classic_link'
-               href='#'>[% l("(Help)") %]</a></td>
-
-            <td style="padding-left:15px;"><select id=
-            'prefs_hold_notify'>
-                <option value='phone:email'
-                        selected='selected'>
-                    [% l("Use Phone and Email") %]
-                </option>
-
-                <option value='phone'>
-                    [% l("Use Phone Only") %]
-                </option>
-
-                <option value='email'>
-                    [% l("Use Email Only") %]
-                </option>
-            </select></td>
-        </tr>
-
-        <tr>
-            <td style="padding-top:10px;"><strong>Pick Up Notice for
-            Holds</strong><br />
-            <input type="checkbox"
-                   id="opac.hold_notify.email"
-                   name="opac.hold_notify.email" /> <label for=
-                   "opac.hold_notify.email">Email</label><br />
-            <input type="checkbox"
-                   id="opac.hold_notify.phone"
-                   name="opac.hold_notify.phone" /> <label for=
-                   "opac.hold_notify.phone">Phone</label>
-                   <b>(Temporarily phone notification will generate a
-                   mailed paper notice.)</b></td>
-        </tr>
-
-        <tr>
-            <td style="padding-top:10px;"><strong>Expire Notice for
-            Holds</strong><br />
-            <input type="checkbox"
-                   id="notification.hold.expire.email"
-                   name="notification.hold.expire.email" /> <label for=
-                   "notification.hold.expire.email">Email</label></td>
-        </tr>
-
-        <tr>
-            <td style="padding-top:10px;"><strong>Cancel Notice for
-            Holds</strong><br />
-            <input type="checkbox"
-                   id="notification.hold.cancel.email"
-                   name="notification.hold.cancel.email" /> <label for=
-                   "notification.hold.cancel.email">Email</label></td>
-        </tr>
-
-        <tr>
-            <td style="padding-top:10px;"><strong>Overdue First
-            Notice</strong><br />
-            <input type="checkbox"
-                   id="notification.overdue.first.email"
-                   name="notification.overdue.first.email" />
-                   <label for=
-                   "notification.overdue.first.email">Email</label><br />
-            <input type="checkbox"
-                   id="notification.overdue.first.phone"
-                   name="notification.overdue.first.phone" />
-                   <label for=
-                   "notification.overdue.first.phone">Phone</label>
-                   <b>(Temporarily phone notification will generate a
-                   mailed paper notice.)</b></td>
-        </tr>
-
-        <tr>
-            <td style="padding-top:10px;"><strong>Courtesy
-            Notice</strong><br />
-            <input type="checkbox"
-                   id="notification.predue.email"
-                   name="notification.predue.email" /> <label for=
-                   "notification.predue.email">Email</label><br /></td>
-        </tr>
-    </tbody>
-</table>
--->
-
-
-[% END %]
-
-
diff --git a/Open-ILS/src/templates/default/opac/myopac/prefs_settings.tt2 b/Open-ILS/src/templates/default/opac/myopac/prefs_settings.tt2
deleted file mode 100644 (file)
index e664e91..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    WRAPPER "default/opac/parts/myopac/prefs_base.tt2";
-    myopac_page = "prefs_notify";
-    prefs_page = 'settings' %]
-
-
-    <form method='POST'>
-
-        <div style="float:right;width:65px;">
-            <div style="position:absolute">
-                <div style="position:relative;top:75px;">
-                    <input type="image" alt="[% l('Save') %]" src="[% ctx.media_prefix %]/images/save-btn.png"/>
-                </div>
-            </div>
-        </div>
-
-        <table class="full-width data_grid" id="acct_search_main">
-            <tbody>
-
-                [% IF ctx.updated_user_settings %]
-                <tr><td colspan='2'>
-                    <div class='renew-summary'>
-                        [% l('Account Successfully Updated') %]
-                    </div>
-                </td></tr>
-                [% END %]
-
-                <tr >
-                    <td width='20%'>[% l("Search hits per page") %]</td>
-                    <td>
-                        <div style="position:absolute">
-                            <div style="position:relative;top:0px;left:55px;">
-                                <a href="#"><img alt="[% l('Search Hits Help') %]" 
-                                    src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
-                            </div>
-                        </div>
-                        [% setting = 'opac.hits_per_page' %]
-                        <select name='[% setting %]'>
-                            [%  FOR val IN [5, 8, 10, 15, 20, 25, 50] %]
-                                <option value='[% val | uri %]' 
-                                    [% IF ctx.user_setting_map.$setting == val %]
-                                        selected='selected'[% END %]>[% val | html %]</option>
-                            [% END %]
-                        </select>
-                    </td>
-                </tr>
-                <tr>
-                    <td>[% l('Keep history of checked out items?') %]</td>
-                    <td>
-                        [% setting = 'history.circ.retention_start' %]
-                        <input name='[% setting %]' type="checkbox"
-                            [% IF ctx.user_setting_map.$setting; %] checked='checked' [% END %]/>
-                    </td>
-                </tr>
-                <tr>
-                    <td>[% l('Keep history of holds?') %]</td>
-                    <td>
-                        [% setting = 'history.hold.retention_start' %]
-                        <input name='[% setting %]' type="checkbox"
-                            [% IF ctx.user_setting_map.$setting; %] checked='checked' [% END %]/>
-                    </td>
-                </tr>
-
-                <!--
-                <tr>
-                    <td>[% l("Default Font Size") %]</td>
-                    <td>
-                        <select id='prefs_def_font'>
-                            <option value='regular'>[% l("Regular Font") %]</option>
-                            <option value='large'>[% l("Large Font") %]</option>
-                        </select>
-                    </td>
-                </tr>
-
-                <tr>
-                    <td>[% l("Default Search Location") %]</td>
-                    <td>
-                        <div style='margin-bottom: 5px;'>
-                            <input type='checkbox' id='myopac_pref_home_lib' />
-                            [% l("Search my home library by default.") %]
-                        </div>
-                        <select id='prefs_def_location'></select>
-                    </td>
-                </tr>
-
-                <tr>
-                    <td>[% l("Default Search Range") %]</td>
-                    <td>
-                        <select>
-                            [%# TODO %]
-                        </select>
-                    </td>
-                </tr>
-                -->
-
-            </tbody>
-        </table>
-    </form>
-    [% INCLUDE "default/opac/parts/myopac/prefs_hints.tt2" %]
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/receipt_email.tt2 b/Open-ILS/src/templates/default/opac/myopac/receipt_email.tt2
deleted file mode 100644 (file)
index 3745e5f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-[%  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 %]
-    <div class="payment-error">
-        [% l('Error preparing receipt:') %]
-        <span title="[% ctx.email_receipt_result.textcode | html %]">
-            [% ctx.email_receipt_result.desc | html %]
-        </span>
-    </div>
-    [% ELSE %]
-    <div>
-        [% l('Your receipt will be emailed to [_1]', ctx.user.email) | html %]
-    </div>
-    [% END %]
-    <p>
-        [ <a href="[% ctx.opac_root %]/myopac/main_payments">[%
-            l("Back to Payments History") %]</a> ]
-    </p>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/receipt_print.tt2 b/Open-ILS/src/templates/default/opac/myopac/receipt_print.tt2
deleted file mode 100644 (file)
index fe68495..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-[%# sic! no wrapper %]
-<html>
-    <head>
-        <title>[% l('Receipt') %]</title>
-    </head>
-    <body onload="if (document.getElementById('printable-receipt')) window.print();">
-        [% IF ctx.printable_receipt.template_output %]
-        <tt id="printable-receipt">
-            [% ctx.printable_receipt.template_output.data %]
-        </tt>
-        [% ELSE %]
-        <div class="payment-error">
-            [% 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')
-                ) | html %]
-        </div>
-        [% END %]
-        <hr />
-        <p>[ <a href="[% ctx.opac_root %]/myopac/main_payments">[%
-            l("Back to Payments History") %]</a> ]</p>
-    </body>
-</html>
diff --git a/Open-ILS/src/templates/default/opac/myopac/update_email.tt2 b/Open-ILS/src/templates/default/opac/myopac/update_email.tt2
deleted file mode 100644 (file)
index 6bbedf2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2";
-    myopac_page = "prefs"  %]
-<div id='myopac_summary_div' style="padding:0px;">
-
-[% IF ctx.invalid_email %]
-    <div id='account-update-email-error'>
-        [% l('The email address "<b>[_1]</b>" is invalid.  Please try a different email address.', ctx.invalid_email) | html %]
-    </div>
-[% END %]
-
-<form method='POST' id='account-update-email'>
-    [% IF CGI.param("return_to_referer") %]
-    <input type="hidden" name="redirect_to" value="[% ctx.referer | html %]" />
-    [% END %]
-    <table> 
-        <tr><td>[% l('Current Email') %]</td><td>[% ctx.user.email | html %]</td></tr>
-        <tr><td>[% l('New Email') %]</td><td><input type='text' name='email' value='[% ctx.invalid_email | html %]'/></td></tr>
-        <tr><td colspan='2' align='center'><input type='submit'/></td></tr>
-    </table>
-</form>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/update_password.tt2 b/Open-ILS/src/templates/default/opac/myopac/update_password.tt2
deleted file mode 100644 (file)
index d248cdf..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2";
-    myopac_page = "prefs"  %]
-
-<div id='myopac_summary_div' style="padding:0px;">
-
-[% IF ctx.password_invalid %]
-    <div id='account-update-email-error'> <!-- borrow css from update-email page -->
-        [% |l %] New password is invalid.  Please try a different password.  [% END %]
-    </div>
-
-[% ELSIF ctx.password_nomatch %]
-    <div id='account-update-email-error'>
-        [% |l %] Passwords do not match. [% END %]
-    </div>
-
-[% ELSIF ctx.password_incorrect %]
-    <div id='account-update-email-error'>
-        [% |l %] Your current password was not correct. [% END %]
-    </div>
-[% END %]
-
-<form method='POST' id='account-update-email'> 
-    <table> 
-        <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw'/></td></tr>
-        <tr><td>[% l('New Password') %]</td><td><input type='password' name='new_pw'/></td></tr>
-        <tr><td>[% l('New Password Again') %]</td><td><input type='password' name='new_pw2'/></td></tr>
-        <tr><td colspan='2' align='center'><input type='submit'/></td></tr>
-    </table>
-</form>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/myopac/update_username.tt2 b/Open-ILS/src/templates/default/opac/myopac/update_username.tt2
deleted file mode 100644 (file)
index 017d753..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2";
-    myopac_page = "prefs"  %]
-<div id='myopac_summary_div' style="padding:0px;">
-
-[% IF ctx.invalid_username %]
-    <div id='account-update-email-error'> <!-- borrow css from update-email page -->
-        [% l('"<b>[_1]</b>" is not a valid username.  Usernames cannot have any spaces.  Please try a different username.', ctx.invalid_username) | html %]
-    </div>
-
-[% ELSIF ctx.username_exists %]
-    <div id='account-update-email-error'>
-        [% bad_user = ctx.username_exists | html %]
-        [% | l(bad_user) %]
-        The username "<b>[_1]</b>" is taken.  Please try a different username.
-        [% END %]
-    </div>
-[% END %]
-
-<form method='POST' id='account-update-email'> 
-    <table> 
-        <tr><td>[% l('Current Username') %]</td><td>[% ctx.user.usrname | html %]</td></tr>
-        <tr><td>[% l('New Username') %]</td><td><input type='text' name='username' value='[% ctx.invalid_username | html %]'/></td></tr>
-        <tr><td colspan='2' align='center'><input type='submit'/></td></tr>
-    </table>
-</form>
-
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/parts/advanced/expert.tt2 b/Open-ILS/src/templates/default/opac/parts/advanced/expert.tt2
deleted file mode 100644 (file)
index 4dc76b3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<form action="[% ctx.opac_root %]/results" method="GET">
-    <div class="header_middle">[% l("Expert Search") %]</div>
-    <input type="hidden" name="_special" value="1" />
-    <table class="expert-search">
-        <tbody id="adv_expert_rows_here">
-            <tr id="adv_expert_row">
-                <th>[% l("Tag:") %]</th>
-                <td><input type="text" name="tag" size="3" /></td>
-                <th>[% l("Subfield:") %]</th>
-                <td><input type="text" name="subfield" size="1" /></td>
-                <th>[% l("Value:") %]</th>
-                <td><input type="text" name="term" size="16" /></td>
-                <td>
-                    <a href="javascript:;" class="row-remover"
-                        title="[% l('Remove row') %]" alt="[% l('Remove row') %]"
-                        onclick='return killRowIfAtLeast(1, this);'><img src="[% ctx.media_prefix %]/images/adv_row_close_btn.png" /></a>
-                </td>
-            </tr>
-        </tbody>
-        <tfoot>
-            <tr>
-                <td colspan="2"><a href="javascript:addExpertRow();">[ [% l("Add row") %] ]</a></td>
-                <td colspan="4">
-                    <input type="image" src="[% ctx.media_prefix %]/images/search_btn.gif" alt="[% l('Search') %]" title="[% l('Search') %]" />
-                </td>
-            </tr>
-        </tfoot>
-    </table>
-</form>
diff --git a/Open-ILS/src/templates/default/opac/parts/advanced/global_row.tt2 b/Open-ILS/src/templates/default/opac/parts/advanced/global_row.tt2
deleted file mode 100644 (file)
index e523ec9..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-[%
-    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; %]
-
-<!-- tag the second row so the bool column won't be hidden -->
-<tr[% IF loop.index == 1 %] id="adv_global_row"[% END %]>
-    <td align='left' width='100%' nowrap='nowrap'>
-
-        <!-- bool selector.  hide for first row.  safe to ignore first bool value in form submission -->
-        <select name='bool' style='width: auto' [% IF loop.first %] class='invisible' [% END %]>
-            <option value='and' [% b == 'and' ? 'selected="selected"' : '' %]>[% l('And') %]</option>
-            <option value='or' [% b == 'or' ? 'selected="selected"' : '' %]>[% l('Or') %]</option>
-        </select>
-
-        <!-- keyword, subject, etc. selector -->
-        <span class="qtype_selector_margin">
-            [% INCLUDE "default/opac/parts/qtype_selector.tt2"
-                query_type=qtype %]
-        </span>
-
-        <select name='contains' style='margin-right: 7px;'>
-            [% FOR o IN contains_options; -%]
-            <option value="[% o.value %]" [% c == o.value ? ' selected="selected"' : '' %]>[% o.label %]</option>
-            [% END %]
-        </select>
-        <input type='text' size='18' name='query' value="[% q | html %]" x-webkit-speech />
-        <a href="javascript:;" class="row-remover"
-            title="[% l('Remove row') %]" alt="[% l('Remove row') %]"
-            onclick='return killRowIfAtLeast(2, this);'><img src="[% ctx.media_prefix %]/images/adv_row_close_btn.png" /></a>
-    </td>
-</tr>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/parts/advanced/numeric.tt2 b/Open-ILS/src/templates/default/opac/parts/advanced/numeric.tt2
deleted file mode 100644 (file)
index de54947..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<form action="[% ctx.opac_root %]/results" method="GET">
-    <div class="header_middle">[% l("Numeric Search") %]</div>
-    <input type="hidden" name="contains" value="contains" />
-    <input type="hidden" name="_special" value="1" />
-    <table>
-        <tr>
-            <td>
-                <select name="qtype">
-                    <!-- TODO: Pull labels from config.metabib_field.label -->
-                    <option value="identifier|isbn">[% l('ISBN') %]</option>
-                    <option value="identifier|issn">[% l('ISSN') %]</option>
-                    <option value="identifier|bib_cn">[% l('Bib Call Number') %]</option>
-                    <option value="cnbrowse">[% l('Call Number (Shelf Browse)') %]</option>
-                    <option value="identifier|lccn">[% l('LCCN') %]</option>
-                    <option value="identifier|tcn">[% l('TCN') %]</option>
-                    <option value="item_barcode">[% l('Item Barcode') %]</option>
-                </select>
-            </td>
-            <td>
-                <input type="text" name="query" size="16" />
-            </td>
-        </tr>
-        <tr>
-            <td colspan="2" align="right">
-                <input type="image" alt="[% l('Search') %]"
-                    src="[% ctx.media_prefix %]/images/search_btn.gif" />
-            </td>
-    </table>
-</form>
diff --git a/Open-ILS/src/templates/default/opac/parts/advanced/search.tt2 b/Open-ILS/src/templates/default/opac/parts/advanced/search.tt2
deleted file mode 100644 (file)
index 868e3ad..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<form action="[% ctx.opac_root %]/results" method="GET">
-<table id='adv_global_search' class='data_grid data_grid_center' width='100%'>
-    <tr style='border-bottom: none;'>
-        <!-- Contains the user-addable(?) rows to define search class, containment and text -->
-        <td valign='top' class='adv_global_input_container'>
-            <table width='100%' id='adv_global_input_table'>
-                <thead>
-                    <tr>
-                        <td>
-                            <div style="width:100%;" class="header_middle">
-                                [% l("Search Input") %]
-                            </div>
-                        </td>
-                    </tr>
-                </thead>
-                <tbody id='adv_global_tbody'>
-                    [% INCLUDE "default/opac/parts/advanced/global_row.tt2" %]
-                    <!-- add a new row -->
-                    <tr id='adv_global_addrow'>
-                        <td align='left' style="padding-top:7px;">
-                            <a href="javascript:;" id="myopac_new_global_row" onclick='addSearchRow();'>[% l('Add Search Row') %]</a>
-                        </td>
-                    </tr>
-                </tbody>
-            </table>
-        </td>
-    </tr>
-    <tr>
-        <td align='top'>
-          <div style="width:100%;" class="header_middle">[% l('Search Filters') %]</div>
-          <table cellpadding='10' cellspacing='0' border='0'><tr>
-            <td valign='top'>
-                <strong>[% l("Item Type") %]</strong><br />
-                [%  INCLUDE "default/opac/parts/coded_value_selector.tt2"
-                        attr=["mattype", "item_type"] multiple="multiple" size="4" %]
-            </td>
-            <td valign='top'>
-                <strong>[% l("Language") %]</strong><br />
-                [%  INCLUDE "default/opac/parts/coded_value_selector.tt2"
-                        attr="item_lang" multiple="multiple" size="4" %]
-            </td>
-            <td valign='top'>
-                <strong>[% l("Audience") %]</strong><br />
-                    [% INCLUDE "default/opac/parts/coded_value_selector.tt2"
-                        attr="audience" multiple="multiple" size="4" %]
-                </select>
-            </td>
-            <td valign='top'>
-            <strong>[% l("Sort Results") %]</strong>
-              <table class='adv_global_filter_sort'>
-                <tr>
-                    <td align='center' width='100%'>
-                        [% INCLUDE "default/opac/parts/filtersort.tt2"
-                            value=CGI.param('sort') %]
-                    </td>
-                </tr>
-              </table>
-            </td>
-          </tr></table>
-        </td>
-    </tr>
-    <tr>
-        <td colspan="2">
-            <table cellpadding='10' cellspacing='0' border='0'>
-                <tbody>
-                    <tr>
-                        <td valign='top'>
-                            <strong>[% l("Search Library") %]</strong><br />
-                            [% PROCESS "default/opac/parts/org_selector.tt2";
-                                PROCESS build_org_selector name='loc' value=loc %]
-                            <div style="position:relative;top:7px;">
-                                <input type='checkbox' name="modifier"
-                                    value="available"[% CGI.param('modifier').grep('available').size ? ' checked="checked"' : '' %]
-                                    id='opac.result.limit2avail' />
-                                <label style="position:relative;top:-2px;"
-                                    for='opac.result.limit2avail'>
-                                    [% l("Limit to Available") %]</label>
-                            </div>
-                        </td>
-                        <td valign='top'>
-                            <strong>[% l("Publication Year") %]</strong><br />
-                            <select name='pubdate' onchange='
-                                if(this.selectedIndex == 3)
-                                    unHideMe($("adv_global_pub_date_2_span"));
-                                else
-                                    hideMe($("adv_global_pub_date_2_span"));'>
-                                    [%  FOR opt IN [
-                                            {"code" => "is", "label" => l("Is")},
-                                            {"code" => "before", "label" => l("Before")},
-                                            {"code" => "after", "label" => l("After")},
-                                            {"code" => "between", "label" => l("Between")}
-                                        ];
-                                            |l(opt.code, opt.label) %]
-                                        <option value="[_1]"[% CGI.param('pubdate') == opt.code ? ' selected="selected"' : '' %]>[_2]</option>
-                                    [%  END; END %]
-                            </select>    
-                            <div style='margin-top:5px;'>
-                                <input name='date1' type='text' size='4' maxlength='4' value="[% CGI.param('date1') | html %]" />
-                                <span id='adv_global_pub_date_2_span' class='[% CGI.param("pubdate") == "between" ? "" : "hide_me" %]'>
-                                   [% l("and") %] <input name='date2' type='text' size='4' maxlength='4' value="[% CGI.param('date2') | html %]" />
-                                </span>
-                            </div>
-                        </td>
-                    </tr>
-                    <!-- TODO: Copy Location Filter -->
-                    <tr class='hide_me'>
-                        <td align='right'>[% l("Shelving Location") %]</td>
-                        <td align='left'>
-                            <select size='3' multiple='multiple'>
-                                [%# TODO: add filter options... %]
-                            </select>
-                        </td>
-                    </tr>
-                </tbody>
-            </table>
-        </td>
-    </tr>
-    <tr class='border_4_2'>
-        <td align="left" colspan='2'>
-            <input type="image" src="[% ctx.media_prefix %]/images/search_btn.gif"
-            alt="[% l('Search') %]" class='pointer' />
-            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-            <a href="[% mkurl('', {}, 1) %]">[% l('Reset Form') %]</a>
-        </td>
-    </tr>
-</table>
-<input type="hidden" name="_adv" value="1" />
-</form>
diff --git a/Open-ILS/src/templates/default/opac/parts/anon_list.tt2 b/Open-ILS/src/templates/default/opac/parts/anon_list.tt2
deleted file mode 100644 (file)
index a4630ca..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-        [% IF ctx.mylist.size %]
-        <form action="[% ctx.opac_root %]/mylist/move" method="POST">
-        <div id='acct_list_template2'>
-            <div style="width:100%">
-                <table cellpadding="0" cellspacing="0" border="0">
-                    <tr>
-                        <td id='anon_list_name'>
-                            [% l('Temporary List') %]
-                        </td>
-                        <td>
-                            <!-- <a href="#"><img
-                                alt="[% l('Anonymous List Help') %]"
-                                src="[% ctx.media_prefix %]/images/question-mark.png" /></a>-->
-                        </td>
-                    </tr>
-                </table>
-                <div class="float-right"></div>
-                <div class="clear-both pad-bottom-five"></div>
-            </div>
-            <table cellpadding='0' cellspacing='0' border='0'>
-                <thead id="acct_list_header_anon">
-                    <tr>
-                        <td width="1%" style="padding-left:10px;">
-                            <input type="checkbox" onclick="
-                                var inputs=document.getElementsByTagName('input'); 
-                                for (i = 0; i < inputs.length; i++) { 
-                                    if (inputs[i].name == 'record' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
-                        </td>
-                        <td width="49%" style="padding-left:5px;">[% l('Title') %]</td>
-                        <td width="49%" style="padding-left:5px;">[% l('Author(s)') %]</td>
-                        <td width="1%" class="nowrap">
-                            <select class="selector_actions_for_list" name="action">
-                                <option>[% l('-- Actions for this list --') %]</option>
-                                <option value="place_hold">[% l('Place Hold') %]</option>
-                                <option value="delete">[% l('Remove Items') %]</option>
-                                [% IF ctx.user AND ctx.bookbags.size %]
-                                <optgroup label="Move selected items to">
-                                    [% FOR bbag IN ctx.bookbags %]]
-                                    <option value="[% bbag.id %]" class="selector_actions_for_list_inner_option">[% bbag.name | html %]</option>
-                                    [% END %]
-                                </optgroup>
-                                [% END %]
-                            </select>
-                            <input type="submit" value="[% l('Go') %]" />
-                        </td>
-                    </tr>
-                </thead>
-                <tbody id='anon_list_tbody'>
-                    [% FOR item IN ctx.mylist;
-                        attrs = {marc_xml => ctx.mylist_marc_xml.$item};
-                        PROCESS get_marc_attrs args=attrs %]
-                    <tr>
-                        <td class="item_list_padding" style="padding-left: 10px;">
-                            <input type="checkbox" name="record" value="[% item %]" />
-                        </td>
-                        <td class="item_list_padding" style="padding-left: 5px;">[% attrs.title | html %]</td>
-                        <td class="item_list_padding" style="padding-left: 5px;">[% attrs.author | html %]</td>
-                    </tr>
-                    [% END %]
-                </tbody>
-            </table>
-            <br /><br />
-        </div>
-        </form>
-        [% END %]
diff --git a/Open-ILS/src/templates/default/opac/parts/base.tt2 b/Open-ILS/src/templates/default/opac/parts/base.tt2
deleted file mode 100644 (file)
index 1fd0536..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns='http://www.w3.org/1999/xhtml' lang='[% ctx.locale %]' xml:lang='[% ctx.locale %]'>
-    <head>
-        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-        [% IF ctx.authtime %]
-        <meta http-equiv="refresh" content="[% ctx.authtime %];[% ctx.logout_page %]">
-        [% END %]
-        <link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/default/opac/semiauto.css" />
-        <link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/default/opac/style.css" />
-        <title>[% l('Catalog - [_1]', ctx.page_title) %]</title>
-        <link rel="unapi-server" type="application/xml" title="unAPI" href="/opac/extras/unapi" />
-    </head>
-    <body>
-        [% content %] 
-        [% INCLUDE 'default/opac/parts/footer.tt2' %]
-        [% INCLUDE 'default/opac/parts/js.tt2' %]
-        [% INCLUDE 'default/opac/parts/chilifresh.tt2' %]
-    </body>
-</html>
diff --git a/Open-ILS/src/templates/default/opac/parts/chilifresh.tt2 b/Open-ILS/src/templates/default/opac/parts/chilifresh.tt2
deleted file mode 100644 (file)
index 937e20f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-[%-  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; 
-%]
-    <!-- Set up the chilifresh account information and load the JS -->
-    <input type="hidden" id="chilifresh_account" name="chilifresh_account" value="[% ENV.OILS_CHILIFRESH_ACCOUNT %]"/>
-    <!--
-    <input type="hidden" id="chilifresh_profile" name="chilifresh_profile" value="[% ENV.OILS_CHILIFRESH_PROFILE %]"/>
-    -->
-    <input type="hidden" id="chilifresh_version" name="chilifresh_version" value="onsite_v1" />
-    <input type="hidden" id="chilifresh_type" name="chilifresh_type" value="search" />
-    <script type="text/javascript" src="[% chili_url %]"></script>
-    <script>try { setTimeout(chili_init, 0); } catch(E) {}</script>
-[%- END %]
diff --git a/Open-ILS/src/templates/default/opac/parts/coded_value_selector.tt2 b/Open-ILS/src/templates/default/opac/parts/coded_value_selector.tt2
deleted file mode 100644 (file)
index 33469fe..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-[%- 
-    # If caller passes a list of possible attribute types, 
-    # search all until we find some values
-
-    IF !attr.size; attr = [attr]; END;
-    all_values = [];
-    attr_class = '';
-    FOR attr_class IN attr;
-        all_values = ctx.search_ccvm('ctype', attr_class);
-        IF all_values.size > 0; LAST; END;
-    END;
-    name = name || "fi:" _ attr_class;
-    id = id || attr_class _ "_selector";
-    values = values || CGI.param(name); 
--%]
-
-<select id='[% id %]' name='[% name %]'[%
-    multiple ? ' multiple="multiple"' : '';
-    size ? (' size="' _ size _ '"') : ''; %]>
-[% IF none_ok %]
-    <option value=''>[% none_label ? none_label : l('-- Any --') %]</option>
-[% END %]
-[% FOR o IN all_values %]
-    <option value='[% o.code | uri %]'[% values.grep('^' _ o.code _ '$').size ? ' selected="selected"' : '' %]>[% o.value | html %]</option>
-[%  END -%]
-</select>
-
diff --git a/Open-ILS/src/templates/default/opac/parts/config.tt2 b/Open-ILS/src/templates/default/opac/parts/config.tt2
deleted file mode 100644 (file)
index ab61c23..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-[% 
-
-##############################################################################
-# This file contains skin-level configuration settings.
-# Many of these settings will probably migrate into actor.org_unit_settings.
-##############################################################################
-
-##############################################################################
-# RefWorks configuration
-##############################################################################
-# RefWorks is a Web-based citation manager
-ctx.refworks.enabled = 'false';
-
-# Base URL for RefWorks
-ctx.refworks.url = 'http://www.refworks.com';
-
-# Some sites have a hosted RefWorks instance at a different URL;
-# in addition, you might want to proxy access to RefWorks - for example:
-# ctx.refworks.url = 'http://librweb.laurentian.ca/login?url=http://refworks.scholarsportal.info';
-
-##############################################################################
-# OpenURL resolution
-##############################################################################
-# Evergreen provides the ability to point at an OpenURL resolver to find
-# electronic resources for a given ISSN or ISBN. Currently, only the SFX
-# resolver is supported.
-#
-# You must enable the open-ils.resolver instance in opensrf.xml to use
-# this feature.
-##############################################################################
-
-openurl.enabled = 'false';
-openurl.baseurl = 'http://sfx.example.com/instance';
-
-##############################################################################
-# Google Analytics support
-##############################################################################
-# You can enable Google Analytics support in Evergreen by entering a
-# valid Google Analytics code and changing 'false' to 'true'
-##############################################################################
-google_analytics.enabled = 'false';
-google_analytics.code = 'UA-9999999-99';
-
-##############################################################################
-# Misc. UI Settings
-##############################################################################
-
-##############################################################################
-# Size of the jacket image to display on the record detail summary.
-# Sizes vary depending on added content provider.
-# Options are "small", "medium", and "large"
-record.summary.jacket_size = 'medium';
-
-
-%]
diff --git a/Open-ILS/src/templates/default/opac/parts/filtersort.tt2 b/Open-ILS/src/templates/default/opac/parts/filtersort.tt2
deleted file mode 100644 (file)
index 428626c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<select class="results_header_sel" id='opac.result.sort' name="sort">
-    <option value=''>[% l("Sort by Relevance") %]</option>
-    <optgroup label='[% l("Sort by Title") %]'>
-        <option value='titlesort'[% value == 'titlesort' ? ' selected="selected"' : '' %]>[% l("Title: A to Z") %]</option>
-        <option value='titlesort.desc'[% value == 'titlesort.desc' ? ' selected="selected"' : '' %]>[% l("Title: Z to A") %]</option>
-    </optgroup>
-    <optgroup label='[% l("Sort by Author") %]'>
-        <option value='authorsort'[% value == 'authorsort' ? ' selected="selected"' : '' %]>[% l("Author: A to Z") %]</option>
-        <option value='authorsort.desc'[% value == 'authorsort.desc' ? ' selected="selected"' : '' %]>[% l("Author: Z to A") %]</option>
-    </optgroup>
-    <optgroup label='[% l("Sort by Publication Date") %]'>
-        <option value='pubdate.desc'[% value == 'pubdate.desc' ? ' selected="selected"' : '' %]>[% l("Date: Newest to Oldest") %]</option>
-        <option value='pubdate'[% value == 'pubdate' ? ' selected="selected"' : '' %]>[% l("Date: Oldest to Newest") %]</option>
-    </optgroup>
-</select>
diff --git a/Open-ILS/src/templates/default/opac/parts/footer.tt2 b/Open-ILS/src/templates/default/opac/parts/footer.tt2
deleted file mode 100644 (file)
index 0443b97..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-[%- 
-    USE CGI = CGI_utf8;
-    hostname = CGI.url({'-base' => 1});
--%]
-<div id="footer">
-    <a href="[% hostname %]">[% l('Dynamic catalog') %]</a> &nbsp;|&nbsp;
-    <a href="http://example.com">[% l('Bottom Link 2') %]</a> &nbsp;|&nbsp;
-    <a href="http://example.com">[% l('Bottom Link 3') %]</a> &nbsp;|&nbsp;
-    <a href="http://example.com">[% l('Bottom Link 4') %]</a> &nbsp;|&nbsp;
-    <a href="http://example.com">[% l('Bottom Link 5') %]</a>
-
-    <div id="copyright_text" style="margin-top: 2em;">
-        [% l('Copyright &copy; 2006-[_1] Georgia Public Library Service, and others', date.format(date.now, '%Y')) %]
-    </div>
-    <div id="footer_logo">
-        [% l('Powered by') %]
-        <a href="http://evergreen-ils.org">
-            <img src="[% ctx.media_prefix %]/opac/images/eg_tiny_logo.jpg"
-                style="border:none; width: 94px; height: 16px;"
-                alt="[% l('Evergreen') %]"
-            />
-        </a>
-    </div>
-</div>
-
diff --git a/Open-ILS/src/templates/default/opac/parts/header.tt2 b/Open-ILS/src/templates/default/opac/parts/header.tt2
deleted file mode 100644 (file)
index 66e47ac..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-[%- USE money = format(l('$%.2f'));
-    USE date;
-    USE CGI = CGI_utf8;
-    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]';
-
-    is_advanced = CGI.param("_adv").size;
-    is_special = CGI.param("_special").size;
-
-    # -----------------------------------------------------------------------------
-    # mkurl( destination_page, params_to_set, params_to_clear )
-    #
-    # Current page, updated params:
-    # mkurl('', {foo => 'bar', boo => 'baz'});
-    #
-    # New page, one param is a list:
-    # mkurl('http://flarg.baz/squz', {foo => 'bar', boo => ['baz', 'faz']});
-    #
-    # New page, clear all existing params before applying new ones:
-    # mkurl('/fuz/buster', {foo => 'bar', boo => 'baz'}, 1); 
-    #
-    # Current page, clear 'some_param' from the existing params:
-    # mkurl('', {foo => 'bar', boo => 'baz'}, ['some_param']);
-    MACRO mkurl(page, params, clear_params) BLOCK;
-
-        # clone the query string to avoid clobberation
-        cgi = CGI.new(CGI.query_string);
-
-        # remove requested params
-        IF clear_params.0; # array
-            FOR p IN clear_params; cgi.delete(p); END;
-        ELSIF clear_params;
-            cgi.delete_all();
-        END;
-
-        # x and y are artifacts of using <input type="image" /> tags 
-        # instead of true submit buttons, and their values are never used.
-        cgi.delete('x', 'y'); 
-
-        # apply user params
-        FOR k IN params.keys;
-            encoded = [];
-            list = params.$k.0 ? params.$k : [params.$k];
-            # CGI croaks on already-decoded strings.  force-encode to be safe.
-            FOR p IN list; encoded.push(ctx.encode_utf8(p)); END;
-            foo = cgi.param("-name", k, "-values", encoded);
-        END;
-
-        # for url brevity, remove any params that have no value
-        FOR p IN cgi.param;
-            val = cgi.param(p);
-            IF val == ''; cgi.delete(p); END;
-        END;
-
-        IF page;
-            IF cgi.query_string;
-                page _ '?' _ cgi.query_string;
-            ELSE;
-                page;
-            END;
-        ELSE;
-            # staying on the current page
-            cgi.url("-path" => 1, "-query" => 1);
-        END;
-    END;
-%]
diff --git a/Open-ILS/src/templates/default/opac/parts/hold_error_messages.tt2 b/Open-ILS/src/templates/default/opac/parts/hold_error_messages.tt2
deleted file mode 100644 (file)
index 9ba6f0e..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-[%
-    # XXX It might be cleaner to move this into its own file or something.
-    #
-    # The following hash should have fail_parts as keys and user/patron-friendly
-    # strings as values.  If the system returns an event with a fail_part when
-    # you attempt to place a hold and the fail part matches something in this
-    # hash, this is the message that will be displayed to the user. Wait until
-    # these are used to pass them through l() for i18n.
-
-    FAIL_PART_MSG_MAP = {
-        "actor.usr.barred" => "The patron is barred",
-        "asset.copy.circulate" => "The item does not circulate",
-        "asset.copy_location.circulate" => "Items from this shelving location do not circulate",
-        "asset.copy.status" => "The item cannot circulate at this time",
-        "circ.holds.target_skip_me" => "The item's circulation library does not fulfill holds",
-        "config.circ_matrix_circ_mod_test" => "The patron has too many items of this type checked out",
-        "config.circ_matrix_test.available_copy_hold_ratio" => "The available item-to-hold ratio is too low",
-        "config.circ_matrix_test.circulate" => "Circulation rules reject this item as non-circulatable",
-        "config.circ_matrix_test.total_copy_hold_ratio" => "The total item-to-hold ratio is too low",
-        "config.hold_matrix_test.holdable" => "Hold rules reject this item as unholdable",
-        "config.hold_matrix_test.max_holds" => "The patron has reached the maximum number of holds",
-        "config.rule_age_hold_protect.prox" => "The item is too new to transit this far",
-        "no_item" => "The system could not find this item",
-        "no_ultimate_items" => "The system could not find any items to match this hold request",
-        "no_matchpoint" => "System rules do not define how to handle this item",
-        "no_user" => "The system could not find this patron",
-        "transit_range" => "The item cannot transit this far"
-    };
-
-
-    # This works like the above has, but instead of fail_parts for keys, use
-    # the textcode of the event.  This will only be consulted for events
-    # that do not have a fail_part matching something in the above hash.
-    # Wait until these are used to pass them through l() for i18n.
-
-    EVENT_MSG_MAP = {
-    };
-%]
diff --git a/Open-ILS/src/templates/default/opac/parts/homesearch.tt2 b/Open-ILS/src/templates/default/opac/parts/homesearch.tt2
deleted file mode 100644 (file)
index e5104b6..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<div style='width:664px;height:35px;background:#FFFFFF;'>
-    <strong><center><img src="[% ctx.media_prefix %]/opac/images/main_logo.jpg" /></center></strong>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/js.tt2 b/Open-ILS/src/templates/default/opac/parts/js.tt2
deleted file mode 100644 (file)
index b117131..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- JS imports, etc.  -->
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/simple.js"></script>
-
-[%- PROCESS "default/opac/parts/config.tt2"; %]
-
-[%- IF ctx.is_staff %]
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/staff.js"></script>
-[%- END %]
-
-[%- IF ENV.OILS_NOVELIST_URL AND ctx.page == 'record';
-    url = ENV.OILS_NOVELIST_URL;
-    IF CGI.https; url = url.replace('^http:', 'https:'); END; %]
-<script type='text/javascript' id='EIT' src='[% url %]'></script>
-[%- END %]
-
-[%- IF google_analytics.enabled == 'true' %]
-<!-- Google Analytics -->
-<script type="text/javascript">
-/* uncomment when ready */ /*
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', '[% google_analytics.code %]']);
-  _gaq.push(['_trackPageview']);
-
-  (function() {
-    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();
-*/
-</script>
-<!-- End Google Analytics -->
-[%- END %]
diff --git a/Open-ILS/src/templates/default/opac/parts/login/form.tt2 b/Open-ILS/src/templates/default/opac/parts/login/form.tt2
deleted file mode 100644 (file)
index 15814ba..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<!-- TODO: MOVE INTO SEPARATE FORGOT-PASSWORD PAGE 
-
-<div class="hide_me">
-       <div class='login_text color_1' style='padding: 4px; text-align: center;'>
-               <span>[% l("Login") %]</span>
-       </div>
-       <br/>
-</div>
-<div class="hide_me" id="forget_pw">
-    <h1>Password Reset</h1>
-       Username or Barcode<br />
-       <input type="text" id="forget_pw_user" /><br /><br />
-       Email Address on account<br />
-       <input type="text" id="forget_pw_email" /><br />
-    <a href="#">Submit</a> &nbsp;
-    <a href="#">Cancel</a>
-</div>
-<table id='change_pw_table' class='data_grid hide_me' style='margin-left: 20px;' width='95%'>
-       <thead>
-        <tr><td colspan='2' align='center'><b>[% l("Password") %]</b></td></tr>
-    </thead>
-    <tbody>
-        <tr>
-            <td colspan='2' style='padding:10px;'>
-                [% l("This appears to be the first time you have logged in.  You will need to change your password.") %]
-                [% l("The password must be at least 7 characters in length,
- contain at least one letter (a-z/A-Z),
- and contain at least one number.") %]
-            </td>
-        </tr>
-        <tr>
-            <td>[% l("Enter your current password") %]</td>
-            <td><input type='password' id='change_pw_current'/></td>
-        </tr>
-        <tr>
-            <td>[% l("Enter the new password") %]</td>
-            <td><input type='password' id='change_pw_1'/></td>
-        </tr>
-        <tr>
-            <td>[% l("Re-type the new password for verification") %]</td>
-            <td><input type='password' id='change_pw_2'/></td>
-        </tr>
-        <tr><td><br/></td><td/></tr>
-        <tr class='color_1'>
-            <td colspan='2' align='center'>
-                <span class='login_text' style='margin-right: 20px;'>
-                    <input type='submit' value='[% l("Update Password") %]'  id='change_pw_button'/>
-                </span>
-            </td>
-        </tr>
-    </tbody>
-</table>
-
-
-<span id='pw_no_match' class='hide_me'>[% l("Passwords do not match") %]</span>
-<span id='pw_update_successful' class='hide_me'>[% l("Password successfully updated") %]</span>
-<span id='pw_not_strong' class='hide_me'>
-    [% l("The password provided is not strong enough.") %]
-    [% l("The password must be at least 7 characters in length, contain at least one letter (a-z/A-Z), and contain at least one number.") %]
-</span>
-
- ^== TODO: MOVE INTO SEPARATE FORGOT-PASSWORD PAGE  -->
-
-[% IF ctx.login_failed_event %]
-<div id='login-failed-message'>
-[%
-    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;
-%]
-</div>
-[% END %]
-
-<div>
-    <div style="height:20px;"></div>
-    <form method='POST'>
-        <table cellpadding="0" cellspacing="0" border="0">
-            <tr>
-                <td valign="top" width="676" class="login_boxes left_brain">
-                    <table cellpadding="0" cellspacing="0" border="0"
-                        width="100%">
-                        <tr>
-                               <td colspan="2" style="padding-bottom: 10px;">
-                                <h1>[% l('Log in to Your Account') %]</h1>
-                                [% l('Please enter the following information:') %]
-                                <br /><br />
-                            </td>
-                        </tr>
-                        <tr>
-                            <td width="42%" class="lbl1">
-                                [% l('Library Card Number or Username') %]
-                                <br />
-                                <span class="lbl2">
-                                    [% l('Please include leading zeros and no spaces.') %]
-                                    <br/>
-                                    [% l('Example: 0026626051') %]
-                                </span>
-                                <br /><br />
-                            </td>
-                            <td width="58%" valign="top">
-                                <div class="input_bg">
-                                    <input type="text" id="username_field" name="username"/>
-                                </div>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td colspan="2">
-                                <div style="height:15px;"></div>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td valign="top" class="lbl1">
-                                [% l('PIN Number or Password') %]<br />
-                                [% INCLUDE "default/opac/parts/login/password_hint.tt2" %]
-                            </td>
-                            <td valign="top">
-                                <div class="input_bg">
-                                    <input name="password" type="password" />
-                                </div>
-                                <div style="padding-top:7px;">
-                                    [%
-                                        # If no redirect is offered or it's leading us back to the 
-                                        # login form, redirect the user to My Account
-                                        redirect = CGI.param('redirect_to') || ctx.referer;
-                                        IF !redirect OR redirect.match(ctx.path_info _ '$');
-                                            redirect = CGI.url('-full' => 1) _ '/opac/myopac/main';
-                                        END;
-                                        redirect = redirect  | replace('^http:', 'https:');
-                                    %]
-                                    <input type='hidden' name='redirect_to' value='[% redirect %]'/>
-                                    <input type="checkbox" name="persist" id="login_persist" /><label for="login_persist"> [% l('Stay logged in?') %]</label>
-                                </div>
-                                <div style="padding-top:14px;">
-                                    <input type='image' alt="[% l('Log in') %]" src="[% ctx.media_prefix %]/images/login-btn2.png" />
-                                    <!-- TODO
-                                    <a href="reset_password"
-                                        style="position:relative;top:-13px;left:2px;font-size:10px;">Forgot your PIN?</a>
-                                    -->
-                                </div>
-                               </td>
-                        </tr>
-                    </table>
-                    <br /><br />
-                </td>
-                   <td><div style="width:10px;"></div></td>
-                [% INCLUDE "default/opac/parts/login/help.tt2" %]
-            </tr>
-        </table>
-    </form>
-    <div class="clear-both"></div>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/login/help.tt2 b/Open-ILS/src/templates/default/opac/parts/login/help.tt2
deleted file mode 100644 (file)
index 16db31f..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<td class="login_boxes right_brain" align="center" valign="top" width="291">
-
-    <a href="http://example.com"><img 
-        src="[% ctx.media_prefix %]/images/questions.png" alt="[% l('Questions?') %]" style="margin-top:29px;" /></a>
-
-    <div style="width:182px;color:black;padding:5px 25px;">
-        [% l('Visit our FAQs section for answers to common questions about how to use your account.') %]
-    </div>
-
-    <a href="http://example.com"><img
-        alt="[% l('FAQs') %]" src="[% ctx.media_prefix %]/images/faqs-btn.png" style="margin-top:13px;" /></a>
-</td>
diff --git a/Open-ILS/src/templates/default/opac/parts/login/password_hint.tt2 b/Open-ILS/src/templates/default/opac/parts/login/password_hint.tt2
deleted file mode 100644 (file)
index a95b47f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<span class="lbl2">
-    [% | l('<br/>', '<br/>') %]
-       If this is your first time logging in, please enter [_1] the last 4 digits of your phone number. [_2] Example: 0926
-    [% END %]
-</span>
diff --git a/Open-ILS/src/templates/default/opac/parts/misc_util.tt2 b/Open-ILS/src/templates/default/opac/parts/misc_util.tt2
deleted file mode 100644 (file)
index f1ded0e..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-[% 
-    # Extract MARC fields from XML
-    #   get_marc_attrs( { marc_xml => doc } )
-    BLOCK get_marc_attrs;
-        xml = args.marc_xml;
-        args.isbns = [];
-        FOR isbn IN xml.findnodes('//*[@tag="020"]/*[@code="a"]');
-            args.isbns.push(isbn.textContent);
-        END;
-        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.title_extended = xml.findnodes('//*[@tag="245"]').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.isbns.0.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"]').textContent;
-                sfx_isbn = 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 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('<br/>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 %]
-        <div>
-            [% l('[_1] hold on [quant,_2,circulating copy,circulating copies]',
-                    hold.hold.queue_position, hold.hold.potential_copies) %]
-        </div>
-    [% END
-%]
diff --git a/Open-ILS/src/templates/default/opac/parts/myopac/base.tt2 b/Open-ILS/src/templates/default/opac/parts/myopac/base.tt2
deleted file mode 100644 (file)
index fccb14b..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-[%  WRAPPER "default/opac/parts/base.tt2" %]
-
-[% myopac_pages = [
-        {url => "main", name => "Account Summary"},
-        {url => "circs", name => "Items Checked Out"},
-        {url => "holds", name => "Holds"},
-        {url => "prefs", name => "Account Preferences"},
-        {url => "lists", name => "My Lists"}
-    ];
-    skin_root = "../"
-%]
-    [% INCLUDE "default/opac/parts/topnav.tt2" %]
-    <div id="search-wrapper">
-        [% INCLUDE "default/opac/parts/printnav.tt2" %]
-        [% INCLUDE "default/opac/parts/searchbar.tt2" %]
-    </div>
-    <div id="content-wrapper">
-        <div id="myopac_tabs">
-            <div id="acct_tabs">
-                [%- FOREACH page IN myopac_pages;
-                    IF page.url == myopac_page;
-                        cls_which = "on";
-                        ctx.page_title = "Your Account - " _ page.name;
-                    ELSE;
-                        cls_which = "off";
-                    END -%]
-                <a href="[% ctx.opac_root _ '/myopac/' _ page.url %]"
-                    class="acct-[% page.url; '-'; cls_which %] acct-tab"></a>
-                [% END %]
-            </div>
-        </div>
-        <div id="main-content">
-            [% content %]
-            <div class="common-full-pad"></div>
-        </div>
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/parts/myopac/main_base.tt2 b/Open-ILS/src/templates/default/opac/parts/myopac/main_base.tt2
deleted file mode 100644 (file)
index 8356287..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/misc_util.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2";
-%]
-
-<div id='myopac_summary_div' style="padding:0px;">
-
-    <div style="width:742px;float:left;">
-        <div class="header_middle">[% l('Account Summary') %]</div>
-    </div>
-
-    <!-- fines summary along the right of the page -->
-    [% IF myopac_main_page == "payment_form" OR (
-        !ctx.fines.circulation.size AND !ctx.fines.grocery.size
-    ) %]
-    <div id="myopac_sum_fines_placehold"></div>
-    [% ELSE %]
-    <div id="myopac_sum_fines">
-        <div style="position:absolute;">
-            <div style="position:relative;top:-15px;left:-23px;">
-                <img src="[% ctx.media_prefix %]/images/acct_sum_fines_tl.png" />
-            </div>
-        </div>
-        <div style="position:absolute;">
-            <div style="position:relative;top:-15px;left:172px;">
-                <img src="[% ctx.media_prefix %]/images/acct_sum_fines_tr.png" />
-            </div>
-        </div>
-        <div style="position:absolute;">
-            <div style="position:relative;top:161px;left:-23px;">
-                <img src="[% ctx.media_prefix %]/images/acct_sum_fines_bl.png" />
-            </div>
-        </div>
-        <div style="position:absolute;">
-            <div style="position:relative;top:161px;left:172px;">
-                <img src="[% ctx.media_prefix %]/images/acct_sum_fines_br.png" />
-            </div>
-        </div>
-        [% l('Fines:') %]
-        <span class='[% ctx.user_stats.fines.balance_owed ? "red" : ""%]'>
-            [% money(ctx.user_stats.fines.balance_owed) %]
-        </span><br />
-
-        <form action="[% ctx.opac_root %]/myopac/main_payment_form" method="GET"><input
-            type="image" title="[% l('Pay Fines') %]" alt="[% l('Pay Fines') %]"
-            onmouseover="this.src='[% ctx.media_prefix %]/images/pay-fines-btn-hover.png';"
-            onmouseout="this.src='[% ctx.media_prefix %]/images/pay-fines-btn.png';"
-            src="[% ctx.media_prefix %]/images/pay-fines-btn.png"
-            class="pos-rel-top-5" /></form>
-    </div>
-    [% END %]
-
-    <div style="width:662px;">
-        <div style="float:left;">
-            <div style="padding:10px 0px;"></div>
-            <div class="acct_sum_row">
-                <table width="100%" cellspacing="0" cellpadding="0">
-                    <tr>
-                        <td>[% l("Items Currently Checked out ([_1])", ctx.user_stats.checkouts.total_out) %]</td>
-                        <td align="right">
-                            <a href="[% ctx.opac_root %]/myopac/circs">[% l("View All") %]</a>
-                        </td>
-                    </tr>
-                </table>
-            </div>
-            <div class="acct_sum_row">
-                <table width="100%" cellspacing="0" cellpadding="0">
-                    <tr>
-                        <td>[% l('Items Currently on Hold ([_1])', ctx.user_stats.holds.total) %]</td>
-                        <td align="right">
-                            <a href="[% ctx.opac_root %]/myopac/holds">[% l('View All') %]</a>
-                        </td>
-                    </tr>
-                </table>
-            </div>
-            <div class="acct_sum_row">
-                <table width="100%" cellspacing="0" cellpadding="0">
-                    <tr>
-                        <td>[% l('Items ready for pickup ([_1])', ctx.user_stats.holds.ready) %]</td>
-                        <td align="right">
-                            <a href="[% ctx.opac_root %]/myopac/holds?available=1">[% l('View All') %]</a>
-                        </td>
-                    </tr>
-                </table>
-            </div>
-        </div>
-    </div>
-    <div class="clear-both"></div>
-    <div id='fines_payments_wrapper'>
-        <div id='acct_fines_tabs'>
-            [% IF myopac_main_page == 'main' %]
-            <a href='#'><img src='[% ctx.media_prefix %]/images/acct_fines_on.jpg'/></a>
-            <a href='main_payments'><img src='[% ctx.media_prefix %]/images/acct_payments_off.jpg'/></a>
-            [% ELSE %]
-            <a href='main'><img src='[% ctx.media_prefix %]/images/acct_fines_off.jpg'/></a>
-            <a href='#'><img src='[% ctx.media_prefix %]/images/acct_payments_on.jpg'/></a>
-            [% END %]
-        </div>
-    </div>
-    [% content %]
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/parts/myopac/main_refund_policy.tt2 b/Open-ILS/src/templates/default/opac/parts/myopac/main_refund_policy.tt2
deleted file mode 100644 (file)
index 0a41658..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<tr>
-    <td colspan="3">
-        <br />
-        [% l('Important! You must have a printed receipt
-              to be eligible for a refund on lost items
-              (regulations allow for no exceptions).')
-        %]
-        <br />
-        <strong>
-        [% l('To ensure your necessary receipt information
-             is not lost, enter your email address above 
-             and a receipt will be emailed to you. Otherwise,
-             make certain you have a printed receipt in hand
-             before closing the payment receipt screen.')
-        %]
-        </strong>
-    </td>
-</tr>
diff --git a/Open-ILS/src/templates/default/opac/parts/myopac/prefs_base.tt2 b/Open-ILS/src/templates/default/opac/parts/myopac/prefs_base.tt2
deleted file mode 100644 (file)
index fb896ad..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    WRAPPER "default/opac/parts/myopac/base.tt2"; %]
-
-<div id='myopac_prefs_div'>
-    <div id="acct_prefs_tabs" style="padding-bottom: 12px;color:#666;">
-        <div style="float:left;">
-
-        [% IF prefs_page == 'personal' %]
-            <div class="align">
-                <a href='#'><img src="[% ctx.media_prefix %]/images/sub_prefs_info_on.jpg" /></a>
-            </div>
-            <div class="align">
-                <a href='prefs_notify'><img src="[% ctx.media_prefix %]/images/sub_prefs_notify_off.jpg" /></a>
-            </div>
-            <div class="align">
-                <a href='prefs_settings'><img src="[% ctx.media_prefix %]/images/sub_prefs_search_off.jpg" /></a>
-            </div>
-        [% ELSIF prefs_page == 'notify' %]
-            <div class="align">
-                <a href='prefs'><img src="[% ctx.media_prefix %]/images/sub_prefs_info_off.jpg" /></a>
-            </div>
-            <div class="align">
-                <a href='#'><img src="[% ctx.media_prefix %]/images/sub_prefs_notify_on.jpg" /></a>
-            </div>
-            <div class="align" >
-                <a href='prefs_settings'><img src="[% ctx.media_prefix %]/images/sub_prefs_search_off.jpg" /></a>
-            </div>
-        [% ELSE %]
-            <div class="align">
-                <a href='prefs'><img src="[% ctx.media_prefix %]/images/sub_prefs_info_off.jpg" /></a>
-            </div>
-            <div class="align">
-                <a href='prefs_notify'><img src="[% ctx.media_prefix %]/images/sub_prefs_notify_off.jpg" /></a>
-            </div>
-            <div class="align" >
-                <a href='#'><img src="[% ctx.media_prefix %]/images/sub_prefs_search_on.jpg" /></a>
-            </div>
-        [% END %]
-        </div>
-    </div> 
-
-    <div class="clear-both"></div> <br/>
-
-    <div class="header_middle">
-        <span id="acct_prefs_header">[% l('Account Information and Preferences') %]</span>
-        <span class="float-right"> 
-            <a class="hide_me" href="#">[% l('Export List') %]</a><!-- what does this do? -->
-        </span>
-    </div>
-
-    <div class="clear-both normal-height"></div>
-
-[% content; %]
-
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/parts/myopac/prefs_hints.tt2 b/Open-ILS/src/templates/default/opac/parts/myopac/prefs_hints.tt2
deleted file mode 100644 (file)
index e2fbc6b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<p>
-    [% l('Ensure your account has a valid email address so that we can notify
-          you about available holds, items that are about to be overdue, and
-          overdue items!') %]
-</p>
diff --git a/Open-ILS/src/templates/default/opac/parts/org_selector.tt2 b/Open-ILS/src/templates/default/opac/parts/org_selector.tt2
deleted file mode 100644 (file)
index 1485679..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-[%
-    BLOCK build_org_selector_options;
-        disabled = '';
-        selected = '';
-        IF can_have_vols_only AND walker.ou_type.can_have_vols != 't';
-            disabled = 'disabled="disabled"';
-        ELSIF walker.id == value;
-            selected = 'selected="selected"';
-        END;
-%]
-        <option value='[% walker.id | uri %]' [% selected %] [% disabled %]>
-            [%
-                pad = walker.ou_type.depth * 2;
-                FOR idx IN [0..pad]; '&nbsp;'; END;
-                walker.name | html;
-            %]
-        </option>
-        [%  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;
-%]
-    <select [% IF id %] id='[% id %]' [% END %] name='[% name %]'>
-    [% PROCESS build_org_selector_options walker=(org_unit || ctx.aou_tree) value=value %]
-    </select>
-[%  END %]
diff --git a/Open-ILS/src/templates/default/opac/parts/place_hold.tt2 b/Open-ILS/src/templates/default/opac/parts/place_hold.tt2
deleted file mode 100644 (file)
index f3a564c..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-[%  PROCESS "default/opac/parts/misc_util.tt2";
-    PROCESS "default/opac/parts/hold_error_messages.tt2";
-%]
-
-<div id='holds_box' class='canvas' style='margin-top: 6px;'>
-    <h1>[% l('Place Hold') %]</h1>
-    <form method="POST">
-        <input type="hidden" name="hold_type" value="[% CGI.param('hold_type') | html %]" />
-        [%#
-            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;
-        %]
-        <input type="hidden" name="redirect_to" value="[% CGI.param('redirect_to') || CGI.referer | html %]" />
-
-        [% IF ctx.is_staff %]
-        <p class="staff-hold">
-            <input type="radio" id="hold_usr_is_requestor_not"
-                onchange="staff_hold_usr_input_disabler(this);"
-                name="hold_usr_is_requestor" value="0"
-                [% IF ctx.patron_recipient; ' checked="checked"'; END %] />
-            <label for="hold_usr_is_requestor_not">
-                [% l("Place hold for patron by barcode:") %]
-            </label>
-            <input type="text" name="hold_usr" id="hold_usr_input" value="[% ctx.patron_recipient.card.barcode | html %]" /><br />[%# XXX multi-barcode users? %]
-            <span>
-                <input type="radio" id="hold_usr_is_requestor"
-                    onchange="staff_hold_usr_input_disabler(this);"
-                    name="hold_usr_is_requestor" value="1" />
-                <label for="hold_usr_is_requestor">
-                    [% l("Place this hold for me ([_1] [_2])", ctx.user.first_given_name, ctx.user.family_name) | html %]
-                </label>
-            </span>
-        </p>
-        [% END %]
-
-        <!-- loop through the holds and display status of request where appropriate -->
-        <table id='hold-items-list'>
-        [% FOR hdata IN ctx.hold_data;
-            attrs = {marc_xml => hdata.marc_xml};
-            PROCESS get_marc_attrs args=attrs %]
-            <tr>
-                <td>
-                    <input type="hidden" name="hold_target" value="[% hdata.target.id | html %]" />
-                    <div class='hold-items-list-title'>[% attrs.title_extended | html %]</div>
-                </td>
-            </tr>
-        [% END %]
-        </table>
-
-        <p>
-            [% l('Pickup location:') %]
-            [% PROCESS "default/opac/parts/org_selector.tt2";
-                PROCESS build_org_selector name='pickup_lib' value=ctx.default_pickup_lib id='pickup_lib' can_have_vols_only=1 %]
-        </p>
-        <p>
-            [% |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 %]
-        </p>
-        <input type="image" name="submit" value="submit" title="[% l('Submit') %]"
-            alt="[% l('Submit') %]" src="[% ctx.media_prefix %]/images/btnSubmit.png" />
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-        <a href="javascript:history.go(-1);" id="holds_cancel"><img
-            alt="[% l('Cancel') %]" src="[% ctx.media_prefix %]/images/btnCancel.png" /></a>
-    </form>
-    <br /><br />
-    <p>
-        [% |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 %]
-        <br /><a href="#">[% l('Library phone numbers.') %]</a>
-    </p>
-    <p>
-        [% |l %]* For best possible service, we recommend keeping 
-        a printed copy of your most recent holds list.[% END %]
-    </p>
-</div>
-
diff --git a/Open-ILS/src/templates/default/opac/parts/place_hold_result.tt2 b/Open-ILS/src/templates/default/opac/parts/place_hold_result.tt2
deleted file mode 100644 (file)
index ac07c0d..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-[%  PROCESS "default/opac/parts/misc_util.tt2";
-    PROCESS "default/opac/parts/hold_error_messages.tt2";
-    override_possible = 0;
-%]
-
-<!-- TODO: CSS for big/strong-->
-
-<div id='holds_box' class='canvas' style='margin-top: 6px;'>
-    <h1>[% l('Place Hold') %]</h1>
-
-    <form method="POST">
-        <input type="hidden" type="name" name="override" value="1" />
-        [% FOR k IN ctx.orig_params.keys %]
-        <input type="hidden" name="[% k %]" value="[% ctx.orig_params.$k | html %]" />
-        [% END %]
-
-        <table id='hold-items-list'>
-
-        [% FOR hdata IN ctx.hold_data;
-            attrs = {marc_xml => hdata.marc_xml};
-            PROCESS get_marc_attrs args=attrs %]
-            <tr>
-                <td>
-                    [% 
-                        override = 0;
-                        IF hdata.could_override || hdata.hold_local_alert;
-                            override_possible = 1;
-                            override = 1;
-                        END;
-                    %]
-                    <input 
-                        type="checkbox" name="hold_target" value="[% hdata.target.id | html %]"
-                        [% IF override %] checked='checked' [% ELSE %] disabled='disabled' [% END %]/>
-                </td>
-                <td>
-                    <div class='hold-items-list-title'>[% attrs.title_extended | html %]</div>
-                    <div>
-                        [% IF hdata.hold_success %]
-
-                        <div>[% l("Hold was successfully placed"); %]</div>
-
-                        [% ELSIF hdata.hold_failed %]
-
-                            <div><big><strong>[% l("Hold was not successfully placed"); %]</strong></big></div>
-                            [% IF hdata.hold_local_block %]
-                                <div>[% l("There is already a copy available at your local library.") %]</div>
-                            [% ELSIF hdata.hold_failed_event || hdata.hold_local_alert %]
-                                <div>
-                                    <span class='hold-items-list-problem'>[% l('Problem:') %]</span>
-                                    <span title="[% hdata.hold_failed_event.textcode | html %]">
-                                        <em>[%
-                                                fail_part_key = hdata.hold_failed_event.payload.fail_part;
-                                                event_key = hdata.hold_failed_event.textcode;
-
-                                                # display:
-                                                l(FAIL_PART_MSG_MAP.$fail_part_key) ||
-                                                l(EVENT_MSG_MAP.$event_key) ||
-                                                l(hdata.hold_failed_event.desc) ||
-                                                hdata.hold_failed_event.payload.fail_part ||
-                                                hdata.hold_failed_event.textcode ||
-                                                (hdata.hold_local_alert ?
-                                                    l("There is already a copy available at your local library.") :
-                                                    l("Unknown problem")) | html
-                                            %]</em>
-                                            [% IF event_key == 'PERM_FAILURE' %]
-                                            <div>[% l('Permission: "[_1]"', hdata.hold_failed_event.ilsperm) | html %]</div>
-                                            [% END %]
-                                    </span>
-                                    [% IF hdata.hold_copy_available %]
-                                        <p>[%  l('Find a copy in the shelving location, "[_1]."', locname) | html %]</p>
-                                    [% END %]
-                                </div>
-                            [% END;
-                        END %]
-                    </div>
-                </td>
-            </tr>
-        [% END %]
-        </table>
-        [% IF override_possible %]
-            <br/>
-            <hr/>
-            <div class='big-strong'>
-                [% |l %]You have permission to override some of the failed holds.<br/>  Click Submit to override and place your hold on the selected items.[% END %]
-            </div>
-            <span style='padding-right: 10px;'>
-                <input type="image" name="submit" value="submit" title="[% l('Submit') %]"
-                    alt="[% l('Submit') %]" src="[% ctx.media_prefix %]/images/btnSubmit.png" />
-            </span>
-        [% END %]
-        <span>
-        <a href="[% CGI.param('redirect_to') || CGI.referer | html %]" id="holds_cancel"><img
-            alt="[% l('Cancel') %]" src="[% ctx.media_prefix %]/images/btnCancel.png" /></a>
-        </span>
-    </form>
-</div>
-
diff --git a/Open-ILS/src/templates/default/opac/parts/printnav.tt2 b/Open-ILS/src/templates/default/opac/parts/printnav.tt2
deleted file mode 100644 (file)
index d0f0a41..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<div class="big-block">
-    <div class="float-right">
-        <div class="pos-rel">
-            <img src="[% ctx.media_prefix %]/images/utils-corner-left.png" class="float-left" alt="" />
-            <div class="left-corner"> 
-                <a href="javascript:history.go(-1)"
-                    id="util_back_btn"><img alt="[% l('Back') %]"
-                    src="[% ctx.media_prefix %]/images/tool_back.png" /></a>
-                <a href="[% ctx.opac_root %]/home"
-                    id="util_home_btn"><img alt="[% l('Homepage') %]"
-                    src="[% ctx.media_prefix %]/images/tool_home.png" /></a>
-                <a href="javascript:window.print();"
-                    id="util_print_btn"><img alt="[% l('Print Page') %]"
-                    src="[% ctx.media_prefix %]/images/tool_print.png" /></a>
-                <a href="http://open-ils.org/dokuwiki/doku.php?id=evergreen-user:opac_help"
-                    id="util_help_btn"><img alt="[% l('Help') %]"
-                    src="[% ctx.media_prefix %]/images/tool_help.png" /></a>
-                <a href="javascript:history.go(+1)"
-                    id="util_forw_btn"><img alt="[% l('Forward') %]"
-                    src="[% ctx.media_prefix %]/images/tool_forward.png" /></a>
-            </div>
-            <img src="[% ctx.media_prefix %]/images/utils-corner-right.png" class="float-left" alt="" />
-        </div>
-    </div>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/qtype_selector.tt2 b/Open-ILS/src/templates/default/opac/parts/qtype_selector.tt2
deleted file mode 100644 (file)
index 4b91a47..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[%  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("Bib Call Number")}
-] %]
-<select name="qtype">
-    [%  query_type = query_type || CGI.param('qtype');
-        FOR qt IN query_types -%]
-    <option value='[% qt.value | uri %]'[%
-        query_type == qt.value ? ' selected="selected"' : ''
-    %]>[% qt.label | html %]</option>
-    [% END -%]
-</select>
diff --git a/Open-ILS/src/templates/default/opac/parts/record/authors.tt2 b/Open-ILS/src/templates/default/opac/parts/record/authors.tt2
deleted file mode 100644 (file)
index 3a03c3e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-[%  
-
-authors = [
-    {
-        type => 'author', 
-        label => l('Authors: '),
-        xpath => '//*[@tag="100"]|//*[@tag="110"]|//*[@tag="111"]'
-    }, {
-        type => 'added', 
-        label => l('Added Authors: '),
-        xpath => '//*[@tag="700"]|//*[@tag="710"]|//*[@tag="711"]'
-    }, {
-        type => 'credits', 
-        label => l('Credits: '),
-        xpath => '//*[@tag="100"]|//*[@tag="110"]|//*[@tag="111"]'
-    }, {
-        type => 'cast', 
-        label => l('Cast: '),
-        xpath => '//*[@tag="508"]'
-    }, {
-        type => 'notes', 
-        label => l('Author Notes: '),
-        xpath => '' # Comes from added content...
-    }
-];
-
-BLOCK build_author_links;
-    FOR node IN ctx.marc_xml.findnodes(xpath);
-        FOR subfield IN node.childNodes;
-            NEXT UNLESS subfield.nodeName == "subfield";
-            code = subfield.getAttribute('code');
-            NEXT UNLESS code.match('[a-z]');
-            term = subfield.textContent | html;
-            '<br/><a href="' _ ctx.opac_root _ '/results?qtype=author&amp;query=' _ term _ '&amp;loc=' _ loc _ '">' _ term _ '</a>';
-        END;
-    END;
-END;
-%]
-
-<div class='rdetail_extras_div'>
-[% FOREACH author IN authors;
-    NEXT UNLESS author.xpath; 
-    links = PROCESS build_author_links(xpath=author.xpath);
-    IF links.match('\S') %]
-    <strong>[% author.label | html %]</strong>
-    <div class='rdetail-author-div'>[% links %]</div>
-    [% END %]
-[% END %]
-</div>
-
-
diff --git a/Open-ILS/src/templates/default/opac/parts/record/awards.tt2 b/Open-ILS/src/templates/default/opac/parts/record/awards.tt2
deleted file mode 100644 (file)
index 68d93ce..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<div class='rdetail_extras_div'> 
-    <div style="margin-bottom:20px;"></div>
-
-        <!-- Chilifresh patron reviews -->
-        <strong>[% l('Patron Reviews:') %]</strong>
-        <div style="margin-bottom:20px;">
-            <div class="chili_review" id="isbn_[% attrs.isbn_clean | html %]"> </div>
-            <div id="chili_review_[% attrs.isbn_clean | html %]" style="display: none;" align="center" width="100%"></div>
-        </div>
-    
-        <!-- Reviews from added content provider -->
-        [% IF 0 %] 
-        <strong>[% l('Reviews:') %]</strong>
-        <div style="margin-bottom:20px;"></div>
-        [% END %]
-
-        <!-- Novelist suggestions-->
-        [% IF ENV.OILS_NOVELIST_URL %] 
-        <strong>[% l('Similar Books:') %]</strong>
-        <div class='rdetail_extras_div'>
-            <div id="NoveListSelect" class="NoveListSelect">
-                <div id="NoveListAnchor" class="NoveListSelect"></div>
-                <div id="novsuggestions"></div>
-                <div id="nextreads"></div>
-                <div id="novrelatedauthors"></div>
-                <div id="novrelateditems"></div>
-            </div>
-        </div>
-        [% END %]
-    </div>
-</div>
-
diff --git a/Open-ILS/src/templates/default/opac/parts/record/body.tt2 b/Open-ILS/src/templates/default/opac/parts/record/body.tt2
deleted file mode 100644 (file)
index 3444a59..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<!-- ****************** page_rdetail.xml ***************************** -->
-[%  attrs = {marc_xml => ctx.marc_xml};
-    PROCESS "default/opac/parts/misc_util.tt2";
-    PROCESS get_marc_attrs args=attrs %]
-<div id='canvas_main' class='canvas'>
-    <div id="rdetail_header" class="hide_me">[%#
-        XXX Does it make sense for now to even have this section?  Why
-        should the record detail page be aware of the ongoing search?
-        The user can use the back button to go back to their search results
-        like on any other website. %]
-        <div style="float:left;">
-            Search Results&nbsp;&nbsp;&nbsp;
-            <span id="rdetail_result_count" class="hide_me">
-                Showing Item <strong id='np_offset'></strong>
-                &nbsp;of&nbsp;<strong id='np_count'></strong>
-            </span>
-        </div>
-        <div id="rdetail_result_nav">
-            <span class="hide_me">
-                <a class='np_nav_link classic_link' id='np_start'
-                    href='#'
-                    title="[% l("First results page") %]">[% l("Start") %]</a>
-                </span>
-                <a class='np_nav_link classic_link hide_me' id='np_prev'
-                    href='#'
-                    title='[% l("Previous page") %]'><span
-                        class="nav_arrow_fix">&#9668;</span> Previous</a>
-                <span style="padding:0px 10px;"> </span>
-                <a class='np_nav_link classic_link hide_me' id='np_next'
-                    href='#'
-                    title='[% l("Next page") %]'>Next <span
-                        class="nav_arrow_fix">&#9658;</span></a>
-                <span class="hide_me"><a class='np_nav_link classic_link'
-                    id='np_end' href='#'
-                    title="[% l("Last results page") %]">[% l("End") %]</a></span>
-        </div>
-        <div class="clear-both"></div>
-    </div>
-
-    <div style='font-weight: bold; padding: 5px; margin: 5px; width: 100%;'
-        class='hide_me color_4' id='rdetail_deleted_exp'>
-        [% l("This record has been deleted from the database.  We recommend that you remove this title from any bookbags it may have been added to.") %]
-    </div>
-    [% INCLUDE "default/opac/parts/record/summary.tt2" %]
-    <br />
-    [% INCLUDE "default/opac/parts/record/extras.tt2" %]
-</div>
-<!-- ****************** end; page_rdetail.xml ***************************** -->
diff --git a/Open-ILS/src/templates/default/opac/parts/record/cnbrowse.tt2 b/Open-ILS/src/templates/default/opac/parts/record/cnbrowse.tt2
deleted file mode 100644 (file)
index b9498bb..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-[% 
-    cnoffset = CGI.param('cnoffset');
-    cnoffset = cnoffset.match('^\d+$') ? cnoffset : 0; # verify cnoffset is a sane value
-%]
-
-<div id='cn_browse' class='cn_browser'>
-    <div id='cn_browse_div'> 
-        <div class='color_4'>
-            <span>[% l("You are now browsing") %]</span>
-            <strong>[% ctx.browsing_ou.name | html %]</strong>
-        </div>
-        <table class='data_grid bookshelf' width='100%'>
-            <thead>
-                <tr>
-                    <td>
-                        <a class='classic_link' 
-                            href="[% mkurl('', {cnoffset => cnoffset - 1}) %]#cnbrowse"><b>[% l("&lt;&lt; Previous Page") %]</b></a>
-                    </td>
-                    <td colspan='1' align='center'>[% l("Shelf Browser") %]</td>
-                    <td>
-                        <a class='classic_link' 
-                            href="[% mkurl('', {cnoffset => cnoffset + 1}) %]#cnbrowse"><b>[% l("Next Page &gt;&gt;") %]</b></a>
-                    </td>
-                </tr>
-            </thead>
-            <tbody>
-            [% tr_open = 0; FOR cn IN ctx.browsed_call_numbers %]
-                [%- IF loop.index % 3 == 0; tr_open = 1 %]
-                <tr class='cn_browse_row'>
-                [% END -%]
-                    <td class='cn_browse_item' width='25%' valign='top'>
-                        [%  rec_attrs = {marc_xml => cn.record.marc};
-                            PROCESS get_marc_attrs args=rec_attrs;
-                            ident = rec_attrs.isbn_clean || rec_attrs.upc;
-                            IF ident %]
-                        <a href="[% mkurl(ctx.opac_root _ '/record/' _ cn.record.id, {}, 1) %]"><img height='60' width='50' 
-                            class='cn_browse_info' name='cn_browse_pic' border='0'
-                            src="[% ctx.media_prefix %]/opac/extras/ac/jacket/small/[% ident | uri %]" /></a>
-                        [% END %]
-                        <div class='cn_browse_info bold' name='cn_browse_cn'>[% cn.label | html %]</div>
-                        <div class='cn_browse_info'>
-                            <a name='cn_browse_title' class='classic_link' 
-                                href="[% mkurl(ctx.opac_root _ '/record/' _ cn.record.id, {}, 1) %]">[% rec_attrs.title | html %]</a>
-                        </div>
-                        [% IF rec_attrs.author %]<div class='cn_browse_info'>
-                            <a name='cn_browse_author' class='classic_link'
-                                href="[%-
-                                    authorquery = rec_attrs.author | replace('[,\.:;]', '');
-                                    mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, 1)
-                                    -%]">[% rec_attrs.author | html %]</a>
-                        </div>[% END %]
-                        <div class='cn_browse_info' name='cn_browse_lib'>[% cn.owning_lib.name | html %]</div>
-                    </td>
-                [% IF loop.index % 3 == 2; tr_open = 0 %]
-                </tr>
-                [% END %]
-            [% END; IF tr_open %]</tr>[% END %]
-            </tbody>
-        </table>
-    </div>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/record/extras.tt2 b/Open-ILS/src/templates/default/opac/parts/record/extras.tt2
deleted file mode 100644 (file)
index ec9b62a..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<div>
-    <div id='rdetail_extras_div' style='width: 100%;'> 
-
-        [%  # 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.0; 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 => 'summaryplus',  label => l('Summaries &amp; More'), hide => hide_summary}, 
-            {name => 'content',  label => l('Contents'), hide => 1}, # ToC
-            {name => 'authors',  label => l('Authors')}, 
-            {name => 'series',   label => l('Series')},
-            {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')},
-            {name => 'marchtml', label => l('MARC Record')}
-        ];
-
-        FOREACH extra IN extras;
-            IF extra.hide; NEXT; END; 
-            name = extra.name;
-        %]
-        <div class="rdetail_extras">
-            <div class="rdetail_extras_hr"></div>
-            <div class="rdetail_extras_link">
-                [%  href = mkurl('', {expand => name}) _ '#' _ name; %]
-                <a name='[% name %]' href='[% href %]'><img
-                    alt='[% extra.label %]' src="[% ctx.media_prefix %]/images/rdetail_arrow.png" /></a>
-                <a href='[% href %]' class="rdetail_extras_lbl">[% extra.label %]</a>
-            </div>
-        </div>
-        <div class='rdetail_extras_div'>
-            [%  exp_name = 'expand_' _ name;
-                IF ctx.$exp_name OR ctx.expand_all;
-                    IF name == 'marchtml';
-                        ctx.marchtml;
-                    ELSE;
-                        # Load the template for the selected extra
-                        INCLUDE "default/opac/parts/record/${name}.tt2";
-                    END;
-                END; 
-            %]
-        </div>
-        [% END %]
-    </div>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/record/issues.tt2 b/Open-ILS/src/templates/default/opac/parts/record/issues.tt2
deleted file mode 100644 (file)
index e13efb2..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<div class='rdetail_extras_div'>
-[%
-base_expando = ctx.full_path _ "?expand=issues";
-FOREACH type IN ctx.holding_summaries.keys;
-    NEXT UNLESS ctx.holding_summaries.$type.size;
-    expanded = CGI.param('expand_holding_type') == type; %]
-    <div class="rdetail-issue-type">
-        <a href="[% base_expando; expanded ? '' : '&amp;expand_holding_type=' _ type; %]#issues">[[% expanded ? '-' : '+' %]]</a>
-        [% ctx.holding_summaries.$type.join(", ") %]
-        [% IF expanded %]
-        <table>
-            [% FOR blob IN ctx.expanded_holdings %]
-            <tr>
-                <td class="rdetail-issue-issue">[% blob.issuance.label | html %]</td>
-                [% IF blob.has_units %]
-                <td class="rdetail-issue-place-hold">
-                    <a href="[% ctx.opac_root %]/place_hold?hold_target=[% blob.issuance.id %]&amp;hold_type=I">[% l("Place Hold") %]</a>
-                </td>
-                [% END %]
-            </tr>
-            [% END %]
-        </table>
-        [% END %]
-    </div>
-[% END %]
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/record/refworks.tt2 b/Open-ILS/src/templates/default/opac/parts/record/refworks.tt2
deleted file mode 100644 (file)
index 23af9a3..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-[%
-    # Default to aou.id = 1 in the absence of a specific library
-    loc = 1;
-    IF CGI.param('loc');
-        loc = CGI.param('loc');
-    END;
-
-    # Get the full name of the library
-    ou_name = ctx.get_aou(loc).name | uri;
-
-    # Generate the gross RefWorks URL, based on parameters from config.tt2
-    rw_uri = ctx.refworks.url _ 
-        '/express/expressimport.asp?vendor=' _
-        ou_name _
-        '&filter=MARC+Format&database=All+MARC+Formats&' _
-        'encoding=65001&url=http%3A%2F%2F' _
-        CGI.server_name _ 
-        '/opac/extras/supercat/marctxt/record/' _ 
-        ctx.bre_id;
-%]
-<div class="rdetail_refworks">
-    <a href="[% rw_uri %]">[% l('Export to RefWorks') %]</a>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/record/series.tt2 b/Open-ILS/src/templates/default/opac/parts/record/series.tt2
deleted file mode 100644 (file)
index edf99ba..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[% 
-    series_tags = ['440', '490', '800', '810', '811', '830', '694']; 
-    loc = CGI.param('loc');
-%]
-
-<div>
-    <table cellpadding="0" cellspacing="0" border="0">
-    [%  FOR tag IN series_tags; %]
-        <tr><td style='padding-top:5px;'>
-        [%  FOR node IN ctx.marc_xml.findnodes('//*[@tag="' _ tag _ '"]/*') %]
-            [% IF !loop.first %]<span>&mdash;</span> [% END %]
-            <a href="[% ctx.opac_root %]/results?qtype=series&amp;query=[% node.textContent | uri %]&amp;loc=[% loc %]">[% node.textContent | html %]</a>
-        [% END %]
-    [% END; %]
-    </table>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/record/subjects.tt2 b/Open-ILS/src/templates/default/opac/parts/record/subjects.tt2
deleted file mode 100644 (file)
index 25f6e2e..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-[% 
-    subjects = [
-        {
-            label => l('Subject: '),
-            xpath => '//*[@tag="600" or @tag="610" or @tag="611" or @tag="630" or @tag="650" or @tag="651"]'
-        }, {
-            label => l('Genre: '),
-            xpath => '//*[@tag="655"]|//*[@tag="659"]'
-        }, {
-            label => l('Topic Heading: '),
-            xpath => '//*[@tag="690"]'
-        }, {
-            label => l('Geographic Setting: '),
-            xpath => '//*[@tag="691"]'
-        }, {
-            label => l('Biographical Subject: '),
-            xpath => '//*[@tag="692"]'
-        }, {
-            label => l('Character Attributes: '),
-            xpath => '//*[@tag="693"]'
-        }, {
-            label => l('Setting: '),
-            xpath => '//*[@tag="698"]'
-        }, {
-            label => l('Time Period: '),
-            xpath => '//*[@tag="699"]'
-        }
-    ];
-
-    BLOCK render_subject;
-        loc = CGI.param('loc') | uri;
-        xpath = xpath || '//*[starts-with(@tag,"6")]';
-        FOR node IN ctx.marc_xml.findnodes(xpath);
-            all_terms = [];
-            FOR subfield IN node.childNodes;
-                NEXT UNLESS subfield.nodeName == "subfield";
-                code = subfield.getAttribute('code');
-                NEXT UNLESS code.match('[a-z]');
-                IF code.match('[vxyz]'); " &mdash; "; END;
-                # at this point, we actually have a partial term to use.
-                single_term = subfield.textContent | html;
-                all_terms.push(subfield.textContent);
-                total_term = all_terms.join(" ").replace('\s+$', '') | uri;
-                '<a href="' _ ctx.opac_root _ '/results?qtype=subject&amp;query=' _ total_term _ '&amp;loc=' _ loc _ '">' _ single_term _ '</a>';
-            END;
-            IF all_terms.size; "<br/>"; END;
-        END;
-    END 
-%]
-
-<div>
-    <table cellpadding="0" cellspacing="0" border="0">
-    [%  any_subjects = 0;
-        FOREACH subj IN subjects;
-            content = PROCESS render_subject(xpath=subj.xpath);
-            IF content.match('\S');
-                any_subjects = 1; %]
-            <tr>
-                <td width="1" style="padding:5px 7px 0px 0px;" valign="top">
-                    <strong>[% subj.label %]</strong>
-                </td>
-                <td style="padding-top:5px;"><div>[% content %] </div></td>
-            </tr>
-            [% END; %]
-        [% END; %]
-    [% IF any_subjects == 0 %]
-        <tr><td><i>[% l('No Subjects') %]</i></td></tr>
-    [% END; %]
-    </table>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/record/summary.tt2 b/Open-ILS/src/templates/default/opac/parts/record/summary.tt2
deleted file mode 100644 (file)
index 4a6d93f..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-[%  PROCESS "default/opac/parts/misc_util.tt2";
-    USE ResolverResolver;
-    ctx.page_title = attrs.title | html
-%]
-<!-- ****************** rdetail_summary.xml ***************************** -->
-<abbr class="unapi-id" title='tag:[% ctx.hostname %],[% date.format(date.now, '%Y') %]:biblio-record_entry/[% ctx.bre_id %]'></abbr>
-
-[%- IF ctx.refworks.enabled == 'true' %]
-    [% INCLUDE 'default/opac/parts/record/refworks.tt2' %]
-[%- END %]
-
-<!-- This holds the record summary information -->
-
-<table width="100%" border="0" cellpadding="0" cellspacing="0" id="rdetail_details_table">
-    <tbody>
-        <tr>
-            <td width="90" valign="top" id="rdetail_image_cell">
-                [% ident = attrs.isbn_clean || attrs.upc; IF ident; %]
-                <a href='[% ctx.media_prefix %]/opac/extras/ac/jacket/large/[% ident | uri %]'><img
-                    alt="[% l('Image of item') %]" id='rdetail_image'
-                    src='[% ctx.media_prefix %]/opac/extras/ac/jacket/[% record.summary.jacket_size %]/[% ident | uri %]' /></a>
-                [% END %]
-                <br />
-            </td>
-    
-            <td valign="top">
-                <table border="0" cellpadding="0" cellspacing="0" width="100%">
-                    <tr>
-                        <td valign="top">
-                            <span id='rdetail_title'>[% attrs.title_extended | html %]</span><br />
-                            [% IF attrs.author %]
-                            <span class='opac-auto-030'>[% l("Author") %]:</span>
-                            <em><a title='[% l("Perform an author search") %]'
-                                    href="[%- 
-                                        authorquery = attrs.author | replace('[,\.:;]', '');
-                                        mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, ['page'])
-                                        -%]">[% attrs.author | html %]</a></em>
-                            [% END %]
-                        </td>
-                        <td align="right" valign="top" nowrap="nowrap" style="white-space:nowrap;">
-                            <div style="width:280px;text-align:left;margin-top:3px;">
-                                <div style="float:right;">
-                                    <div class="rdetail_aux_utils opac-auto-010">
-                                        <a href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_target => ctx.bre_id, hold_type => 'T'}) %]" 
-                                            class="no-dec"><img src="[% ctx.media_prefix %]/images/green_check.png" alt="[% l('place hold') %]" /><span 
-                                                    style="position:relative;top:-3px;left:3px;">[% l('Place Hold') %]</span></a>
-                                    </div>
-                                    <div class="rdetail_aux_utils opac-auto-121">
-                                        [%  
-                                            operation = ctx.mylist.grep(ctx.bre_id).size ? "delete" : "add";
-                                            label = (operation == "add") ? l("Add to my list") : l("Remove from my list"); 
-                                        %]
-                                        <a href="[% ctx.opac_root %]/mylist/[% operation %]?record=[% ctx.bre_id %]" class="no-dec">
-                                            <img src="[% ctx.media_prefix %]/images/clipboard.png" alt="" />
-                                            [% label %]
-                                        </a>
-                                    </div>
-                                </div>
-                                <div style="float:right;margin-right:17px;">
-                                    [% IF attrs.format_icon %]
-                                    <img alt="[% attrs.format_label %]" title="[% attrs.format_label | html %]" src="[% attrs.format_icon %]" />
-                                    [% END %]
-                                </div>
-                            </div>
-                        </td>
-                    </tr>
-                </table>
-                <div class='opac-auto-018'>
-                    <table border="0" cellpadding="0" width="100%">
-                        <tr>
-                            <td nowrap='nowrap' valign="top">
-                                [% IF attrs.isbns.0 %]<strong>[% l("ISBN") %]</strong>[% END %]
-                            </td>
-                            <td valign="top">
-                                [% FOR isbn IN attrs.isbns %][% IF !loop.first; %]<br/>[% END; isbn | html ; END %]
-                            </td>
-                            <td nowrap='nowrap' valign="top">
-                                [% IF attrs.phys_desc %]<strong>[% l("Physical Description") %]</strong>[% END %]
-                            </td>
-                            <td valign="top">[% attrs.phys_desc | html %]</td>
-                        </tr>
-                        [%- IF openurl.enabled == 'true';
-                            FOR issn IN args.issns;
-                                sfx = ResolverResolver.resolve_issn(issn, openurl.baseurl);
-                                FOR res IN sfx;
-                        %]
-                            <tr name="results_issn_tr">
-                                <td valign="top">
-                                    <strong><a href="[% res.target_url %]">
-                                        [% res.public_name %]</a></strong>
-                                </td>
-                                <td>[% res.target_coverage %]</td>
-                            </tr>
-                                [% END %]
-                            [% END %]
-                        [% END %]
-                        <tr>
-                            <td nowrap='nowrap' valign="top">
-                                <strong>[% IF attrs.marc_cn; l("Call Number"); END %]</strong>
-                            </td>
-                            <td valign="top">[% attrs.marc_cn | html %]</td>
-                            <td nowrap='nowrap' valign="top">
-                                <strong>[% IF attrs.edition; l("Edition"); END %]</strong>
-                            </td>
-                            <td valign="top">[% attrs.edition | html %]</td>
-                        </tr>
-                        <tr>
-                            <td nowrap='nowrap' valign="top">
-                                <strong>[% IF attrs.publisher; l("Publisher"); END %]</strong>
-                            </td>
-                            <td valign="top" id='rdetail_publisher'>[% attrs.publisher | html %]</td>
-                            <td nowrap='nowrap' valign="top">
-                                <strong>[% IF attrs.pubdate; l("Publication Date"); END %]</strong>
-                            </td>
-                            <td valign="top">[% attrs.pubdate | html %]</td>
-                        </tr>
-                    </table>
-
-                    <!-- hold/copy summary -->
-                    <div style="padding-top:15px;">
-                        <div>
-                            [% l("[quant,_1,Hold,Holds] with [quant,_2,total copy,total copies]", 
-                                ctx.record_hold_count, ctx.copy_summary.0.count) %]
-                        </div>
-                        <div>[% l('[quant,_1,Copy,Copies] available', ctx.copy_summary.0.available) %]</div>
-                    </div>
-
-                </div>
-            </td>
-        </tr>
-    </tbody>
-</table>
-<br />
-
-[% FOR uri IN args.uris %]
-<div class="rdetail_uri">
-    <a href="[% uri.href %]">[% uri.link %]</a>[% ' - ' _ uri.note IF uri.note %]
-</div>
-[% END %]
-
-<br />
-
-<table cellpadding="0" cellspacing="0" border="0" width="100%" id="rdetails_status">
-    <thead>
-        <tr>
-            <td>[% l("Location") %]</td>
-            <td>[% l("Call Number") %]</td>
-            <td>[% l("Barcode") %]</td>
-            <td>[% l("Shelving Location") %]</td>
-            [% IF ctx.is_staff %]
-            <td>[% l("Age Hold Protection") %]</td>
-            <td>[% l("Create Date") %]</td>
-            <td>[% l("Holdable?") %]</td>
-            [% END %]
-            <td>[% l("Status") %]</td>
-            <td>[% l("Due Date") %]</td>
-        </tr>
-    </thead>
-    <tbody class="copy_details_table">
-        [% last_cn = 0;
-        FOR copy_info IN ctx.copies;
-            NEXT IF copy_info.call_number_label == '##URI##' %]
-        <tr>
-            <td>
-            [%-
-                org_name = ctx.get_aou(copy_info.circ_lib).name;
-                org_name | html
-            -%]
-            </td>
-            <td>[% copy_info.call_number_label | html %]</td>
-            <td>[% copy_info.barcode | html %]</td>
-            <td>[% copy_info.copy_location | html %]</td>
-            [% IF ctx.is_staff %]
-            <td>
-                [% copy_info.age_protect ?
-                    ctx.get_crahp(copy_info.age_protect).name : l('None') | html %]
-            </td>
-            <td>[% date.format(
-                ctx.parse_datetime(copy_info.create_date),
-                DATE_FORMAT
-            ) %]</td>
-            <td>[%  # 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"); %]
-                <a href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_target => copy_info.id, hold_type => 'C'}) %]">[% l("copy") %]</a>
-                [%      IF copy_info.call_number != last_cn;
-                            last_cn = copy_info.call_number;
-                            l(" / "); %]
-                <a href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_target => copy_info.call_number, hold_type => 'V'}) %]">[% l("volume") %]</a>
-                [%      END;
-                    ELSE;
-                        l("No");
-                    END %]</td>
-            [% END %]
-            <td>[% copy_info.copy_status | html %]</td>
-            <td>[%
-                IF copy_info.due_date;
-                    date.format(
-                        ctx.parse_datetime(copy_info.due_date),
-                        DATE_FORMAT
-                    );
-                ELSE;
-                    '-';
-                END %]</td>
-        </tr>
-        [% END %]
-        <tr>
-        [% IF ctx.copy_offset > 0;
-            new_offset = ctx.copy_offset - ctx.copy_limit;
-            IF new_offset < 0; new_offset = 0; END %]
-            <td>
-                <a href="[% mkurl('', {copy_offset => new_offset, copy_limit => ctx.copy_limit}) %]">&laquo; [%
-                    l('Previous [_1]', ctx.copy_offset - new_offset) %]</a>
-            </td>
-        [% END %]
-        [% IF ctx.copies.size >= ctx.copy_limit %]
-            <td>
-                <a href="[% mkurl('', {copy_offset => ctx.copy_offset + ctx.copy_limit, copy_limit => ctx.copy_limit}) %]">[%
-                    l('Next [_1]', ctx.copy_limit) %] &raquo;</a>
-            </td>
-        [% END %]
-        </tr>
-        <tr>
-            <td>
-                [% more_copies_limit = 50 %] [%# TODO: config %]
-                [% IF  ctx.copy_limit != more_copies_limit AND ctx.copies.size >= ctx.copy_limit %]
-                    <div style='margin-top:10px;'>
-                        <img src="[% ctx.media_prefix %]/images/plus_sign.png" />
-                        <a href="[% mkurl('', {copy_limit => more_copies_limit, copy_offset => 0}) %]">[% l('Show more copies') %]</a>
-                    </div>
-                [% ELSIF ctx.copy_limit == more_copies_limit %]
-                    <div style='margin-top:10px;'>
-                        <img src="[% ctx.media_prefix %]/images/minus_sign.png" />
-                        <a href="[% mkurl('', {copy_limit => 0, copy_offset => 0}) %]">[% l('Show fewer copies') %]</a>
-                    </div>
-                [% END %]
-            </td>
-        </tr>
-        <tr>
-            <td>
-                [% IF CGI.param('expand') == 'all' %]
-                    <img src="[% ctx.media_prefix %]/images/minus_sign.png" />
-                    <a href="[% mkurl('', {}, ['expand']) %]">[% l('Collapse all tabs') %]</a>
-                [% ELSE %]
-                    <img src="[% ctx.media_prefix %]/images/plus_sign.png" />
-                    <a href="[% mkurl('', {expand => 'all'}) %]">[% l('Expand all tabs') %]</a>
-                [% END %]
-            </td>
-        </tr>
-
-    </tbody>
-</table>
-
-<div id="rdetail_extras_expand" class="hide_me">
-    <a href="#"><img
-        src="[% ctx.media_prefix %]/images/plus_sign.png" /></a>
-    <a style="position:relative;top:-3px;" href="#">[% l('Expand all tabs') %]</a>
-</div>
-
-<div id="rdetail_extras_collapse" class="hide_me">
-    <a href="#"><img src="[% ctx.media_prefix %]/images/plus_sign.png" /></a>
-    <a style="position:relative;top:-3px;" href="#">[% l('Collapse all tabs') %]</a>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/record/summaryplus.tt2 b/Open-ILS/src/templates/default/opac/parts/record/summaryplus.tt2
deleted file mode 100644 (file)
index d397b48..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<div class='rdetail_extras_div'> 
-    [%  IF attrs.summary %]
-    <div class='rdetail-extras-summary'>
-        <strong>[% l('Summary: ') %]</strong>
-        [% FOR sum IN attrs.summary %]
-            [% IF !loop.first; '<br/>'; END %]
-            <span>[% sum | html %] </span>
-        [% END %]
-    </div>
-    [% END %]
-
-    <!-- Embedded content cafe iframe -->
-    [% ident = attrs.isbn_clean || attrs.upc %]
-    <iframe width="100%" height="400" frameborder="0" 
-        src="http[% CGI.https ? 's' : '' %]://contentcafe2.btol.com/ContentCafeClient/ContentCafe.aspx?UserID=[%- 
-            ENV.OILS_CONTENT_CAFE_USER %]&Password=[% ENV.OILS_CONTENT_CAFE_PASS %]&ItemKey=[% ident | uri %]&Options=Y" >
-    </iframe>
-</div>
-
diff --git a/Open-ILS/src/templates/default/opac/parts/result/lowhits.tt2 b/Open-ILS/src/templates/default/opac/parts/result/lowhits.tt2
deleted file mode 100644 (file)
index 4d29419..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<div id='result_low_hits'>
-    <div id="zero_search_hits">
-        <div>
-            <p>[% l('Sorry, no entries were found for') %]
-                [% IF is_advanced OR is_special; l('your search'); ELSE %]
-                <q>[% CGI.param('query') | html %]</q>
-                [% END %]
-                <br />
-                <span id="zero_hits_label1" class="hide_me">[% l('Did you mean') %]
-                    <strong><a id="spell_check_link" href="javascript:;"></a></strong>?</span>
-            </p>
-            <table cellpadding="0" cellspacing="0" border="0">
-                <tr>
-                    <td valign="top" style="padding-right:10px;">
-                        <span id="zero_hits_label2" class="hide_me">[% l('Other Possibilities:') %]</span>
-                    </td>
-                    <td id="zero_hits_suggestions"></td>
-                </tr>
-            </table>
-        </div>
-        <div style="float:right;width:353px;background:#ccc;padding:10px;margin-top:7px;">
-            [% INCLUDE "default/opac/parts/result/lowhits_purchase.tt2" %]
-            <p>
-                <strong>Keyword Search Tips</strong><br />
-                Try changing to <strong>Advanced Search</strong>.
-            </p>
-            <p>
-                <strong>Adjacency</strong><br />
-                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.<br />
-                (example:  <strong>&quot;garcia marquez&quot;</strong>)
-            </p>
-            <p>
-                <strong>Truncation</strong><br />
-                Words may be right-hand truncated using an asterisk. Use a single asterisk *
-                to truncate any number of characters.<br />
-                (example: <strong>environment* agency</strong>)
-            </p>
-            <p>
-                <strong>Anchored Searching</strong><br />
-                You may use ^ and $ to indicate "phrase begins with" and
-                "phrase ends with," respectively, within a search phrase
-                enclosed in quotation marks.<br />
-                (examples: <strong>"^harry"</strong> for phrases that begin with
-                the term <em>harry</em>.
-                <strong>"stone$"</strong> for phrases that end in <em>stone</em>.)
-            </p>
-        </div>
-    </div>
-    <div class="hide_me">
-        <div style='text-align: center; padding-bottom: 8px;' class="hide_me">
-            <div id='result_low_hits_msg' class='hide_me'>[% l("Few hits were returned for your search.") %]</div>
-            <div id='result_zero_hits_msg' class='hide_me'>[% l("Zero hits were returned for your search.") %]</div>
-        </div>
-
-        <!-- spell checker -->
-        <div id='did_you_mean' class='lowhits_div hide_me'>
-            <span>[% l("Maybe you meant:") %] </span>
-            <!-- <a class='classic_link' id='spell_check_link'> </a> -->
-        </div>
-
-        <div id='low_hits_remove_format' class='lowhits_div hide_me'>
-            <span>[% l("You will find more hits when searching all item formats:") %] </span>
-            <a id='low_hits_remove_format_link' class='classic_link'>[% l("Search again with all formats?") %]</a>
-        </div>
-
-        <div id='low_hits_cross_ref' class='lowhits_div hide_me'>
-            <span>[% l("You may also like to try these related searches:") %]</span>
-            <div style='padding: 5px;'>
-                <a id='low_hits_xref_link' class='classic_link' style='padding-right: 5px;'> </a>
-            </div>
-        </div>
-
-        <div id='low_hits_expand_range' class='lowhits_div hide_me'>
-            <span>[% l("You may also wish to expand your search range to:") %] </span>
-            <a id='low_hits_expand_link' class='classic_link' style='padding-right: 5px;'> </a>
-        </div>
-
-        <div id='low_hits_search_type' class='lowhits_div hide_me'>
-            <span>[% l("You can try searching the same terms by:") %]</span>
-            <a id='low_hits_title_search' class='hide_me classic_link' 
-                style='padding-right: 5px;'>[% l("title") %]</a>
-            <a id='low_hits_author_search' class='hide_me classic_link' 
-                style='padding-right: 5px;'>[% l("author") %]</a>
-            <a id='low_hits_subject_search' class='hide_me classic_link' 
-                style='padding-right: 5px;'>[% l("subject") %]</a>
-            <a id='low_hits_series_search' class='hide_me classic_link' 
-                    style='padding-right: 5px;'>[% l("series") %]</a>
-            <a id='low_hits_keyword_search' class='hide_me classic_link' 
-                style='padding-right: 5px;'>[% l("keyword") %]</a>
-        </div>
-    </div>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/result/lowhits_purchase.tt2 b/Open-ILS/src/templates/default/opac/parts/result/lowhits_purchase.tt2
deleted file mode 100644 (file)
index ff34338..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-[%# XXX Is this block generally desired? <p>
-    <strong>Still not finding what you are looking for?</strong><br />
-    Request that your library purchase the material you are looking for by making a
-    <a href="javascript:;">Purchase Request</a><br />
-    <strong>Note:</strong> You must be logged in to make a Purchase Request<br />
-</p> %]
diff --git a/Open-ILS/src/templates/default/opac/parts/result/paginate.tt2 b/Open-ILS/src/templates/default/opac/parts/result/paginate.tt2
deleted file mode 100644 (file)
index 6582c01..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-[% BLOCK results_count_header %]
-<div class="results_header_nav1">
-    <table cellpadding="0" cellspacing="0" border="0" width="100%">
-        <tr>
-            <td class="h1" width="116">[% l('Search Results') %]</td>
-            <td valign="bottom" nowrap="nowrap" class="result_number">
-                [% |l(ctx.result_start, ctx.result_stop, ctx.hit_count) %]
-                Results <strong>[_1]</strong> - <strong>[_2]</strong> of <strong>[_3]</strong>
-                [% END %]
-                <span style='padding-left: 6px;'>
-                    [% |l(page + 1, page_count) %](page <strong>[_1]</strong> of <strong>[_2]</strong>)[% END %]
-                </span>
-            </td>
-            <td align="right" valign="bottom">
-                <span class='start_end_links_span'>
-
-                    [%  class = 'search_page_nav_link';
-                        href = '#';
-                        IF page > 0;
-                            href = mkurl('', {page => page - 1});
-                        ELSE; class = class _ ' invisible'; END;
-                    %]
-                    <a class='[% class %]' href='[% href %]' 
-                        title='[% l("Previous page") %]'><span class="nav_arrow_fix">&#9668;</span> [% l('Previous') %] </a>
-
-                    <span style='padding-left: 11px; padding-right:11px;'>
-                        [%  # show links to 4 previous pages, the current page, and 3 more pages.
-                            added = 0;
-                            pageitr = page - 5; 
-                            IF page_count > 1; # no need to paginate 1 page
-                                WHILE (pageitr = pageitr + 1) < page_count;
-                                    IF pageitr < 0; NEXT; END;
-                                    IF pageitr == page; %]
-                                        <span class='results-paginator-selected'>[% pageitr + 1%]</span>
-                                    [% ELSE %]
-                                        <a href="[% mkurl('', {page => pageitr}) %]">[% pageitr + 1%]</a>
-                                [%  END;
-                                    added = added + 1;
-                                    IF added == 8; LAST; END;
-                                END;
-                            END;
-                        %]
-                    </span>
-
-                    [%  class = 'search_page_nav_link';
-                        href = '#';
-                        IF (page + 1) < page_count;
-                            href = mkurl('', {page => page + 1});
-                        ELSE; class = class _ ' invisible'; END;
-                    %]
-                    <a class='[% class %]' href='[% href %]' 
-                        title='[% l("Next page") %]'> [% l('Next') %] <span class="nav_arrow_fix">&#9658;</span></a>
-                </span>
-            </td>
-        </tr>
-    </table>
-</div>
-[% END %]
-
diff --git a/Open-ILS/src/templates/default/opac/parts/result/table.tt2 b/Open-ILS/src/templates/default/opac/parts/result/table.tt2
deleted file mode 100644 (file)
index 75751ff..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-[%  PROCESS "default/opac/parts/misc_util.tt2";
-
-    USE ResolverResolver;
-
-    ctx.result_start = 1 + ctx.page_size * page;
-    ctx.result_stop = ctx.page_size * (page + 1);
-    IF ctx.result_stop > ctx.hit_count; ctx.result_stop = ctx.hit_count; END;
-
-    result_count = ctx.result_start;
-%]
-
-<div style="height: 10px;"></div>
-
-[% PROCESS "default/opac/parts/result/paginate.tt2" %] 
-[% ctx.results_count_header = PROCESS results_count_header;
-    ctx.results_count_header %]
-
-<div id="result_table_div">
-    <table cellpadding="0" cellspacing="0" border="0" width="100%">
-        <tr>
-            <td valign="top" width="1" style="padding-right:20px;">
-                <div style="width:174px;" class="hide_me" id="tehSideBar">SIDEBAR TODO
-                </div>
-            </td>
-            <td class='opac-auto-015' width="1"></td>
-            <td valign="top">
-                <table id="res_table" cellpadding="0" cellspacing="0"
-                    border="0" width="100%" style="margin-top:10px;">
-                    <tbody id="result_table">
-                    [%  FOR rec IN ctx.records;
-                            attrs = {marc_xml => rec.marc_xml};
-                            PROCESS get_marc_attrs args=attrs %]
-                        <tr>
-                            <td class='result_table_row' align='left' width='100%'>
-                                <table cellpadding="0" cellspacing="0" class='result_table_subtable'>
-                                    <tbody class='result_table_subtbody'>
-                                        <tr name='counts_row'>
-                                            <td width="58" valign="top"
-                                                style="font-weight:bold;padding-left:10px;"
-                                                name="results_row_count">[%
-                                                    result_count; result_count = result_count + 1
-                                                %].</td>
-                                            <td class='result_table_pic_header' align='center'
-                                                width="78" nowrap="nowrap" valign="top">
-                                                [% ident = attrs.isbn_clean || attrs.upc; IF ident; %]
-                                                <a href="[% mkurl(ctx.opac_root _ '/record/' _ rec.id) %]"><img alt="[% l('Image of item') %]"
-                                                        name='item_jacket' class='result_table_pic' width="55"
-                                                        src='[% ctx.media_prefix %]/opac/extras/ac/jacket/small/[% ident | uri %]' /></a><br />
-                                                [% END %]
-                                            </td>
-                                            <td class='result_table_title_cell'
-                                                name='result_table_title_cell'
-                                                valign="top">
-                                                <div class="bold">
-                                                    <a title="[% attrs.title | uri %]" name='item_title'
-                                                        href="[% mkurl(ctx.opac_root _ '/record/' _ rec.id) %]"
-                                                        class='search_link'>[% attrs.title | html %]</a>
-                                                </div>
-                                                <div style="font-size:11px;">
-                                                    <div>
-                                                        <em><a title="[% l("Perform an Author Search") %]"
-                                                                name='item_author'
-                                                                href="[%- 
-                                                                    authorquery = attrs.author | replace('[,\.:;]', '');
-                                                                    mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, ['page'])
-                                                                    -%]">[% attrs.author | html %]</a></em>
-                                                        &nbsp;&nbsp;
-                                                        [% attrs.pubdate | html %]
-                                                    </div>
-                                                    <table cellpadding="0" cellspacing="0" border="0"
-                                                        class="results_info_table">
-                                                        [% IF args.holdings.size > 0 %]
-                                                        <tr name='bib_cn_list' class='result_table_title_cell'>
-                                                            <td valign='top'>
-                                                                <strong>[% l('Call number:') %]</strong>
-                                                            </td>
-                                                            <td>[% args.holdings.0.label | html %]</td>
-                                                        </tr>
-                                                        [% END %]
-
-                                                        [% IF CGI.param('detail_record_view') %]
-                                                        <!-- These fields are visible when viewing the results page in 'detailed' mode -->
-
-                                                        [% IF attrs.publisher %]
-                                                            <tr name="results_pub_tr">
-                                                                <td valign="top">
-                                                                    <strong>[% l('Publisher:') %]</strong>
-                                                                </td>
-                                                                <td>[% attrs.publisher | html %]</td>
-                                                            </tr>
-                                                        [% END %]
-                                                        [% IF attrs.isbns.size > 0 %]
-                                                            <tr name="results_isbn_tr">
-                                                                <td valign="top">
-                                                                    <strong>[% l('ISBN:') %]</strong>
-                                                                </td>
-                                                                <td>[% attrs.isbns.0 | html %]</td>
-                                                            </tr>
-                                                        [% END %]
-                                                        [%- IF openurl.enabled == 'true';
-                                                            FOR issn IN args.issns;
-                                                                sfx = ResolverResolver.resolve_issn(issn, openurl.baseurl);
-                                                                FOR res IN sfx;
-                                                        %]
-                                                        <tr name="results_issn_tr">
-                                                            <td valign="top">
-                                                                <strong><a href="[% res.target_url %]">
-                                                                [% res.public_name | html %]</a></strong>
-                                                            </td>
-                                                            <td>[% res.target_coverage | html %]</td>
-                                                        </tr>
-                                                                [% END %]
-                                                            [% END %]
-                                                        [% END %]
-
-                                                        [% IF attrs.edition %]
-                                                            <tr name="results_edition_tr">
-                                                                <td valign="top">
-                                                                    <strong>[% l('Edition:') %]</strong>
-                                                                </td>
-                                                                <td>[% attrs.edition | html %]</td>
-                                                            </tr>
-                                                        [% END %]
-                                                        [% IF attrs.phys_desc %]
-                                                            <tr name="results_phys_desc_tr">
-                                                                <td nowrap="nowrap" valign="top">
-                                                                    <strong>[% l('Phys. Desc.:') %]</strong>
-                                                                </td>
-                                                                <td>
-                                                                    [% args.phys_desc | html %]
-                                                                </td>
-                                                            </tr>
-                                                        [% END %]
-                                                        [% FOR uri IN args.uris %]
-                                                            <tr name='bib_uri_list' class='result_table_title_cell'>
-                                                                <td valign='top'>
-                                                                    <strong>[% l('Electronic resource') %]</strong>
-                                                                </td>
-                                                                <td><a href="[% uri.href %]">[% uri.link | html %]</a>[% ' - ' _ uri.note | html IF uri.note %]</td>
-                                                            </tr>
-                                                            [% END %]
-                                                            [% IF args.holdings.size > 0 %]
-                                                            <tr name='bib_cn_list' class='result_table_title_cell'>
-                                                                <td colspan='2'>
-                                                                    <table class='result_holdings_table'>
-                                                                        <thead><tr>
-                                                                            <th>[% l('Library') %]</th>
-                                                                            <th>[% l('Shelving location') %]</th>
-                                                                            <th>[% l('Call number') %]</th>
-                                                                            <th>[% l('Status') %]</th>
-                                                                        </tr></thead>
-                                                                        <tbody>
-                                                                [% FOR copy IN args.holdings %]
-                                                                        <tr>
-                                                                            <td>[% copy.library | html %]</td>
-                                                                            <td>[% copy.location | html %]</td>
-                                                                            <td>[% copy.label | html %]</td>
-                                                                            <td>[% copy.status | html %]</td>
-                                                                        </tr>
-                                                                [% END %]
-                                                                        </tbody>
-                                                                    </table>
-                                                                </td>
-                                                            </tr>
-                                                        [% END %]
-                                                        [% END %] <!-- END detail_record_view -->
-                                                    </table>
-                                                    <div>
-                                                        [% l('[_1] of [quant,_2,copy,copies] available',
-                                                            attrs.copy_counts.available, attrs.copy_counts.count) # XXX s/count/nshadow/ ?
-                                                            #rec.copy_counts.available, rec.copy_counts.visible) 
-                                                        %]
-                                                    </div>
-                                                </div>
-                                                <div class="hide_me">
-                                                    <span name='result_table_extra_span' class='hide_me'>
-                                                        <span name='result_table_pub_box'
-                                                            style='padding-left: 10px;'>
-                                                            <span name='result_table_edition_span'
-                                                                style='padding-left: 10px;'></span> |
-                                                            <span name='result_table_pub_span'> </span> |
-                                                            <span name='result_table_phys_span'> </span>
-                                                        </span>
-                                                    </span>
-                                                </div>
-                                            </td>
-
-                                            <td name='result_table_format_cell' class='result_table_format_cell' width="1">
-
-                                                [% IF attrs.format_icon %]
-                                                <img title="[% attrs.format_label | html %]" alt="[% attrs.format_label | html %]" src="[% attrs.format_icon %]" />
-                                                [% END %]
-
-                                                <!-- unAPI link -->
-                                                <abbr class="unapi-id" title='tag:[% ctx.hostname %],[% date.format(date.now, '%Y') %]:biblio-record_entry/[% rec.id %]'></abbr>
-
-                                                <!-- Empty span used for creating Google Book Search-->
-                                                <span name="googleBooksLink" class="hide_me">
-                                                    <a style='padding-left: 8px;'
-                                                        class='classic_link hide_me'
-                                                        name="googleBooks-link">[% l("Browse in Google Books Search") %]</a>
-                                                </span>
-
-                                            </td>
-                                            <td nowrap='nowrap' width="1" align="right">
-                                                <div style="width:250px;text-align:left;">
-                                                    <div style="float:right;">
-                                                        <div class="results_aux_utils opac-auto-010"><a
-                                                                href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_target => rec.id, hold_type => 'T'}) %]" 
-                                                                    name="place_hold_link" class="no-dec"><img
-                                                                src="[% ctx.media_prefix %]/images/green_check.png"
-                                                                alt=""/><span style="position:relative;top:-3px;left:3px;">[% l('Place Hold') %]</span></a>
-                                                        </div>
-                                                        <div class="results_aux_utils opac-auto-011">
-                                                            [%  
-                                                                operation = ctx.mylist.grep(rec.id).size ? "delete" : "add";
-                                                                label = (operation == "add") ? l("Add to my list") : l("Remove from my list");
-                                                            %]      
-                                                            <a href="[% mkurl(ctx.opac_root _ '/mylist/' _ operation, {record => rec.id}, 1) %]" class="no-dec">
-                                                                <img src="[% ctx.media_prefix %]/images/clipboard.png" alt="" />
-                                                                [% label %]
-                                                            </a>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td/>
-                                            <td align='center'> <!-- Chilifresh reviews link --> 
-                                                <div class="chili_review" id="isbn_[% attrs.isbn_clean | html %]"> </div>
-                                            </td>
-                                        </tr>
-                                        <tr>
-                                            <td/>
-                                            <td colspan='5'> <!-- Chilifresh reviews panel -->
-                                                <div id="chili_review_[% attrs.isbn_clean | html %]" style="display: none;" align="center" width="100%"></div>
-                                            </td>
-                                        </tr>
-                                        <tr><td colspan="5"><div style="height:0px;border-top:1px solid #b7b7b7;border-bottom:1px solid #d4d4d4;margin:15px 0px;"></div></td></tr>
-                                    </tbody>
-                                </table>
-                            </td>
-                        </tr>
-                    [% END %]
-                    </tbody>
-                </table>
-            </td>
-        </tr>
-    </table>
-</div>
-<div>
-    [% ctx.results_count_header %]
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/searchbar.tt2 b/Open-ILS/src/templates/default/opac/parts/searchbar.tt2
deleted file mode 100644 (file)
index c39fd57..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-[% PROCESS "default/opac/parts/org_selector.tt2" %]
-<div id="search-box">    
-    [% UNLESS took_care_of_form -%]
-    <form action="[% ctx.opac_root %]/results" method="GET">
-    [%- END %]
-    <table cellpadding="0" cellspacing="10" border="0">
-        <tr>
-            <td colspan="3">
-                <span class="search_catalog_lbl">[% l('Search the Catalog') %]</span>
-                <a href="[% ctx.opac_root %]/advanced"
-                    id="home_adv_search_link"><span
-                    class="adv_search_font">[% l('Advanced Search') %]</span></a>
-            </td>
-        </tr>
-        <tr>
-            [% IF is_advanced || is_special %]
-            <td colspan="2">
-                <input type="hidden" name="_adv" value="1" />
-            [% ELSE %]
-            <td>
-            [% INCLUDE "default/opac/parts/qtype_selector.tt2" %]
-            </td>
-            [% END %]
-            [% IF ctx.processed_search_query OR (NOT is_advanced AND NOT is_special) %]
-            <td>
-                <div id="search_box_wrapper">
-                    <!-- Note: when common browsers support HTML5 placeholder text, we can remove the JS -->
-                    <input type="text" id="search_box" name="query" value="[% is_advanced ? ctx.processed_search_query : CGI.param('query') || l("Search Keyword") | html %]"
-                        [% IF is_advanced %]style="width: 450px"[% END %]
-                        onfocus="if (this.value=='[% l("Search Keyword") %]'){this.value='';this.style.color='#000';}"
-                        onblur="if (this.value==''){this.value='[% l("Search Keyword") %]';this.style.color='#999';}"
-                        x-webkit-speech />
-                </div>
-                <input name='page' type='hidden' value="0" />
-            </td>
-            <td valign="top">
-                <div class="pos-abs">
-                    <div class="opac-auto-143">
-                        <input id='search-submit-go' type="image" alt="[% l('Search') %]" src="[% ctx.media_prefix %]/images/go-btn.png"
-                            onmouseover="this.src='[% ctx.media_prefix %]/images/go-btn-hover.png';"
-                            onmouseout="this.src='[% ctx.media_prefix %]/images/go-btn.png';" 
-                            onclick='setTimeout(function(){$("search-submit-spinner").className=""; $("search-submit-go").className="hidden"}, 2000)'/>
-                        <img id='search-submit-spinner' src='/opac/images/progressbar_green.gif' style='height:16px;width:16px;' class='hidden' alt=''/>
-                    </div>
-                </div>
-            </td>
-            [% END %]
-        </tr>
-        [% UNLESS is_advanced OR is_special %]
-        <tr>
-            <td>
-                [% INCLUDE "default/opac/parts/coded_value_selector.tt2" attr=["mattype", "item_type"] none_ok=1 none_label=l('All Formats') %]
-            </td>
-            <td>
-                <span id='depth_selector_span'>
-                    [% PROCESS build_org_selector name='loc' value=CGI.param('loc') %]
-                </span>
-                <span id='lib_selector_span'>
-                    <a id='lib_selector_link' class='classic_link'
-                        href='#'>[% l("Choose a library to search") %]</a>
-                </span>
-            </td>
-        </tr>
-        [% END %]
-    </table>
-    [% UNLESS took_care_of_form %]</form>[% END %]
-    [% IF (is_advanced AND NOT is_special) AND CGI.param('qtype') %]
-    <div class="opac-auto-102">
-        [ <a href="[% mkurl(ctx.opac_root _ '/advanced') %]">[%
-            l('Click to Refine Your Original Search')
-        %]</a> ]
-    </div>
-    [% END %]
-    <div id="breadcrumb">
-        <a href="[% ctx.opac_root %]/home">[% l('Catalog Home') %]</a> &gt;
-    </div>
-    <div class="clear-both"></div>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/tips.tt2 b/Open-ILS/src/templates/default/opac/parts/tips.tt2
deleted file mode 100644 (file)
index f4e73ed..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- ****************** tips.xml ***************************** -->
-<div class="hide_me">
-    <div id='tips' class='tips hide_me'>
-        <div class='hide_me'>
-            <span>[% l("Click on a folder icon in the sidebar to access related quick searches") %]</span>
-            <span>[% l("If you don't find what you want try expanding your search using the range selector at the right of the search bar") %]</span>
-        </div>
-        <strong>[% l("Tip:") %]</strong>
-    </div>
-</div>
-<!-- ****************** end: tips.xml ***************************** -->
diff --git a/Open-ILS/src/templates/default/opac/parts/topnav.tt2 b/Open-ILS/src/templates/default/opac/parts/topnav.tt2
deleted file mode 100644 (file)
index 5aaa7b8..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-[% IF !ctx.is_staff %]
-<div id="header">
-    <div class="float-left">
-        [% INCLUDE "default/opac/parts/topnav_logo.tt2" %]
-    </div>
-    <div class="float-right">
-        [% IF !ctx.user %]
-        <div id="your-acct-login">
-            <a href="[% ctx.opac_root %]/myopac/main" id="home_myopac_link"><img
-                alt="[% l('Your Account Log in') %]"
-                src="[% ctx.media_prefix %]/images/login-btn.png"
-                onmouseover="this.src='[% ctx.media_prefix %]/images/login-btn-hover.png';"
-                onmouseout="this.src='[% ctx.media_prefix %]/images/login-btn.png';" /></a>
-        </div>
-        [% ELSE %]
-        <div id="dash_wrapper">
-            <div class="float-right">
-                <table cellpadding="0" cellspacing="0" border="0">
-                    <tr>
-                        <td>
-                            <img src="[% ctx.media_prefix %]/images/dash-corner-left1.png" />
-                        </td>
-                        <td id="dash_corner_mid1a">
-                            <span id="dash_user">
-                                [%  l('[_1] [_2]', ctx.user.first_given_name, ctx.user.family_name) | html %]
-                            </span>
-                        </td>
-                        <td id="dash_corner_mid1b">
-                            <img src="[% ctx.media_prefix %]/images/dash-divider.jpg" />
-                        </td>
-                        <td id="dash_corner_mid1c">
-
-                            <a href="[% ctx.opac_root %]/myopac/main" class="pos-rel-top4"><img
-                                alt="[% l('My Account') %]"
-                                src="[% ctx.media_prefix %]/images/acct-btn.png"
-                                onmouseover="this.src='[% ctx.media_prefix %]/images/acct-btn-hover.png';"
-                                onmouseout="this.src='[% ctx.media_prefix %]/images/acct-btn.png';" /></a>
-
-                            <a href="[% ctx.opac_root %]/logout" class="pos-rel-top4"
-                                id="logout_link"><img
-                                alt="[% l('Logout') %]"
-                                src="[% ctx.media_prefix %]/images/logout-btn.png"
-                                onmouseover="this.src='[% ctx.media_prefix %]/images/logout-btn-hover.png';"
-                                onmouseout="this.src='[% ctx.media_prefix %]/images/logout-btn.png';" /></a>
-                        </td>
-                        <td>
-                            <img src="[% ctx.media_prefix %]/images/dash-corner-right1.png" />
-                        </td>
-                    </tr>
-                </table>
-            </div>
-            <div id="dashboard">
-                <div class="pos-abs">
-                    <div class="pos-rel-top4">
-                        <table cellpadding="0" cellspacing="0" border="0">
-                            <tr>
-                                <td>
-                                    <img src="[% ctx.media_prefix %]/images/dash-corner-left2.png" />
-                                </td>
-                                <td id="dash_corner_mid2a">
-                                    <div id="dash_number_row">
-                                        <div class="pos-abs">
-                                            <div class="dash-pos-out">
-                                                <div class="dash-align-out">
-                                                    <a class="dash-link" href="[% ctx.opac_root %]/myopac/circs"><span id="dash_checked">[% ctx.user_stats.checkouts.total_out %]</span> [% l("Checked Out") %]</a>
-                                                </div>
-                                            </div>
-                                        </div>
-                                        <div class="pos-abs">
-                                            <div class="dash-pos-holds">
-                                                <div class="dash-align-holds">
-                                                    <a class="dash-link" href="[% ctx.opac_root %]/myopac/holds"><span id="dash_holds">[% ctx.user_stats.holds.total %]</span> [% l("On Hold") %]</a>
-                                                </div>
-                                            </div>
-                                        </div>
-                                        <div class="pos-abs">
-                                            <div class="dash-pos-pickup">
-                                                <div class="dash-align-pickup">
-                                                    <a class="dash-link" href="[% ctx.opac_root %]/myopac/holds?available=1"><span id="dash_pickup">[% ctx.user_stats.holds.ready %]</span> [% l("Ready for Pickup") %]</a>
-                                                </div>
-                                            </div>
-                                        </div>
-                                        <div class="pos-abs">
-                                            <div class="dash-pos-fines">
-                                                <div class="dash-align-fines">
-                                                    <a class="dash-link" href="[% ctx.opac_root %]/myopac/main"><span id="dash_fines">[% money(ctx.user_stats.fines.balance_owed) %]</span> [% l("Fines") %]</a>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </td>
-                                <td>
-                                    <img src="[% ctx.media_prefix %]/images/dash-corner-right2.png" />
-                                </td>
-                            </tr>
-                        </table>
-                    </div>
-                </div>
-            </div>
-        </div>
-        [% END %]
-    </div>
-    <div class="common-no-pad"></div>
-</div>
-[% END %]
-[% INCLUDE "default/opac/parts/topnav_links.tt2" %]
diff --git a/Open-ILS/src/templates/default/opac/parts/topnav_links.tt2 b/Open-ILS/src/templates/default/opac/parts/topnav_links.tt2
deleted file mode 100644 (file)
index e6f4169..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<div id="gold-links-holder">
-    <div id="gold-links">
-        <div id="header-links">
-            <a href="http://example.com">[% l('Link 1') %]</a>
-            <a href="http://example.com">[% l('Link 2') %]</a>
-            <a href="http://example.com">[% l('Link 3') %]</a>
-            <a href="http://example.com">[% l('Link 4') %]</a>
-            <a href="http://example.com">[% l('Link 5') %]</a>
-        </div>
-    </div>
-</div>
diff --git a/Open-ILS/src/templates/default/opac/parts/topnav_logo.tt2 b/Open-ILS/src/templates/default/opac/parts/topnav_logo.tt2
deleted file mode 100644 (file)
index 7e479f9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-        <a href="http://evergreen-ils.org"><img alt="[% l('Evergreen Logo') %]" 
-            src="[% ctx.media_prefix %]/opac/images/small_logo.jpg" /></a>
diff --git a/Open-ILS/src/templates/default/opac/place_hold.tt2 b/Open-ILS/src/templates/default/opac/place_hold.tt2
deleted file mode 100644 (file)
index 0badd80..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    WRAPPER "default/opac/parts/base.tt2";
-    INCLUDE "default/opac/parts/topnav.tt2";
-    ctx.page_title = l("Place Hold") %]
-    <div id="search-wrapper">
-        [% INCLUDE "default/opac/parts/printnav.tt2" %]
-        [% INCLUDE "default/opac/parts/searchbar.tt2" %]
-    </div>
-    <div id="content-wrapper">
-        <div id="main-content">
-            <div class="common-full-pad"></div>        
-            [% IF ctx.hold_attempt_made %]
-                [% INCLUDE "default/opac/parts/place_hold_result.tt2" %]
-            [% ELSE %]
-                [% INCLUDE "default/opac/parts/place_hold.tt2" %]
-            [% END %]
-            <div class="common-full-pad"></div>        
-        </div>
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/record.tt2 b/Open-ILS/src/templates/default/opac/record.tt2
deleted file mode 100644 (file)
index bc5275c..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    PROCESS "default/opac/parts/config.tt2";
-    WRAPPER "default/opac/parts/base.tt2";
-    INCLUDE "default/opac/parts/topnav.tt2";
-    ctx.page_title = l("Record Detail") %]
-    <div id="search-wrapper">
-        [% INCLUDE "default/opac/parts/printnav.tt2" %]
-        [% INCLUDE "default/opac/parts/searchbar.tt2" %]
-    </div>
-    <div id="content-wrapper" class="content-wrapper-record-page">
-        <div id="main-content">
-            [% INCLUDE "default/opac/parts/record/body.tt2" %]
-            <div class="common-full-pad"></div>        
-        </div>
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/opac/results.tt2 b/Open-ILS/src/templates/default/opac/results.tt2
deleted file mode 100644 (file)
index bfe9633..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-[%  PROCESS "default/opac/parts/header.tt2";
-    USE POSIX;
-
-    WRAPPER "default/opac/parts/base.tt2";
-    INCLUDE "default/opac/parts/topnav.tt2";
-
-    IF is_advanced || is_special;
-        ctx.page_title = l("Search Results");
-    ELSE;
-        ctx.page_title = l("Search Results: ") _ CGI.param('query') | html;
-    END;
-
-    page = CGI.param('page');
-    page = page.match('^\d+$') ? page : 0; # verify page is a sane value
-
-    page_count = ctx.page_size == 0 ? 1 : POSIX.ceil(ctx.hit_count / ctx.page_size);
-%]
-    <form action="[% ctx.opac_root %]/results" method="GET">
-    <div id="search-wrapper">
-        [% INCLUDE "default/opac/parts/printnav.tt2" %]
-        [% INCLUDE "default/opac/parts/searchbar.tt2" took_care_of_form=1 %]
-    </div>
-    <div class="almost-content-wrapper">
-        <div id="results_header_bar">
-            <div id="results_header_inner">
-                <div class="results_header_btns">
-                    <a href="[% ctx.opac_root %]/home"><img alt="[% l('Another Search') %]"
-                        src="[% ctx.media_prefix %]/images/another_search.png"
-                        onmouseover="this.src='[% ctx.media_prefix %]/images/another_search_hover.png';"
-                        onmouseout="this.src='[% ctx.media_prefix %]/images/another_search.png';" /></a>
-                </div>
-                <div class="results_header_btns">
-                    <a href="[% ctx.opac_root %]/advanced"><img alt="[% l('Advanced Search') %]"
-                        src="[% ctx.media_prefix %]/images/adv_search.png"
-                        onmouseover="this.src='[% ctx.media_prefix %]/images/adv_search_hover.png';"
-                        onmouseout="this.src='[% ctx.media_prefix %]/images/adv_search.png';" /></a>
-                </div>
-                [% IF ctx.mylist.size %]
-                <div class="results_header_btns cached_list_div">
-                    <a href="[% ctx.opac_root; ctx.user ? '/myopac/lists' : '/mylist' %]"><img
-                        alt="[% l('View My List') %]"
-                        src="[% ctx.media_prefix %]/images/view_my_list.png"
-                        onmouseover="this.src='[% ctx.media_prefix %]/images/view_my_list_hover.png';"
-                        onmouseout="this.src='[% ctx.media_prefix %]/images/view_my_list.png';" /></a>
-                </div>
-                [% END %]
-                <div class="results_header_div"></div>
-                    <div class="results_header_lbl">[% l('Sort by') %]</div>
-                    [% INCLUDE "default/opac/parts/filtersort.tt2" value=CGI.param('sort') %]
-                    <div class="results_header_div"></div>
-
-                    <div class='results_header_sel' id='simple-detail-view-links'>
-                        [% IF CGI.param('detail_record_view') %]
-                        <a href="[% mkurl('', {detail_record_view => ''}) %]">[% l('Simple View') %]</a>
-                        [% ELSE %]
-                        <a href="[% mkurl('', {detail_record_view => 1}) %]">[% l('Detailed View') %]</a>
-                        [% END %]
-                    </div>
-                    <div class="results_header_div"></div>
-
-                    <input type="checkbox" id="limit_to_available" name="modifier" value="available"
-                        onchange="avail_change_adv_search(this)"
-                        [% CGI.param('modifier').grep('available').size ? ' checked="checked"' : '' %] />
-
-                    <label for="limit_to_available" class="results_header_lbl">
-                        [% l('Limit to available items') %]
-                    </label>
-                <div class="clear-both"></div>
-            </div>
-        </div>
-    </div>
-    </form>
-    <div id="content-wrapper">
-        <div id="main-content">
-            <div id="tehResultsPage">
-                [% path = "default/opac/parts/result/" _
-                    (ctx.records.size ? "table.tt2" : "lowhits.tt2");
-                INCLUDE $path %]
-            </div>
-            <div class="common-full-pad"></div>    
-        </div>
-    </div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/serial/list_item.tt2 b/Open-ILS/src/templates/default/serial/list_item.tt2
deleted file mode 100644 (file)
index e182c03..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Items" %]
-[% BLOCK status_values %]
-                <option value="Expected">Expected</option>
-                <option value="Bindery">Bindery</option>
-                <option value="Bound">Bound</option>
-                <option value="Claimed">Claimed</option>
-                <option value="Discarded">Discarded</option>
-                <option value="Not Held">Not Held</option>
-                <option value="Not Published">Not Published</option>
-                <option value="Received">Received</option>
-[% END %]
-<style type="text/css">
-    .create-dialog-table td { padding: 0.35em 0; }
-    .create-dialog-table th {
-        padding-right: 1em;
-        text-align: right;
-        font-weight: bold;
-    }
-</style>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-        layoutAlign="top" class="oils-header-panel">
-        <div>Items</div>
-        <div>
-            <button dojoType="dijit.form.Button"
-                onClick="create_dialog.show()">New Items</button>
-            <button dojoType="dijit.form.Button"
-                onClick="sitem_grid.refresh()">Refresh Grid</button>
-            <button dojoType="dijit.form.Button"
-                onClick="sitem_grid.deleteSelected()">
-                Delete Selected
-            </button>
-        </div>
-    </div>
-    <div>
-        Showing items attached to the issuance,
-        <em><a href="javascript:void(0);" id="siss_label_here"></a></em>.
-    </div>
-    <table jsId="sitem_grid"
-        dojoType="openils.widget.AutoGrid"
-        query="{id: '*'}"
-        fieldOrder="['id','creator','editor','create_date','edit_date',
-            'stream','date_expected','date_received','status','unit']"
-        suppressFields="['issuance','uri','shadowed']"
-        suppressEditFields="['issuance','uri','shadowed','creator','editor','create_date','edit_date','unit','stream']"
-        showSequenceFields="true"
-        fmClass="sitem"
-        editPaneOnSubmit="update_sitem_safely"
-        showPaginator="true"
-        editOnEnter="true">
-        <thead>
-            <tr>
-                <th field="creator" get="get_creator" formatter="format_user">
-                </th>
-                <th field="editor" get="get_editor" formatter="format_user">
-                </th>
-                <th field="stream" get="get_stream" formatter="format_stream">
-                </th>
-                <th field="unit" get="get_unit" formatter="format_unit">
-                </th>
-            </tr>
-        </thead>
-    </table>
-    <div class="hidden">
-        <div jsId="create_dialog" dojoType="dijit.Dialog"
-            title="Create New Items" execute="create_new_items(arguments[0]);">
-            <table class="create-dialog-table">
-                <tr>
-                    <th>How many items?</th>
-                    <td>
-                        <input dojoType="dijit.form.NumberSpinner" value="1"
-                            name="count" constraints="{min: 1, max: 100}" />
-                    </td>
-                </tr>
-                <tr>
-                    <th>Stream</th>
-                    <td>
-                        <input id="stream_selector" />
-                    </td>
-                </tr>
-                <tr>
-                    <th>Date Expected</th>
-                    <td>
-                        <input dojoType="dijit.form.DateTextBox"
-                            id="create-date-expected" name="date_expected"
-                            required="false" />
-                    </td>
-                </tr>
-                <tr>
-                    <th>Date Received</th>
-                    <td>
-                        <input dojoType="dijit.form.DateTextBox"
-                            name="date_received" required="false" />
-                    </td>
-                </tr>
-                <tr>
-                    <th>Status</th>
-                    <td>
-                        <select dojoType="dijit.form.FilteringSelect"
-                            name="status">
-                            [%- PROCESS status_values -%]
-                        </select>
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2" align="center">
-                        <span dojoType="dijit.form.Button" type="submit">
-                            Create
-                        </span>
-                    </td>
-                </tr>
-            </table>
-        </div>
-        <select jsId="status_selector" dojoType="dijit.form.FilteringSelect">
-            [%- PROCESS status_values -%]
-        </select>
-        <div dojoType="openils.widget.ProgressDialog" jsId="progress_dialog">
-        </div>
-    </div>
-</div>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/serial/list_item.js"></script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/serial/list_stream.tt2 b/Open-ILS/src/templates/default/serial/list_stream.tt2
deleted file mode 100644 (file)
index 52e641c..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Streams" %]
-<style type="text/css">
-    #new-srlu-table { width: 100%; }
-    #new-srlu-table th { text-align: left; padding-left: 1em; }
-    #new-srlu-table td { text-align: center; padding-right: 1em; }
-    #list-source { border: 1px #666 dashed; }
-</style>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-        layoutAlign="top" class="oils-header-panel">
-        <div>Streams</div>
-        <div>
-            <button dojoType="dijit.form.Button"
-                onClick="sstr_grid.showCreateDialog()">New Stream</button>
-            <button dojoType="dijit.form.Button"
-                onClick="multi_stream_dialog.show()">
-                Create Many Streams
-            </button>
-            <button dojoType="dijit.form.Button" onClick="rlu_editor.show()">
-                Routing List For Selected Stream
-            </button>
-            <button dojoType="dijit.form.Button"
-                onClick="sstr_grid.refresh()">Refresh Grid</button>
-            <button dojoType="dijit.form.Button"
-                onClick="sstr_grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div>
-        Showing streams attached to the distribution,
-        <em><a href="javascript:void(0);" id="sdist_label_here"></a></em>
-        (<span id="sdist_org_unit_name_here"></span>).
-    </div>
-    <table jsId="sstr_grid"
-        dojoType="openils.widget.AutoGrid"
-        query="{id: '*'}"
-        fieldOrder="['id','distribution','routing_label']"
-        suppressFields="['distribution']"
-        showSequenceFields="true"
-        fmClass="sstr"
-        showPaginator="true"
-        editOnEnter="true">
-        <thead>
-            <tr>
-                <th width="90%" field="routing_label"
-                    formatter="format_routing_label"></th>
-            </tr>
-        </thead>
-    </table>
-</div>
-<div class="hidden">
-
-    <div id="routing_list_user_template_reader">
-        Reader: ${0} / ${1}, ${2} ${3} (${4})
-    </div>
-    <div id="routing_list_user_template_department">Department: ${0}</div>
-    <div id="routing_list_user_template_note"><br />&nbsp; <em>${0}</em></div>
-    <div id="routing_list_user_template_remove">[X]</div>
-
-    <div dojoType="dijit.Dialog" id="routing_list_dialog"
-        execute="rlu_editor.save()" title="Manage Routing List">
-        <ol id="list-source" dojoType="dojo.dnd.Source"
-            jsId="routing_list_source"></ol>
-        <table id="new-srlu-table">
-            <tbody>
-                <tr>
-                    <td>
-                        <input type="radio" name="reader_xor_dept"
-                            dojoType="dijit.form.RadioButton"
-                            value="reader" id="reader_xor_dept-reader" />
-                    </td>
-                    <th>
-                        <label for="reader_xor_dept-reader">
-                            Reader (barcode):
-                        </label>
-                    </th>
-                    <td>
-                        <input dojoType="dijit.form.TextBox" id="reader"
-                            name="reader" disabled="disabled" />
-                    </td>
-                    <td rowspan="3">
-                        <button dojoType="dijit.form.Button"
-                            id="routing_list_add_button"
-                            onClick="rlu_editor.new_user()">Add</button>
-                    </td>
-                </tr>
-                <tr>
-                    <td>
-                        <input type="radio" name="reader_xor_dept"
-                            dojoType="dijit.form.RadioButton"
-                            value="department"
-                            id="reader_xor_dept-department" />
-                    </td>
-                    <th>
-                        <label for="reader_xor_dept-department">
-                            Department:
-                        </label>
-                    </th>
-                    <td>
-                        <input dojoType="dijit.form.TextBox" id="department"
-                            name="department" disabled="disabled" />
-                    </td>
-                </tr>
-                <tr>
-                    <td></td>
-                    <th><label for="note">Note:</label></th>
-                    <td>
-                        <input id="note" name="note"
-                            dojoType="dijit.form.TextBox" />
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="4" style="padding-top: 1em;">
-                        <button id="routing_list_save_button"
-                            dojoType="dijit.form.Button" type="submit">
-                            Save Changes
-                        </button>
-                    </td>
-                </td>
-            </tbody>
-        </table>
-    </div>
-
-    <div dojoType="dijit.Dialog"
-        execute="create_many_streams(arguments[0]);"
-        title="Create Streams"
-        jsId="multi_stream_dialog">
-        <table class="serial-dialog-table">
-            <tr>
-                <th>How many?</th>
-                <td>
-                    <input dojoType="dijit.form.NumberSpinner"
-                        value="1" smallDelta="1" name="quantity"
-                        constraints="{'min': 1, 'max': 1000}" />
-                </td>
-            </tr>
-            <tr>
-                <td colspan="2">
-                    <button dojoType="dijit.form.Button" type="submit">
-                        Create
-                    </button>
-                </td>
-            </tr>
-        </table>
-    </div>
-    <div dojoType="openils.widget.ProgressDialog" jsId="progress_dialog"></div>
-</div>
-<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/serial/list_stream.js"> </script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/serial/list_subscription.tt2 b/Open-ILS/src/templates/default/serial/list_subscription.tt2
deleted file mode 100644 (file)
index f7c2dfc..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Subscriptions" %]
-<script
-    type="text/javascript"
-    src="[% ctx.media_prefix %]/js/ui/default/serial/list_subscription.js">
-</script>
-<script type="text/javascript">
-    var _fallback_record_entry = "[% ctx.page_args.0 %]";
-</script>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane"
-        layoutAlign="top" class="oils-header-panel">
-        <div>Subscriptions</div>
-        <div>
-            <button
-                dojoType="dijit.form.Button"
-                onClick="ssub_grid.showCreateDialog()">New Subscription</button>
-            <button
-                dojoType="dijit.form.Button"
-                onClick="ssub_grid.deleteSelected()">Delete Selected</button>
-        </div>
-    </div>
-    <div>
-        <span>
-            Show subscriptions related to
-            <em type="opac/slot-data" datatype="marcxml"
-                query="datafield[tag=245]" limit="1"></em>
-            owned at or above:
-        </span>
-        <select dojoType="openils.widget.OrgUnitFilteringSelect"
-            jsId="ssub_owner_select"
-            searchAttr="shortname" labelAttr="shortname">
-        </select>
-    </div>
-    <table jsId="ssub_grid"
-        dojoType="openils.widget.AutoGrid"
-        query="{id: '*'}"
-        fieldOrder="['id','owning_lib','start_date','end_date']"
-        suppressFields="['record_entry']"
-        fmClass="ssub"
-        showPaginator="true"
-        showSequenceFields="true"
-        editOnEnter="true">
-        <thead>
-            <tr>
-                <th field="id" formatter="format_ssub_link"></th>
-            </tr>
-        </thead>
-    </table>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/serial/print_routing_list_users.tt2 b/Open-ILS/src/templates/default/serial/print_routing_list_users.tt2
deleted file mode 100644 (file)
index 31d76c1..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-[% WRAPPER default/base.tt2 %]
-[% ctx.page_title = "Serial Routing List" %]
-<div class="hidden">
-    <div id="list_template">
-        <div class="item-title" name="title"></div>
-        <div class="item-issuance-label" name="issuance_label"></div>
-        <div class="item-dist-and-stream">
-            (<span name="distribution_holding_lib"></span>)
-            <span name="distribution_label"></span> /
-            <span name="stream_routing_label" class="hidden"></span>
-            <em name="stream_id_container" class="hidden">
-                Unlabeled stream ID #<span name="stream_id"></span>
-            </em>
-        </div>
-        <ol name="users">
-            <li id="user_template">
-                <span class="hidden" name="reader_container">
-                    Reader: <span name="barcode"></span> /
-                    <span name="name"></span>
-                    (<span name="ou"></span>)
-                </span>
-                <span class="hidden" name="department_container">
-                    Department: <span name="department"></span>
-                </span>
-                <span class="hidden" name="note_container">
-                    <br />&nbsp; <em name="note"></em>
-                </span>
-            </li>
-        </ol>
-    </div>
-</div>
-<div style="padding: 1em 0;">
-    <button onclick="list_renderer.print()" accesskey="P"><u>P</u>rint</button>
-</div>
-<div id="iframe_in_here"></div>
-<script type="text/javascript"
-    src="[% ctx.media_prefix %]/js/ui/default/serial/print_routing_list_users.js"></script>
-[% END %]
diff --git a/Open-ILS/src/templates/default/serial/subscription.tt2 b/Open-ILS/src/templates/default/serial/subscription.tt2
deleted file mode 100644 (file)
index 95a5f8d..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-[% WRAPPER "default/base.tt2" %]
-<script>
-    var cap_editor;
-    var cap_importer;
-</script>
-<script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription.js">
-</script>
-<script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription/caption_and_pattern.js">
-</script>
-<script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription/issuance.js">
-</script>
-
-<div dojoType="dijit.layout.ContentPane" layout="top" class="oils-header-panel">
-    <div>Subscription Details</div>
-    <div>
-        <span dojoType="dijit.form.Button" onClick="clone_dialog.show();">
-            Clone Subscription
-        </span>
-        <span dojoType="dijit.form.Button" onClick="open_batch_receive();">
-            Batch Item Receive
-        </span>
-    </div>
-</div>
-
-<div dojoType="dijit.layout.TabContainer" jsId="tab_container"
-    class="oils-serial-tab-container">
-
-    <!-- Subscription Summary -->
-    <div dojoType="dijit.layout.ContentPane" title="Summary" selected="true">
-        <script type="dojo/connect" event="onShow">
-            load_sub_grid(sub_id);
-        </script>
-        <table jsId="sub_grid"
-            dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector="20px">
-            <thead>
-                <tr>
-                    <th field="id">ID</th>
-                    <th field="owning_lib" formatter="format_org_unit">
-                        Owning Library
-                    </th>
-                    <th field="start_date" formatter="format_date">
-                        Start Date
-                    </th>
-                    <th field="end_date" formatter="format_date">
-                        End Date
-                    </th>
-                    <th field="record_entry" width="20em"
-                        formatter="format_bib">
-                        Bibliographic Record
-                    </th>
-                    <th field="expected_date_offset">Expected Date Offset</th>
-                    <th field="num_dist">Number of Distributions</th>
-                </tr>
-            </thead>
-        </table>
-    </div>
-
-    <!-- Distributions -->
-    <div dojoType="dijit.layout.ContentPane" jsId="distributions_tab"
-        title="Distributions" layoutAlign="client">
-        <script type="dojo/connect" event="onShow">
-            if (!dist_grid._fresh) {
-                dist_grid.resetStore();
-                dist_grid.loadAll(
-                    {"order_by": {"sdist": "holding_lib"}},
-                    {"subscription": sub_id}
-                );
-                dist_grid._fresh = true;
-            }
-
-            if (!dist_grid.overrideEditWidgets.subscription) {
-                dist_grid.overrideEditWidgets.subscription =
-                    new dijit.form.TextBox({
-                        "disabled": true, "value": sub_id
-                    });
-            }
-        </script>
-        [% INCLUDE "default/serial/subscription/distribution.tt2" %]
-    </div>
-
-    <!-- Caption/Pattern -->
-    <div dojoType="dijit.layout.ContentPane"
-        title="Captions and Patterns" layoutAlign="client">
-        <script type="dojo/connect" event="onShow">
-            if (!cap_editor) {
-                cap_editor = new SCAPEditor(sub_id);
-                cap_importer = new SCAPImporter(sub);
-            }
-        </script>
-        [% INCLUDE "default/serial/subscription/caption_and_pattern.tt2" %]
-    </div>
-
-    <!-- Issuances -->
-    <div dojoType="dijit.layout.ContentPane" jsId="issuances_tab"
-        title="Issuances" layoutAlign="client">
-        <script type="dojo/connect" event="onShow">
-            if (!iss_grid._fresh) {
-                iss_grid.resetStore();
-                iss_grid.loadAll(
-                    {"order_by": {"siss": "date_published"}},
-                    {"subscription": sub_id}
-                );
-                iss_grid._fresh = true;
-            }
-
-            if (!iss_grid.overrideEditWidgets.subscription) {
-                iss_grid.overrideEditWidgets.subscription =
-                    new dijit.form.TextBox({
-                        "disabled": true, "value": sub_id
-                    });
-
-                iss_grid.overrideEditWidgets.creator =
-                    new dijit.form.TextBox({"disabled": true});
-                iss_grid.overrideEditWidgets.creator.shove = {
-                    "create": openils.User.user.id()
-                };
-
-                iss_grid.overrideEditWidgets.editor =
-                    new dijit.form.TextBox({
-                        "disabled": true, "value": openils.User.user.id()
-                    });
-
-                iss_grid.overrideEditWidgets.holding_type =
-                    new dijit.form.TextBox({"disabled": true});
-                iss_grid.overrideEditWidgets.holding_type.shove = {"create":""};
-
-                iss_grid.overrideEditWidgets.holding_type =
-                    new dijit.form.TextBox;
-            }
-            fresh_scap_selector(iss_grid);
-        </script>
-        [% INCLUDE "default/serial/subscription/issuance.tt2" %]
-    </div>
-</div>
-<div class="hidden">
-    <div dojoType="openils.widget.ProgressDialog" jsId="progress_dialog"></div>
-    <div dojoType="dijit.Dialog" jsId="clone_dialog" title="Clone Subscription"
-        style="width: 460px;" execute="clone_subscription(arguments[0]);">
-        <div style="margin-bottom: 0.5em;">
-            This feature will clone a subscription and all of its subscription
-            notes, distributions, distribution notes, captions and patterns,
-            streams, and routing list users.</div>
-        <div style="margin-bottom: 0.5em;">
-            Holdings-related objects, like issuances, items, units, and
-            summaries will <em>not</em> be cloned.
-        </div>
-        <div style="margin-bottom: 0.5em;">
-            To what bibliographic record should the new subscription be
-            attached?
-        </div>
-        <table width="100%">
-            <tr>
-                <td style="padding-right: 0.5em; vertical-align: top;">
-                    <input dojoType="dijit.form.RadioButton"
-                        id="use_ident_no" name="use_ident" value="no"
-                        checked="checked" />
-                </td>
-                <td>
-                    <label for="use_ident_no">
-                        Same record as the existing subscription
-                    </label>
-                </td>
-            </tr>
-            <tr>
-                <td style="padding-right: 0.5em; vertical-align: top;">
-                    <input dojoType="dijit.form.RadioButton"
-                        onChange="toggle_clone_ident_field(this);"
-                        id="use_ident_yes" name="use_ident" value="yes" />
-                </td>
-                <td>
-                    <label for="use_ident_yes">
-                        Record specified by this unique identifier:
-                    </label>
-                    <input dojoType="dijit.form.TextBox" name="ident"
-                        jsId="clone_ident" disabled="true"
-                        style="margin-left: 0.5em; width: 10em;" />
-                </td>
-            </tr>
-            <tr>
-                <td colspan="2" align="center">
-                    <span dojoType="dijit.form.Button" type="submit">
-                        Clone!
-                    </span>
-                </td>
-            </tr>
-        </table>
-    </div>
-</div>
-[% END %]
diff --git a/Open-ILS/src/templates/default/serial/subscription/caption_and_pattern.tt2 b/Open-ILS/src/templates/default/serial/subscription/caption_and_pattern.tt2
deleted file mode 100644 (file)
index 17d8e9d..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<div dojoType="dijit.layout.ContentPane" layout="top">
-    <table id="scap_editor" class="hidden">
-        <thead>
-            <tr>
-                <th>ID</th>
-                <th>Type</th>
-                <th>Pattern Code</th>
-                <th>Create Date</th>
-                <th>Active</th>
-                <th>Remove</th>
-                <th>Save Changes</th>
-            </tr>
-        </thead>
-        <tbody>
-            <tr>
-                <td name="id">
-                    <span control="true"></span>
-                </td>
-                <td name="type">
-                    <select control="true">
-                        <option value="basic">(853) Basic</option>
-                        <option value="supplement">(854) Supplement</option>
-                        <option value="index">(855) Index</option>
-                    </select>
-                </td>
-                <td name="pattern_code">
-                    <input type="text" size="16" control="true" />
-                    <button>Wizard ...</button>
-                </td>
-                <td name="create_date">
-                    <span control="true"></span>
-                </td>
-                <td name="active">
-                    <input type="checkbox" control="true" checked="checked" />
-                </td>
-                <td name="remover">
-                    <button>X</button>
-                </td>
-                <td name="save">
-                    <button>Save Changes</button>
-                </td>
-            </tr>
-        </tbody>
-        <tfoot>
-            <tr>
-                <td colspan="7" align="center">
-                    <button name="add">Add New</button>
-                    &nbsp;
-                    <button id="scaps_from_bib">
-                        Import From Bibliographic or Legacy Serial Records
-                    </button>
-                </td>
-            </tr>
-        </tfoot>
-    </table>
-</div>
-<div class="hidden">
-    <div id="record_template" style="padding-bottom: 0.5em;">
-        <input type="checkbox" />&nbsp; <span name="obj_class"></span> record
-        #<span name="obj_id"></span>
-        <span name="obj_owner_container" class="hidden">
-            (<span name="obj_owner"></span>)
-        </span><br />
-        &nbsp; Created by <span name="obj_create"></span><br />
-        &nbsp; Edited by <span name="obj_edit"></span><br />
-        <em class="hidden" name="obj_inactive">(Inactive)</em>
-    </div>
-    <div dojoType="dijit.Dialog" execute="cap_importer.import()"
-        jsId="scaps_from_bib_dialog">
-        <div>
-            <em>
-                Select records from which to import caption and pattern fields.
-            </em>
-        </div>
-        <div id="record_holder" style="padding: 1em 0;"></div>
-        <button dojoType="dijit.form.Button" type="submit">
-            Import
-        </button>
-    </div>
-</div>
diff --git a/Open-ILS/src/templates/default/serial/subscription/distribution.tt2 b/Open-ILS/src/templates/default/serial/subscription/distribution.tt2
deleted file mode 100644 (file)
index d8f4b0d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<div dojoType="dijit.layout.ContentPane" layout="top"
-    class="oils-header-panel lesser">
-    <div>Distributions</div>
-    <div style="margin-right: 16px;">
-        <span dojoType="dijit.form.Button"
-            onClick="dist_grid.refresh();">Refresh Grid</span>
-        <span dojoType="dijit.form.Button"
-            onClick="sub_grid._fresh = false; dist_grid.showCreateDialog();">
-            New Distribution
-        </span>
-        <span dojoType="dijit.form.Button"
-            onClick="sub_grid._fresh = false; dist_grid.deleteSelected();">
-            Delete Selected
-        </span>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layout="top">
-    <table
-        jsId="dist_grid"
-        dojoType="openils.widget.AutoGrid"
-        style="height: 550px;"
-        fieldOrder="['subscription','label','holding_lib']"
-        suppressFields="['record_entry','subscription','receive_call_number','bind_call_number','bind_unit_template']"
-        suppressEditFields="['record_entry','receive_call_number','bind_call_number','bind_unit_template']"
-        requiredFields="['receive_unit_template']"
-        fmClass="sdist"
-        query="{id: '*'}"
-        editOnEnter="true"
-        showPaginator="true">
-        <thead>
-            <tr>
-                <th field="label" width="35%"
-                    get="get_id_and_label" formatter="format_sdist_label"></th>
-            </tr>
-        </thead>
-    </table>
-</div>
diff --git a/Open-ILS/src/templates/default/serial/subscription/issuance.tt2 b/Open-ILS/src/templates/default/serial/subscription/issuance.tt2
deleted file mode 100644 (file)
index b74df6e..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<div dojoType="dijit.layout.ContentPane" layout="top"
-    class="oils-header-panel lesser">
-    <div>Issuances</div>
-    <div style="margin-right: 16px;">
-        <span dojoType="dijit.form.Button"
-            onclick="iss_grid.refresh();">Refresh Grid</span>
-        <span dojoType="dijit.form.Button"
-            onclick="iss_grid.showCreatePane();">New Issuance</span>
-        <span dojoType="dijit.form.Button"
-            onclick="iss_grid.deleteSelected();">Delete Selected</span>
-    </div>
-</div>
-<div class="serial-additional-controls">
-    <span dojoType="dijit.form.Button"
-        onclick="prediction_dialog.show();">Generate Predictions</span>
-</div>
-<div dojoType="dijit.layout.ContentPane" layout="top">
-    <table jsId="iss_grid"
-        dojoType="openils.widget.AutoGrid"
-        autoHeight="true"
-        fieldOrder="['subscription','creator','editor','label','date_published','caption_and_pattern','holding_type']"
-        suppressFields="['subscription','holding_link_id','create_date','edit_date','creator','editor']"
-        suppressEditFields="['id','holding_link_id','create_date','edit_date']"
-        defaultCellWidth="'auto'"
-        fmClass="siss"
-        query="{id: '*'}"
-        editOnEnter="true"
-        showPaginator="true">
-        <thead>
-            <tr>
-                <th field="label" formatter="format_siss_label"
-                    get="get_id_and_label"></th>
-            </tr>
-        </thead>
-    </table>
-</div>
-<div class="hidden">
-    <div dojoType="dijit.Dialog"
-        title="Generate Issuance and Item Predictions"
-        execute="generate_predictions(arguments[0]);"
-        jsId="prediction_dialog">
-        <script type="dojo/connect" event="onShow">
-            prepare_prediction_dialog();
-        </script>
-        <table class="serial-dialog-table">
-            <tr>
-                <th>
-                    <input dojoType="dijit.form.RadioButton"
-                        id="end_date" name="end_how" value="date"
-                        checked="false" disabled="true"
-                        jsId="prediction_dialog_end_date" />
-                    <label for="end_date">
-                        Predict until end of subscription
-                    </label>
-                </th>
-                <td></td>
-            </tr>
-            <tr>
-                <th>
-                    <input dojoType="dijit.form.RadioButton"
-                        id="end_num" name="end_how" value="number"
-                        checked="true" jsId="prediction_dialog_end_num"
-                        onChange="if (this.attr('checked')) setTimeout(function(){prediction_dialog_num_to_predict.focus();},200);" />
-                    <label for="end_num">
-                        Predict a certain number of issuances:
-                    </label>
-                </th>
-                <td>
-                    <input dojoType="dijit.form.TextBox"
-                        style="width: 5em;"
-                        jsId="prediction_dialog_num_to_predict"
-                        name="num_to_predict" />
-                </td>
-            </tr>
-            <tr>
-                <td colspan="2">
-                    <button dojoType="dijit.form.Button"
-                        jsId="prediction_dialog_submit"
-                        type="submit" disabled="true">Generate</button>
-                </td>
-            </tr>
-        </table>
-    </div>
-</div>
diff --git a/Open-ILS/src/templates/default/vandelay/inc/attrs.tt2 b/Open-ILS/src/templates/default/vandelay/inc/attrs.tt2
deleted file mode 100644 (file)
index 1a09b0b..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<div style='float: left; margin-top: 8px;'>
-    <input dojoType="dijit.form.RadioButton" name="attrEditorGroup" value="bib" 
-        id="aegB" onclick="setAttrEditorGroup('bib');" checked="checked"/>
-    <label for="aegB" style="margin-right: 1em;">&vandelay.bib.attrs;</label>
-    <input dojoType="dijit.form.RadioButton" name="attrEditorGroup" value="auth" 
-        id="aegA" onclick="setAttrEditorGroup('auth');"/>
-    <label for="aegA" style="margin-right: 1em;">&vandelay.auth.attrs;</label>
-</div>
-<div dojoType="dijit.form.DropDownButton" id="vl-create-attr-editor-button">
-    <span name="create">&vandelay.create.attr.def;</span>
-    <div dojoType="dijit.TooltipDialog" execute="vlSaveAttrDefinition(arguments[0]);" id="attr-editor-dialog">
-        <script type='dojo/connect' event='onOpen'>onAttrEditorOpen();</script>
-        <script type='dojo/connect' event='onClose'>onAttrEditorClose();</script>
-        <table class='dijitTooltipTable'>
-            <tr>
-                <td><label for="code">&vandelay.code;:</label></td>
-                <td><input id='attr-editor-code' name="code" dojoType="dijit.form.TextBox"/></td>
-            </tr>
-            <tr>
-                <td><label for="description">&vandelay.descrip;:</label></td>
-                <td><input id='attr-editor-description' dojoType="dijit.form.TextBox" name="description"> </input></td>
-            </tr>
-            <tr>
-                <td><label for="amount">&vandelay.tags;:</label></td>
-                <td><input id="attr-editor-tags" dojoType="dijit.form.TextBox" name="tag"></input>
-                <div class="hidden" id="attr-editor-tags-tip">
-                <p>&vandelay.tooltip.tags;</p>
-                <p>&vandelay.for.example;:<code>120, 220, 300</code> or <code>120 220 330</code></p></div>
-                </td>
-            </tr>
-
-            <tr>
-                <td><label for="amount">&vandelay.subfields;:</label></td>
-                <td><input dojoType="dijit.form.TextBox" name="subfield" id="attr-editor-subfields"></input>
-                    <div class="hidden" id="attr-editor-subfields-tip">
-                    <p>&vandelay.tooltip.subfields;</p>
-                    <p>&vandelay.for.example;: <code>a, b, j, x</code> or <code>a b j x</code></p></div>
-                </td>
-            </tr>
-            <tr>
-                <td><label for="attr-editor-xpath">&vandelay.xpath.advanced;: </label></td>
-
-                <td><input dojoType="dijit.form.TextBox" id="attr-editor-xpath" name="xpath"></input></td>
-            </tr>
-            <tr>
-                <td><label for="attr-editor-remove">&vandelay.remove.advanced;: </label></td>
-
-                <td><input dojoType="dijit.form.TextBox" id="attr-editor-remove" name="remove"></input></td>
-            </tr>
-            <tr id="attr-editor-create-bar">
-                <td colspan='2' align='center'>
-                    <button dojoType="dijit.form.Button" type="submit" 
-                        id="attr-editor-create-button">&vandelay.create;</button>
-                    <button type="button" dojoType="dijit.form.Button"
-                        onclick="dijit.byId('attr-editor-dialog').onCancel();">&vandelay.cancel;</button>
-                </td>
-            </tr>
-            <tr id="attr-editor-update-bar">
-                <td colspan='2' align='center'>
-                    <button dojoType="dijit.form.Button" type="submit" 
-                        id="attr-editor-update-button">&vandelay.update;</button>
-                    <button type="button" dojoType="dijit.form.Button"
-                        onclick="dijit.byId('attr-editor-dialog').onCancel();">&vandelay.cancel;</button>
-                    <button dojoType="dijit.form.Button" 
-                        type="button" 
-                        id="attr-editor-delete-button"
-                        style="padding-left: 2em;"
-                        onclick="if(confirm('&vandelay.sure.to.delete;')) { vlAttrDelete(); }">
-                            &vandelay.delete.record;</button>
-                </td>
-            </tr>
-        </table>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <table dojoType='dojox.grid.DataGrid' jsId='attrEditorGrid' query="{id: '*'}" autoHeight='true'> 
-        <thead>
-            <tr>
-                <th field='id'>&vandelay.id;</th>
-                <th field='code' width='auto'>&vandelay.code;</th>
-                <th field='description' width='auto'>&vandelay.descrip;</th>
-                <th field='tag' get='attrGridGetTag'>&vandelay.tag;</th>
-                <th field='subfield' get='attrGridGetSubfield'>&vandelay.subfield;</th>
-                <th field='xpath' width='auto'>&vandelay.xpath;</th>
-                <th field='remove' width='auto'>&vandelay.remove;</th>
-            </tr>
-        </thead>
-    </table>
-    <div/>
-</div>
-
-
diff --git a/Open-ILS/src/templates/default/vandelay/inc/export.tt2 b/Open-ILS/src/templates/default/vandelay/inc/export.tt2
deleted file mode 100644 (file)
index 1f7a9e3..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<h1>&vandelay.export.records;</h1><br/>
-<form method="POST" enctype="multipart/form-data" action='https://[% ctx.hostname %]/exporter'>
-    <table class='form_table'>
-        <tr class='export_tr_border'>
-            <td>&vandelay.export.use_field_no;</td>
-            <td>
-                <input dojoType='dijit.form.TextBox' type="text" size="2" maxlength="2" name="idcolumn" value="0"/>
-                &vandelay.export.field_no_hint;
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.export.from_csv;</td>
-            <td><input type="file" name="idfile"/></td>
-        </tr>
-        <tr><td colspan='2'><b>&vandelay.export.or;</b></td></tr>
-        <tr class='export_tr_border'>
-            <td>&vandelay.export.record_id;</td>
-            <td><input dojoType='dijit.form.TextBox' type="text" size="12" maxlength="12" name="id"/></td>
-        </tr>
-        <tr><td colspan='2'><b>&vandelay.export.or;</b></td></tr>
-        <tr class='export_tr_border'>
-            <td>&vandelay.export.bucket;</td>
-            <td><input dojoType='dijit.form.TextBox' type='text' name='containerid'/></td>
-        </tr>
-        <tr class='export_tr_border'>
-            <td>&vandelay.record.type;</td>
-            <td>
-                <select name="rectype" dojoType='dijit.form.FilteringSelect'>
-                    <option value="biblio">&vandelay.bib.records;</option>
-                    <option value="authority">&vandelay.auth.records;</option>
-                </select>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.export.format;</td>
-            <td>
-                <select name="format" dojoType='dijit.form.FilteringSelect'>
-                    <option value="USMARC">&vandelay.export.format.marc21;</option>
-                    <option value="UNIMARC">&vandelay.export.format.unimarc;</option>
-                    <option value="XML">&vandelay.export.format.xml;</option>
-                    <option value="BRE">&vandelay.export.format.bre;</option>
-                </select>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.export.encoding;</td>
-            <td>
-                <select name="encoding" dojoType='dijit.form.FilteringSelect'>
-                    <option value="UTF-8">&vandelay.export.utf8;</option>
-                    <option value="MARC8">&vandelay.export.marc8;</option>
-                </select>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.export.holdings;</td>
-            <td><input dojoType='dijit.form.CheckBox' type="checkbox" name="holdings" value="1"/></td>
-        </tr>
-        <tr>
-            <td colspan='2'>
-                <button dojoType='dijit.form.Button' type="submit" value="Retrieve Records">&vandelay.export.retrieve;</button>
-            </td>
-        </tr>
-    </table>
-</form>
diff --git a/Open-ILS/src/templates/default/vandelay/inc/import_errors.tt2 b/Open-ILS/src/templates/default/vandelay/inc/import_errors.tt2
deleted file mode 100644 (file)
index 588260e..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
-    <button dojoType='dijit.form.Button' 
-        onclick="displayGlobalDiv('vl-queue-div');">&#x2196; &vandelay.back.to.import.queue;</button>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
-    <div id='vl-import-error-record' class='hidden'>
-        <h1>Import Errors</h1><br/>
-        <table>
-            <tbody>
-                <tr><td>ID</td><td id='vl-error-id'/></tr>
-                <tr><td>Import Error</td><td id='vl-error-import-error'/></tr>
-                <tr><td>Error Detail</td><td id='vl-error-error-detail'/></tr>
-                <tr><td>Title</td><td id='vl-error-title'/></tr>
-                <tr><td>Author</td><td id='vl-error-author'/></tr>
-                <tr><td>ISBN</td><td id='vl-error-isbn'/></tr>
-                <tr><td>ISSN</td><td id='vl-error-issn'/></tr>
-                <tr><td>UPC</td><td id='vl-error-upc'/></tr>
-            </tbody>
-        </table>
-    </div>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
-    <div class='hidden' id='vl-import-error-grid-some'>
-        <table  jsId="vlImportErrorGrid"
-                dojoType="openils.widget.AutoGrid"
-                autoHeight='true'
-                fieldOrder="['barcode', 'call_number', 'owning_lib', 'import_error', 'error_detail']"
-                query="{id: '*'}"
-                hidePaginator='true'
-                showColumnPicker='true'
-                columnPickerPrefix='"vandelay.item.import_error"'
-                fmClass='vii'>
-                <thead>
-                    <tr>
-                        <th field='owning_lib' get='vlGetOrg'/>
-                        <th field='circ_lib' get='vlGetOrg'/>
-                        <th field='status' get='vlCopyStatus'/>
-                        <th field='location' get='vlCopyLocation'/>
-                    </tr>
-                </thead>
-        </table>
-    </div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
-    <div class='hidden' id='vl-import-error-grid-all'>
-        <h1>Import Items</h1><br/>
-        <input dojoType='dijit.form.CheckBox' jsId='vlImportItemsShowErrors' onchange='vlLoadErrorUIAll();'/>
-        <span>Limit to Import Failures</span>
-        <table width='100%'><tr><td width='100%' align='right'>
-            <select id='vl-item-export-options' style='margin-right: 10px;'>
-                <!-- TODO I18N -->
-                <option value=''>Export Items As...</option>
-                <option value='print'>Print</option>
-                <option value='csv'>CSV</option>
-                <option value='email'>Email</option>
-            </select>
-        </td></tr></table>
-        <table  jsId="vlAllImportErrorGrid"
-                dojoType="openils.widget.AutoGrid"
-                autoHeight='true'
-                fieldOrder="['barcode', 'call_number', 'owning_lib', 'import_error', 'error_detail']"
-                query="{id: '*'}"
-                showPaginator='true'
-                showColumnPicker='true'
-                columnPickerPrefix='"vandelay.item.import_error"'
-                fmClass='vii'>
-                <thead>
-                    <tr>
-                        <th field='owning_lib' get='vlGetOrg'/>
-                        <th field='circ_lib' get='vlGetOrg'/>
-                        <th field='status' get='vlCopyStatus'/>
-                        <th field='location' get='vlCopyLocation'/>
-                    </tr>
-                </thead>
-        </table>
-    </div>
-</div>
-
diff --git a/Open-ILS/src/templates/default/vandelay/inc/item_attrs.tt2 b/Open-ILS/src/templates/default/vandelay/inc/item_attrs.tt2
deleted file mode 100644 (file)
index 611657c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-    Grid for configuring vandelay.import_item_attr_definition
--->
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Import Item Attribute Definitions</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='itemAttrGrid.showCreatePane()'>New Definition</button>
-            <button dojoType='dijit.form.Button' onClick='itemAttrGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-        <span style='padding-right:10px;'>Context Org Unit</span>
-        <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='itemAttrContextOrgSelector'
-            searchAttr='shortname' labelAttr='shortname'> </select>
-    </div>
-    <table  jsId="itemAttrGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="[]"
-            query="{id: '*'}"
-            fmClass='viiad'
-            editStyle='pane'
-            showPaginator='true'
-            editOnEnter='true'>
-    </table>
-</div>
diff --git a/Open-ILS/src/templates/default/vandelay/inc/marchtml.tt2 b/Open-ILS/src/templates/default/vandelay/inc/marchtml.tt2
deleted file mode 100644 (file)
index ad54452..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<!-- MARC as HTML -->
-<h1>&vandelay.marc.record;</h1><br/>
-<span class='hidden' id='vl-marc-edit-save-label'>&vandelay.save;</span>
-<span class='hidden' id='vl-marc-edit-complete-label'>&vandelay.record_saved;</span>
-<div>
-    <button id='vl-marc-html-done-button' dojoType='dijit.form.Button'>&#x2196; &vandelay.return;</button>
-    <button id='vl-marc-html-edit-button' dojoType='dijit.form.Button'>&vandelay.edit;</button>
-</div>
-<div>
-    <style type="text/css">#vl-marc-record-html td {padding:0px;}</style>
-    <div id='vl-marc-record-html'> </div>
-</div>
-
diff --git a/Open-ILS/src/templates/default/vandelay/inc/matches.tt2 b/Open-ILS/src/templates/default/vandelay/inc/matches.tt2
deleted file mode 100644 (file)
index 2376dbc..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<script type="text/javascript">
-    var vlMatchGridLayout;
-    function resetVlMatchGridLayout() {
-        vlMatchGridLayout = [{
-            defaultCell: {styles: 'text-align: center;'},
-            cells : [[
-                {
-                    name: '&vandelay.overlay.target;', 
-                    get: vlGetOverlayTargetSelector,
-                    formatter : vlFormatOverlayTargetSelector,
-                },
-                {name: '&vandelay.id;', field:'id'},
-                {   name: '&vandelay.view.marc;', 
-                    get: vlGetViewMARC, 
-                    formatter : vlFormatViewMatchMARC
-                },
-                {name: 'Match Score', field:'match_score'},
-                {name: 'Queued Record Quality', field:'rec_quality'},
-                {name: 'Matched Record Quality', field:'match_quality'},
-                {name: '&vandelay.creator;', get: vlGetCreator},
-                {name: '&vandelay.create.date;', field:'create_date', get: vlGetDateTimeField},
-                {name: '&vandelay.last.edit.date;', field:'edit_date', get: vlGetDateTimeField},
-                {name: '&vandelay.source;', field:'source'},
-                {name: '&vandelay.tcn.source;', field:'tcn_source'},
-                {name: '&vandelay.tcn.value;', field:'tcn_value'}
-            ]]
-        }];
-    }
-</script>
-<h1>&vandelay.import.matches;</h1><br/>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
-    <button dojoType='dijit.form.Button' 
-        onclick="displayGlobalDiv('vl-queue-div');">&#x2196; &vandelay.back.to.import.queue;</button>
-</div>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
-    <table dojoType='dojox.grid.DataGrid' jsId='vlMatchGrid' query='{id:"*"}' autoHeight='true'> 
-    </table>
-</div>
-
diff --git a/Open-ILS/src/templates/default/vandelay/inc/profiles.tt2 b/Open-ILS/src/templates/default/vandelay/inc/profiles.tt2
deleted file mode 100644 (file)
index 0220d6a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>Overlay / Merge Profiles</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='pGrid.showCreateDialog()'>New Merge Profile</button>
-            <button dojoType='dijit.form.Button' onClick='pGrid.deleteSelected()'>Delete Selected</button>
-        </div>
-    </div>
-    <div>
-        <span style='padding-right:10px;'>Context Org Unit</span>
-        <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='profileContextOrgSelector'
-            searchAttr='shortname' labelAttr='shortname'> </select>
-    </div>
-    <table  jsId="pGrid"
-            dojoType="openils.widget.AutoGrid"
-            fieldOrder="['name', 'owner', 'preserve_spec', 'replace_spec', 'add_spec', 'strip_spec', 'lwm_ratio']"
-            query="{id: '*'}"
-            defaultCellWidth='"14%"'
-            fmClass='vmp'
-            showPaginator='true'
-            editOnEnter='true'>
-        <thead>
-            <tr>
-                <th field='owner' get='vlGetOrg'/>
-            </tr>
-        </thead>
-    </table>
-</div>
diff --git a/Open-ILS/src/templates/default/vandelay/inc/progress.tt2 b/Open-ILS/src/templates/default/vandelay/inc/progress.tt2
deleted file mode 100644 (file)
index e5e1833..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<div id="vl-generic-progress" class='progress'>
-    <div dojoType="dijit.ProgressBar" style="width:300px" indeterminate="true"></div>
-</div>
-<div id="vl-generic-progress-with-total" class='hidden progress'>
-    <div dojoType="dijit.ProgressBar" jsId='vlControlledProgressBar' style="width:300px"></div>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-marc-upload-status-div' class='hidden'>
-    <h1>&vandelay.upload.status;</h1><br/>
-    <div id='vl-upload-status-uploading'>
-        <h3>&vandelay.uploading;</h3>
-    </div>
-    <div id='vl-upload-status-processing' class='hidden'>
-        <h3>&vandelay.processing;<span id='vl-upload-status-count'/></h3>
-    </div>
-</div>
-
diff --git a/Open-ILS/src/templates/default/vandelay/inc/queue.tt2 b/Open-ILS/src/templates/default/vandelay/inc/queue.tt2
deleted file mode 100644 (file)
index 749434f..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' style='margin-top:10px;'>
-    <fieldset id='vl-queue-filter-fieldset'>
-        <legend>Queue <span style='font-style:italic;' id='vl-queue-summary-name'/></legend>
-        <table width='100%'><tr>
-            <td> <!-- big left td -->
-            <table>
-                <tr>
-                    <td valign='top'>
-                        <table class='queue-nav-table'>
-                            <thead><tr><th colspan='2' class='queue-nav-table-label'>Queue Actions</th></tr></thead>
-                            <tbody>
-                                <tr><td><a href='javascript:;' onclick='vlHandleQueueItemsAction("import")'>&vandelay.import.selected;</a></td></tr>
-                                <tr><td><a href='javascript:;' onclick='vlHandleQueueItemsAction("import_all")'>&vandelay.import.all;</a></td></tr>
-                                <tr><td><a href='javascript:;' onclick='vlLoadErrorUIAll();'>View Import Items</a></td></tr>
-                                <tr><td><a href='javascript:;' onclick='
-                                    if(confirm("&vandelay.sure.to.delete.queue;")) {
-                                        vlDeleteQueue(currentType, currentQueueId, 
-                                            function() { displayGlobalDiv("vl-marc-upload-div"); });}'>&vandelay.delete.queue;</a></td></tr>
-                            </tbody>
-                        </table>
-                    </td>
-
-                    <td valign='top'>
-                        <table  id='vl-queue-summary-table' class='queue-nav-table'>
-                            <thead><tr><th colspan='2' class='queue-nav-table-label'>Queue Summary</th></tr></thead>
-                            <tbody>
-                                <tr><td>&vandelay.queue.total;</td><td> <span style='font-weight:bold;' id='vl-queue-summary-total-count'/></td></tr>
-                                <tr><td>&vandelay.queue.imported;</td><td> <span style='font-weight:bold;' id='vl-queue-summary-import-count'/></td></tr>
-                                <tr><td>Record Import Failures</td><td> <span style='font-weight:bold;' id='vl-queue-summary-rec-error-count'/></td></tr>
-                                <tr><td>Items in Queue</td><td> <span style='font-weight:bold;' id='vl-queue-summary-import-item-count'/></td></tr>
-                                <tr><td>Items Imported</td><td> <span style='font-weight:bold;' id='vl-queue-summary-import-item-imported-count'/></td></tr>
-                                <tr><td>Item Import Failures</td><td> <span style='font-weight:bold;' id='vl-queue-summary-item-error-count'/></td></tr>
-                            </tbody>
-                        </table>
-                    </td>
-
-                    <td valign='top'> <!-- filters -->
-                        <table id='vl-queue-filter-table' class='queue-nav-table'>
-                            <thead><tr><th colspan='2' class='queue-nav-table-label'>Queue Filters</th></tr></thead>
-                            <tbody>
-                                <tr>
-                                    <td>&vandelay.limit.to.collision.matches;</td>
-                                    <td>
-                                        <input dojoType='dijit.form.CheckBox' 
-                                            jsId='vlQueueGridShowMatches' onchange='retrieveQueuedRecords();'/>
-                                    </td>
-                                </tr>
-                                <tr>
-                                    <td>&vandelay.limit.to.non.imported;</td>
-                                    <td>
-                                        <input dojoType='dijit.form.CheckBox' 
-                                            jsId='vlQueueGridShowNonImport' onchange='retrieveQueuedRecords();'/>
-                                    </td>
-                                </tr>
-                                <tr>
-                                    <td>&vandelay.limit.to.import_error;</td>
-                                    <td>
-                                        <input dojoType='dijit.form.CheckBox' 
-                                            jsId='vlQueueGridShowImportErrors' onchange='retrieveQueuedRecords();'/>
-                                    </td>
-                                </tr>
-                            </tbody>
-                        </table>
-                    </td>
-                </tr>
-            </table>
-        </td>
-
-        <td align='right' valign='bottom'> <!-- big right td -->
-            <table id='vl-queue-paging-table' class='queue-nav-table'>
-                <tbody>
-                    <tr><td valign='bottom' align='right'>
-                        <select id='vl-queue-export-options' style='margin-right: 10px;'>
-                            <!-- TODO I18N -->
-                            <option value=''>Export Queue As...</option>
-                            <option value='print'>Print</option>
-                            <option value='csv'>CSV</option>
-                            <option value='email'>Email</option>
-                        </select>
-                        <span style='padding-right:5px;'>&vandelay.results.per.page;</span>
-                        <span class='queue-pager-span'>
-                            <select jsId='vlQueueDisplayLimit' id='vl-queue-display-limit-selector'
-                                value='10' onchange='retrieveQueuedRecords();'>
-                                <option value='10'>10</option>
-                                <option value='20'>20</option>
-                                <option value='50'>50</option>
-                                <option value='100'>100</option>
-                            </select>
-                        </span>
-
-                        <span class='queue-pager-span'>
-                            <span style='padding-left:5px;'>&vandelay.page;</span>
-                            <input style='width:36px;' dojoType='dijit.form.TextBox' jsId='vlQueueDisplayPage' value='1'/>
-                        </span>
-
-                        <span style='padding-right:8px;'>
-                            <a href='javascript:void(0);' onclick='vlQueueGridPrevPage();'>&vandelay.prev.page;</a>
-                        </span>
-                        <span style='padding-right:10px;'>
-                            <a href='javascript:void(0);' onclick='vlQueueGridNextPage();'>&vandelay.next.page;</a>
-                        </span>
-                    </td></tr>
-                </tbody>
-            </table>
-        </td>
-    </tr></table>
-    </fieldset>
-</div>
-
-<!-- Bib Queue Grid -->
-<div class='' id='vl-bib-queue-grid-wrapper' dojoType='dijit.layout.ContentPane'>
-    <table dojoType='dojox.grid.DataGrid' jsId='vlBibQueueGrid' query="{id:'*'}" autoHeight='true'>
-        <thead>
-            <tr>
-                <th 
-                    field='+row_selector'
-                    get='vlQueueGridDrawSelectBox'
-                    formatter='vlQueueGridFormatSelectBox'
-                    width='16'
-                    styles='text-align: center;'
-                    nonSelectable='true'>
-                        <input id="vl-queue-grid-row-selector" type="checkbox" onclick="vlToggleQueueGridSelect();"></input>
-                </th>
-                <th
-                    field='+view_marc'
-                    get='vlGetViewMARC'
-                    formatter='vlFormatViewMARC' 
-                    styles='text-align: center;'
-                    nonSelectable='true'>&vandelay.view.marc;</th>
-                <th
-                    field='+get_matches'
-                    get='vlGetViewMatches'
-                    formatter='vlFormatViewMatches'
-                    styles='text-align: center;'
-                    nonSelectable='true'>&vandelay.matches;</th>
-                <th
-                    field='+get_errors'
-                    get='vlGetViewErrors'
-                    formatter='vlFormatViewErrors'
-                    styles='text-align: center;'
-                    nonSelectable='true'>Import Failures</th>
-                <th
-                    field='import_time'
-                    styles='text-align: center;'
-                    get='vlGetDateTimeField'>&vandelay.import.time;</th>
-            </tr>
-        </thead>
-    </table>
-    <div/>
-</div>
-
-<!-- Auth Queue Grid -->
-<div class='' id='vl-auth-queue-grid-wrapper' dojoType='dijit.layout.ContentPane'>
-    <table dojoType='dojox.grid.DataGrid' jsId='vlAuthQueueGrid' query="{id:'*'}" autoHeight='true'> 
-        <thead>
-            <tr>
-                <th 
-                    field='+row_selector'
-                    get='vlQueueGridDrawSelectBox'
-                    formatter='vlQueueGridFormatSelectBox'
-                    styles='text-align: center;'
-                    nonSelectable='true'>
-                        <input id="vl-queue-grid-row-selector" type="checkbox" onclick="vlToggleQueueGridSelect();"></input>
-                </th>
-                <th
-                    field='+view_marc'
-                    get='vlGetViewMARC'
-                    formatter='vlFormatViewMARC' 
-                    styles='text-align: center;'
-                    nonSelectable='true'>&vandelay.view.marc;</th>
-                <th
-                    field='+get_matches'
-                    get='vlGetViewMatches'
-                    formatter='vlFormatViewMatches'
-                    styles='text-align: center;'
-                    nonSelectable='true'>&vandelay.matches;</th>
-                <th
-                    field='+get_errors'
-                    get='vlGetViewErrors'
-                    formatter='vlFormatViewErrors'
-                    styles='text-align: center;'
-                    nonSelectable='true'>Import Failures</th>
-                <th
-                    field='import_time'
-                    styles='text-align: center;'
-                    get='vlGetDateTimeField'>&vandelay.import.time;</th>
-            </tr>
-        </thead>
-    </table>
-    <div/>
-</div>
-
-<div jsId='queueItemsImportDialog' dojoType="dijit.Dialog" title="Import Items">
-    <div dojoType="dijit.layout.ContentPane">
-        <table class='form_table'>
-            <tbody>
-                <tr>
-                    <td>&vandelay.auto.import.merge_profile;</td>
-                    <td colspan='4'>
-                        <div jsId='vlUploadMergeProfile2' 
-                            dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
-                    </td>
-                </tr>
-                <tr>
-                    <td>&vandelay.auto.import.noncolliding;</td>
-                    <td colspan='4'>
-                        <input jsId='vlUploadQueueImportNoMatch2' dojoType='dijit.form.CheckBox'/>
-                    </td>
-                </tr>
-                <tr>
-                    <td>&vandelay.auto.import.auto_overlay_exact;</td>
-                    <td colspan='4'>
-                        <input jsId='vlUploadQueueAutoOverlayExact2' dojoType='dijit.form.CheckBox'/>
-                    </td>
-                </tr>
-                <tr>
-                    <td>&vandelay.auto.import.auto_overlay_1match;</td>
-                    <td colspan='4'>
-                        <input jsId='vlUploadQueueAutoOverlay1Match2' dojoType='dijit.form.CheckBox'/>
-                    </td>
-                </tr>
-                <tr>
-                    <td>&vandelay.auto.import.auto_overlay_best;</td>
-                    <td colspan='4'><input jsId='vlUploadQueueAutoOverlayBestMatch2' dojoType='dijit.form.CheckBox'/></td>
-                </tr>
-                <tr>
-                    <td>&vandelay.auto.import.auto_overlay_best_ratio;</td>
-                    <td colspan='4'>
-                        <input style='width:3em' value='0.0' jsId='vlUploadQueueAutoOverlayBestMatchRatio2' dojoType='dijit.form.TextBox'/>
-                        <span style='padding-left: 10px; font-size:90%'>(&vandelay.auto.import.auto_overlay_best_ratio.desc;)</span>
-                    </td>
-                </tr>
-                <tr>
-                    <td>&vandelay.auto.import.ft_merge_profile;</td>
-                    <td colspan='4'>
-                        <div jsId='vlUploadFtMergeProfile2' dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
-                    </td>
-                </tr>
-                <tr>
-                    <td>
-                        <button dojoType='dijit.form.Button' jsId='queueItemsImportCancelButton'>Cancel</button>
-                    </td>
-                    <td>
-                        <button dojoType='dijit.form.Button' jsId='queueItemsImportGoButton'>Import</button>
-                    </td>
-                </tr>
-            </tbody>
-        </table>
-    </div>
-</div>
-
-
-
diff --git a/Open-ILS/src/templates/default/vandelay/inc/queueselect.tt2 b/Open-ILS/src/templates/default/vandelay/inc/queueselect.tt2
deleted file mode 100644 (file)
index 2149dfa..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<!-- Form for choosing which queue to view -->
-<h1>&vandelay.select.queue;</h1><br/>
-<table class='form_table'>
-    <tr>
-        <td>&vandelay.queue.type;</td>
-        <td>
-            <select jsId='vlQueueSelectType' dojoType='dijit.form.FilteringSelect' onchange='vlShowQueueSelect();'>
-                <option value='bib' selected='selected'>&vandelay.bib.records;</option>
-                <option value='auth'>&vandelay.auth.records;</option>
-            </select>
-        </td>
-    </tr>
-    <tr>
-        <td>&vandelay.queue;</td>
-        <td>
-            <select jsId='vlQueueSelectQueueList' dojoType='dijit.form.FilteringSelect'>
-            </select>
-        </td>
-    </tr>
-    <tr>
-        <td colspan='2'>
-            <button dojoType='dijit.form.Button' onclick='vlFetchQueueFromForm();'>&vandelay.retrieve.queue;</button>
-        </td>
-    </tr>
-</table>
diff --git a/Open-ILS/src/templates/default/vandelay/inc/toolbar.tt2 b/Open-ILS/src/templates/default/vandelay/inc/toolbar.tt2
deleted file mode 100644 (file)
index 144cd45..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<div dojoType="dijit.Toolbar" id='toolbar'>
-    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy" id='vl-menu-marc-export'
-        onclick="displayGlobalDiv('vl-marc-export-div');" showLabel="true">&vandelay.export.records;</div>
-    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-marc-upload'
-        onclick="displayGlobalDiv('vl-marc-upload-div');" showLabel="true">&vandelay.import.records;</div>
-    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-queue-select'
-        onclick="vlShowQueueSelect();" showLabel="true">&vandelay.inspect.queue;</div>
-    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-attr-editor'
-        onclick="vlShowAttrEditor();" showLabel="true">&vandelay.edit.attributes;</div>
-    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-profile-editor'
-        onclick="vlShowProfileEditor();" showLabel="true">&vandelay.edit.profiles;</div>
-    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-match-set-editor'
-        onclick="vlShowMatchSetEditor();" showLabel="true">&vandelay.edit.match_set;</div>
-    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-import-item-attr-editor'
-        onclick="vlShowImportItemAttrEditor();" showLabel="true">&vandelay.edit.import_item_attrs;</div>
-</div>
diff --git a/Open-ILS/src/templates/default/vandelay/inc/upload.tt2 b/Open-ILS/src/templates/default/vandelay/inc/upload.tt2
deleted file mode 100644 (file)
index 0c1bbd5..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<h1>&vandelay.marc.file.upload;</h1><br/>
-<form id="vl-marc-upload-form" enctype="multipart/form-data">
-    <input type='hidden' name='ses' id='vl-ses-input'/>
-    <table class='form_table'>
-        <tr>
-            <td>&vandelay.record.type;</td>
-            <td colspan='4'>
-                <select id='vl-record-type' dojoType='dijit.form.FilteringSelect' 
-                        jsId='vlUploadRecordType' onchange='vlShowUploadForm();'>
-                    <option value='bib' selected='selected'>&vandelay.bib.records;</option>
-                    <option value='auth'>&vandelay.auth.records;</option>
-                </select>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.create.upload.queue;</td>
-            <td>
-                <input type='text' dojoType='dijit.form.TextBox' id='vl-queue-name' size='32'></input>
-            </td>
-            <td>&vandelay.add.existing.queue;</td>
-            <td>
-                <select jsId='vlUploadQueueSelector' dojoType='dijit.form.FilteringSelect' required='false'>
-                </select>
-            </td>
-        </tr>
-        <tr>
-            <td>Record Match Set</td>
-            <td>
-                <input jsId='vlUploadQueueMatchSet'
-                    dojoType='dijit.form.FilteringSelect' labelAttr='name' searchAttr='name'/>
-            </td>
-        </tr>
-        <tr>
-            <td>Holdings Import Profile</td>
-            <td>
-                <input jsId='vlUploadQueueHoldingsImportProfile'
-                    dojoType='dijit.form.FilteringSelect' labelAttr='name' searchAttr='name'/>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.import.bib_sources;</td>
-            <td>
-                <select name='bib_source' jsId='vlUploadSourceSelector' 
-                    dojoType='dijit.form.FilteringSelect' labelAttr='source' searchAttr='source'/>
-            </td>
-        </tr>
-        <tr><td colspan='2' style='margin-top:10px;border-bottom:1px solid #888;border-top:2px solid #888'>
-            <b>&vandelay.import.actions;</b>
-        </td></tr>
-        <tr>
-            <td>&vandelay.auto.import.merge_profile;</td>
-            <td colspan='4'>
-                <div jsId='vlUploadMergeProfile' dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.auto.import.noncolliding;</td>
-            <td colspan='4'>
-                <input jsId='vlUploadQueueImportNoMatch' dojoType='dijit.form.CheckBox'/>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.auto.import.auto_overlay_exact;</td>
-            <td colspan='4'>
-                <input jsId='vlUploadQueueAutoOverlayExact' dojoType='dijit.form.CheckBox'/>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.auto.import.auto_overlay_1match;</td>
-            <td colspan='4'>
-                <input jsId='vlUploadQueueAutoOverlay1Match' dojoType='dijit.form.CheckBox'/>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.auto.import.auto_overlay_best;</td>
-            <td colspan='4'><input jsId='vlUploadQueueAutoOverlayBestMatch' dojoType='dijit.form.CheckBox'/></td>
-        </tr>
-        <tr>
-            <td>&vandelay.auto.import.auto_overlay_best_ratio;</td>
-            <td colspan='4'>
-                <input style='width:3em' value='0.0' jsId='vlUploadQueueAutoOverlayBestMatchRatio' dojoType='dijit.form.TextBox'/>
-                <span style='padding-left: 10px; font-size:90%'>(&vandelay.auto.import.auto_overlay_best_ratio.desc;)</span>
-            </td>
-        </tr>
-        <tr>
-            <td>&vandelay.auto.import.ft_merge_profile;</td>
-            <td colspan='4'>
-                <div jsId='vlUploadFtMergeProfile' dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
-            </td>
-        </tr>
-
-        <tr><td colspan='2' style='border-bottom:2px solid #888;'></td></tr>
-        <tr><td colspan='2' style='padding-bottom: 10px;'></td></tr>
-        <tr>
-            <td colspan='5'>
-                <span id="vl-file-label">&vandelay.file.to.upload;</span>
-                <input size='48' style='border:1px solid #888;' type="file" name="marc_upload"/>
-                <span style='margin-left:10px;'><button dojoType="dijit.form.Button" onclick="batchUpload()">&vandelay.upload;</button></span>
-            </td>
-        </tr>
-    </table>
-</form>
-
diff --git a/Open-ILS/src/templates/default/vandelay/vandelay.tt2 b/Open-ILS/src/templates/default/vandelay/vandelay.tt2
deleted file mode 100644 (file)
index 78f23a8..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-[% WRAPPER 'default/base.tt2' %]
-[% ctx.page_title = 'MARC Import/Export' %]
-[% ctx.dtd = '<!DOCTYPE html SYSTEM "'_ ctx.web_dir _'/opac/locale/' _ ctx.locale _ '/vandelay.dtd">' %]
-
-<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/vandelay/vandelay.js'> </script>
-<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/vandelay.css'/>
-<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/theme/[% ctx.skin %]/vandelay.css'/>
-
-<div dojoType="dijit.layout.ContentPane" layoutAlign='top' id="vl-nav-bar" style="visibility: hidden;">
-    [% INCLUDE 'default/vandelay/inc/toolbar.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
-    [% INCLUDE 'default/vandelay/inc/progress.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-marc-export-div' class='hidden content'>
-    [% INCLUDE 'default/vandelay/inc/export.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-marc-upload-div' class='hidden content'>
-    [% INCLUDE 'default/vandelay/inc/upload.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-queue-div' class='hidden content'>
-    [% INCLUDE 'default/vandelay/inc/queue.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-match-div' class='hidden content'>
-    [% INCLUDE 'default/vandelay/inc/matches.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-marc-html-div' class='hidden content'>
-    [% INCLUDE 'default/vandelay/inc/marchtml.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-queue-select-div' class='hidden content'>
-    [% INCLUDE 'default/vandelay/inc/queueselect.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client"  id="vl-attr-editor-div" 
-        class='hidden attr-editor-detail-content-pane content' title='&vandelay.edit.attrs;'>
-    [% INCLUDE 'default/vandelay/inc/attrs.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-profile-editor-div' class='hidden content'>
-    [% INCLUDE 'default/vandelay/inc/profiles.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-match-set-editor-div' class='hidden content'>
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-item-attr-editor-div' class='hidden content'>
-    [% INCLUDE 'default/vandelay/inc/item_attrs.tt2' %]
-</div>
-<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-import-error-div' class='hidden content'>
-    [% INCLUDE 'default/vandelay/inc/import_errors.tt2' %]
-</div>
-
-
-[% END %]
diff --git a/Open-ILS/src/templates/footer.tt2 b/Open-ILS/src/templates/footer.tt2
new file mode 100644 (file)
index 0000000..2b087d2
--- /dev/null
@@ -0,0 +1,2 @@
+Powered By <img src='[% ctx.media_prefix %]/images/eg_tiny_logo.jpg'/>
+
diff --git a/Open-ILS/src/templates/header.tt2 b/Open-ILS/src/templates/header.tt2
new file mode 100644 (file)
index 0000000..eb308f7
--- /dev/null
@@ -0,0 +1,11 @@
+<div id='oils-base-header-content-div'>
+    <span id='oils-base-header-user-info'> </span>
+    <script type="text/javascript">
+        /*
+        dojo.addOnLoad(function(){
+            dojo.byId('oils-base-header-user-info').appendChild(
+                document.createTextNode(openils.User.user.usrname()));
+        });
+        */
+    </script>
+</div>
diff --git a/Open-ILS/src/templates/menu.tt2 b/Open-ILS/src/templates/menu.tt2
new file mode 100644 (file)
index 0000000..fcd1992
--- /dev/null
@@ -0,0 +1,127 @@
+<div id='oils-menu-div'>
+    <div dojoType="dijit.Toolbar" class='menuBar'>
+
+        <div dojoType="dijit.form.DropDownButton">
+            <span>Acquisitions</span>
+            <div dojoType="dijit.Menu">
+
+                <!-- ==========================================================================
+                     Picklist SubMenu
+                    ========================================================================== -->
+                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
+                    <span>Selection Lists</span>
+                     <div dojoType="dijit.Menu">
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                            onClick="location.href = '[% ctx.base_path %]/acq/picklist/list';">
+                            My Selection Lists
+                        </div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                            onClick="location.href = '[% ctx.base_path %]/acq/picklist/bib_search';">
+                            Title Search
+                        </div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                            onClick="location.href = '[% ctx.base_path %]/acq/picklist/upload';">
+                            Load Records
+                        </div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                            onClick="location.href = '[% ctx.base_path %]/acq/picklist/brief_record';">
+                            New Brief Record
+                        </div>
+                    </div>
+                </div>
+
+                <!-- ==========================================================================
+                     Purchase Order SubMenu
+                    ========================================================================== -->
+                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
+                    <span>Purchase Orders</span>
+                     <div dojoType="dijit.Menu">
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                            onClick="location.href = '[% ctx.base_path %]/acq/po/search';">
+                            PO Search
+                        </div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                            onClick="location.href = '[% ctx.base_path %]/acq/lineitem/search';">
+                            Lineitem Search
+                        </div>
+                        <!-- XXX 
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                            onClick="location.href = '[% ctx.base_path %]/acq/po/marc_upload';">
+                            Load Vendor Order Records
+                        </div>
+                        -->
+                    </div>
+                </div>
+                <!-- ==========================================================================
+                     Receiving SubMenu
+                    ========================================================================== -->
+                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
+                    <span>Receiving</span>
+                    <div dojoType="dijit.Menu">
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                            onClick="location.href = '[% ctx.base_path %]/acq/receiving/process';">
+                                Receiving
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div dojoType="dijit.form.DropDownButton">
+            <span>Admin</span>
+            <div dojoType="dijit.Menu">
+                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
+                    <span>Acquisitions</span>
+                     <div dojoType="dijit.Menu">
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                            onClick="location.href = '[% ctx.base_path %]/acq/fund/list';">Funds</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/acq/funding_source/list';">Funding Sources</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/acq/provider';">Providers</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/acq/currency_type/list';">Currency Types</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/acq/exchange_rate';">Exchange Rates</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/acq/distribution_formula';">Distribution Formulas</div>
+                    </div>
+                </div>
+                <div dojoType="dijit.PopupMenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy">
+                    <span>Config</span>
+                     <div dojoType="dijit.Menu">
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/billing_type';">Billing Types</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/standing_penalty';">Standing Penalties</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/permission/grp_penalty_threshold';">
+                                    Group Penalty Thresholds</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/idl_field_doc';">Field Documentation</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/z3950_source';">Z39.50 Sources</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/config/circ_modifier';">Circulation Modifiers</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy" 
+                                onClick="location.href = '[% ctx.base_path %]/conify/global/action_trigger/event_definition';">Action Trigger</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                             onClick="location.href = '[% ctx.base_path %]/conify/global/action/survey';">Surveys</div>
+                        <div dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
+                             onClick="location.href = '[% ctx.base_path %]/conify/global/config/org_unit_setting_type';">Org Unit Setting Types</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+    <script type="text/javascript">
+        dojo.require('openils.XUL');
+        if(openils.XUL.isXUL()) 
+            openils.Util.hide('oils-menu-div')
+        dojo.require('dijit.form.Button');
+        dojo.require('dijit.Toolbar');
+        dojo.require('dijit.Menu');
+    </script>
+
diff --git a/Open-ILS/src/templates/opac/advanced.tt2 b/Open-ILS/src/templates/opac/advanced.tt2
new file mode 100644 (file)
index 0000000..23066bf
--- /dev/null
@@ -0,0 +1,30 @@
+[%  PROCESS "opac/parts/header.tt2";
+    WRAPPER "opac/parts/base.tt2";
+    INCLUDE "opac/parts/topnav.tt2";
+    ctx.page_title = l("Advanced Search");
+    pane = CGI.param("pane") || "advanced" %]
+    <div id="search-wrapper">
+        [% INCLUDE "opac/parts/printnav.tt2" %]
+        <div id="adv_search_parent">
+            <div id="adv_search_tabs">
+                <a href="?pane=advanced" alt="[% l('Advanced Search') %]" [% IF pane == 'advanced' %]class="on" [% END %]id="adv_search"></a>
+                <a href="?pane=numeric" alt="[% l('Numeric Search') %]" [% IF pane == 'numeric' %]class="on" [% END %]id="num_search"></a>
+                <a href="?pane=expert" alt="[% l('Expert Search') %]" [% IF pane == 'expert' %]class="on" [% END %]id="expert_search"></a>
+            </div>
+        </div>
+    </div>
+    <div id="content-wrapper">
+        <div id="main-content">
+            <div class="advanced_div">
+            [% IF pane == 'advanced' %]
+            [% INCLUDE "opac/parts/advanced/search.tt2" %]
+            [% ELSIF pane == 'numeric' %]
+            [% INCLUDE "opac/parts/advanced/numeric.tt2" %]
+            [% ELSIF pane == 'expert' %]
+            [% INCLUDE "opac/parts/advanced/expert.tt2" %]
+            [% END %]
+            </div>
+            <div class="common-full-pad"></div>        
+        </div>
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/cnbrowse.tt2 b/Open-ILS/src/templates/opac/cnbrowse.tt2
new file mode 100644 (file)
index 0000000..6e0ad0b
--- /dev/null
@@ -0,0 +1,21 @@
+[%  # This is the stand-alone call-number browser.  This mainly wraps around
+    # the same guts as the "shelf browser" part of a record results page.
+
+    PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/base.tt2";
+    INCLUDE "opac/parts/topnav.tt2";
+    ctx.page_title = l("Call Number Browse"); %]
+    <div id="search-wrapper">
+        [% INCLUDE "opac/parts/printnav.tt2" %]
+        [% INCLUDE "opac/parts/searchbar.tt2" %]
+    </div>
+    <div id="content-wrapper">
+        <div id="main-content">
+            <div class="cnbrowse_div">
+                [% INCLUDE "opac/parts/record/cnbrowse.tt2" %]
+            </div>
+            <div class="common-full-pad"></div>        
+        </div>
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/home.tt2 b/Open-ILS/src/templates/opac/home.tt2
new file mode 100644 (file)
index 0000000..fa64e65
--- /dev/null
@@ -0,0 +1,16 @@
+[%  PROCESS "opac/parts/header.tt2";
+    WRAPPER "opac/parts/base.tt2";
+    INCLUDE "opac/parts/topnav.tt2";
+    ctx.page_title = l("Home") %]
+    <div id="search-wrapper">
+        [% INCLUDE "opac/parts/printnav.tt2" %]
+        [% INCLUDE "opac/parts/searchbar.tt2" %]
+    </div>
+    <div id="content-wrapper">
+        <div id="main-content-home">
+            <div class="common-full-pad"></div>
+            [% INCLUDE "opac/parts/homesearch.tt2" %]
+            <div class="common-full-pad"></div>        
+        </div>
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/login.tt2 b/Open-ILS/src/templates/opac/login.tt2
new file mode 100644 (file)
index 0000000..b5741e2
--- /dev/null
@@ -0,0 +1,27 @@
+[%  PROCESS "opac/parts/header.tt2";
+    WRAPPER "opac/parts/base.tt2";
+    INCLUDE "opac/parts/topnav.tt2";
+    ctx.page_title = l("Account Login") %]
+    <div id="search-wrapper">
+        [% INCLUDE "opac/parts/printnav.tt2" %]
+        [% INCLUDE "opac/parts/searchbar.tt2" %]
+    </div>
+    <div id="content-wrapper">
+        <div id="main-content">
+            [% INCLUDE "opac/parts/login/form.tt2" %]
+            <div class="clear-both very-big-height"></div>     
+            <script type="text/javascript">
+                /* Note: when common browsers suppor HTML5 "autofocus", we can remove this */
+                var _onload = window.onload;
+                window.onload = function() {
+                    try {
+                        document.getElementById("username_field").focus();
+                        if (_onload) _onload();
+                    } catch (E) {
+                        void(0);
+                    }
+                };
+            </script>
+        </div>
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/mylist.tt2 b/Open-ILS/src/templates/opac/mylist.tt2
new file mode 100644 (file)
index 0000000..ac24efd
--- /dev/null
@@ -0,0 +1,20 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/base.tt2";
+    INCLUDE "opac/parts/topnav.tt2";
+    ctx.page_title = l("Record Detail") %]
+    <div id="search-wrapper">
+        [% INCLUDE "opac/parts/printnav.tt2" %]
+        [% INCLUDE "opac/parts/searchbar.tt2" %]
+    </div>
+    <div id="content-wrapper">
+        <div id="main-content">
+            [%  IF ctx.mylist.size;
+                    INCLUDE "opac/parts/anon_list.tt2";
+                ELSE %]
+                <div class="opac-auto-171 opac-auto-097">[% l("You have not created a list yet."); %]</div>
+                [% END %]
+            <div class="common-full-pad"></div>        
+        </div>
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/circ_history.tt2 b/Open-ILS/src/templates/opac/myopac/circ_history.tt2
new file mode 100644 (file)
index 0000000..feb5bfa
--- /dev/null
@@ -0,0 +1,102 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "circs"
+    limit = ctx.circ_history_limit;
+    offset = ctx.circ_history_offset;
+%]
+
+<div style="padding:0px;">
+    
+    <div id="acct_checked_tabs" style="padding-bottom: 12px;color:#666;">
+        <div class="align selected">
+            <a href='circs'><img src="[% ctx.media_prefix %]/images/sub_checked_out_off.jpg"/></a>
+        </div>
+        <div class="align">
+            <img src="[% ctx.media_prefix %]/images/sub_checked_hist_on.jpg"/>
+        </div>
+        <div class="clear-both"></div>
+    </div>
+
+    <div class="header_middle">
+        <span class="float-left">[% l('Previously Checked Out Items') %]</span>
+        <span class='float-left' style='padding-left: 10px;'>
+            <a href='circ_history?limit=[% limit %]&amp;offset=[% offset - limit %]'
+                [% IF offset == 0 %] class='invisible' [% END %]><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
+            [%# TODO: get total to prevent paging off then end of the list.. %]
+            <a href='circ_history?limit=[% limit %]&amp;offset=[% offset + limit %]'
+               [% IF ctx.circs.size < limit %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
+        </span>
+        <span class="float-right">
+            <a class="hide_me" href="#">[% l('Export List') %]</a>
+        </span>
+    </div>
+    <div class="clear-both"></div>
+
+    [% IF ctx.circs.size < 1 %]
+    <div class="warning_box">
+        <big><strong>[% l('There are no items in your circulation history.') %]</strong></big>
+    </div>
+    [% ELSE %]
+
+    <div id='checked_main'>
+        <table style='border-collapse:collapse;'>
+            <thead id="acct_checked_main_header">
+                <tr>
+                    <td width="32%" style="padding-left:5px;">
+                        <span title="Click to sort" class='pointer'>[% l('Title') %]</span> /
+                        <span title="Click to sort" class='pointer'>[% l('Author') %]</span>
+                    </td>
+                    <td width="10%" style="padding-left:5px;">
+                        <span title="Click to sort" class='pointer'>[% l('Checkout Date') %]</span>
+                    </td>
+                    <td width="10%" style="padding-left:5px;">
+                        <span title="Click to sort" class='pointer'>[% l('Due Date') %]</span>
+                    </td>
+                    <td width="10%" style="padding-left:5px;">
+                        <span title="Click to sort" class='pointer'>[% l('Date Returned') %]</span>
+                    </td>
+                    <td width="16%">
+                        <span title="Click to sort" class='pointer'>[% l('Barcode') %]</span>
+                    </td>
+                    <td width="22%">
+                        <span title="Click to sort" class='pointer'>[% l('Call Number') %]</span>
+                    </td>
+                </tr>
+            </thead>
+            <tbody>
+                [% FOR circ IN ctx.circs;
+                    attrs = {marc_xml => circ.marc_xml};
+                    PROCESS get_marc_attrs args=attrs; %]
+                    <tr>
+                        <td style="padding-left:5px;padding-bottom:10px;">
+                            <a href="[% ctx.opac_root %]/record/[% circ.circ.target_copy.call_number.record.id %]" 
+                                name="[% l('Catalog record') %]">[% attrs.title | html %]</a>
+                            [% IF attrs.author %] /
+                            <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
+                            [% END %]
+                        </td>
+                        <td style="padding-left:5px;">
+                            [% date.format(ctx.parse_datetime(circ.circ.xact_start),DATE_FORMAT); %]
+                        </td>
+                        <td style="padding-left:5px;">
+                            [% date.format(ctx.parse_datetime(circ.circ.due_date),DATE_FORMAT); %]
+                        </td>
+                        <td style="padding-left:5px;">
+                            [% 
+                                IF circ.circ.checkin_time; 
+                                    date.format(ctx.parse_datetime(circ.circ.checkin_time),DATE_FORMAT); 
+                                ELSE; %]
+                                <span style='color:blue;'>*</span><!-- meh -->
+                            [% END; %]
+                        </td>
+                        <td>[% circ.circ.target_copy.barcode | html %]</td>
+                        <td>[% circ.circ.target_copy.call_number.label | html %]</td>
+                    </tr>
+                [% END %]
+            </tbody>
+        </table>
+    </div>
+    [% END %]
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/circs.tt2 b/Open-ILS/src/templates/opac/myopac/circs.tt2
new file mode 100644 (file)
index 0000000..4b474c1
--- /dev/null
@@ -0,0 +1,166 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "circs"  %]
+<div id='myopac_checked_div' style="padding:0px;">
+
+    <div id="acct_checked_tabs" style="padding-bottom: 12px;color:#666;">
+        <div class="align selected">
+            <img src="[% ctx.media_prefix %]/images/sub_checked_out_on.jpg" />
+        </div>
+        <div class="align">
+            <a href="circ_history"><img
+                src="[% ctx.media_prefix %]/images/sub_checked_hist_off.jpg" /></a>
+        </div>
+        <div class="clear-both"></div>
+    </div>
+
+    <div class="header_middle">
+        <span class="float-left">[% l('Current Items Checked Out') %]</span>
+        <span class="float-right">
+            <a class="hide_me" href="#">[% l('Export List') %]</a>
+        </span>
+    </div>
+    <div class="clear-both"></div>
+    [% IF ctx.circs.size < 1 %]
+    <div class="warning_box">
+        <big><strong>[% l('You have no items checked out.') %]</strong></big>
+    </div>
+    [% ELSE %]
+    [% IF ctx.success_renewals %]
+    <div class="renew-summary">
+        [% l("Successfully renewed [_1] item(s)", ctx.success_renewals) %]
+    </div>
+    [% END %]
+    [% IF ctx.failed_renewals %]
+    <div class="renew-summary red">
+        [% l("Failed to renew [_1] item(s)", ctx.failed_renewals) %]
+    </div>
+    [% END %]
+    <div id='checked_main'>
+        <form method="POST" id="circ-form"
+            onsubmit="return confirm('[% l("Are you sure you wish to renew the selected item(s)?") %]');">
+        <table cellpadding='0' cellspacing='0' class="item_list_padding">
+            <tr>
+                <td>
+                    <select name="action">
+                        <option value="renew">[% l('Renew Selected Titles') %]</option>
+                    </select>
+                </td>
+                <td style="padding-left:9px;">
+                    <input type="image"
+                        alt="[% l('Go') %]" title="[% l('Go') %]"
+                        src="[% ctx.media_prefix %]/images/go-btn.png" /></a>
+                </td>
+                <td style="padding-left:5px;">
+                    <a href="#"><img alt="Renewing Help"
+                        src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
+                </td>
+            </tr>
+        </table>
+        <table id="acct_checked_main_header" cellpadding='0' cellspacing='0'
+            border='0'>
+            <tr>
+                <td width="1%" style="padding-left:10px;">
+                    <input type="checkbox" id="check_all_checked"
+                        onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'circ' && !inputs[i].disabled) inputs[i].checked = this.checked;}"
+                    />
+                </td>
+                <td width="40%" style="padding-left:5px;">
+                    <span title="Click to sort" class='pointer'>
+                        Title
+                    </span> /
+                    <span title="Click to sort" class='pointer'>
+                        Author
+                    </span>
+                </td>
+                <td width="8%" style="padding-right:5px;" align="center">
+                    <span title="Click to sort" class='pointer'>Renews<br />Left
+                    </span>
+                </td>
+                <td width="13%" style="padding-left:5px;">
+                    <span title="Click to sort" class='pointer'>Due Date</span>
+                </td>
+                <td width="16%">
+                    <span title="Click to sort" class='pointer'>barcode</span>
+                </td>
+                <td width="22%">
+                    <span title="Click to sort" class='pointer'>call number</span>
+                </td>
+            </tr>
+        </table>
+   
+        <div id="checked_temp_parent">
+            <div id="acct_checked_temp">
+                <table cellpadding='0' cellspacing='0' border='0'
+                    style="margin-top:5px;">
+                    [% FOR circ IN ctx.circs;
+                        attrs = {marc_xml => circ.marc_xml};
+                        PROCESS get_marc_attrs args=attrs; %]
+                    <tr>
+                        <td width="1%" style="padding-left:10px;" valign="top">
+                            <input type="checkbox" name="circ"
+                                [% IF circ.circ.renewal_remaining < 1; l('disabled="disabled"'); END %]
+                                value="[% circ.circ.id %]" />
+                        </td>
+                        <td width="40%"
+                            style="padding-left:5px;padding-bottom:10px;"
+                            name="author">
+                            <a href="[% ctx.opac_root %]/record/[% circ.circ.target_copy.call_number.record.id %]" name="[% l('Catalog record') %]">[% attrs.title | html %]</a>
+                            [% IF attrs.author %] /
+                            <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
+                            [% END %]
+                        </td>
+                        <td width="8%" name="renewals" align="center">
+                            [% circ.circ.renewal_remaining %]
+                        </td>
+                        <td width="13%" style="padding-left:5px;"
+                            name="due_date">
+                            [% date.format(ctx.parse_datetime(circ.circ.due_date),DATE_FORMAT) %]
+                        </td>
+                        <td width="16%" name="barcode">
+                            [% circ.circ.target_copy.barcode | html %]
+                        </td>
+                        <td width="22%" name="call_number">
+                            [% circ.circ.target_copy.call_number.label | html %]
+                        </td>
+                    </tr>
+                    [%  IF circ.renewal_response AND
+                            circ.renewal_response.textcode != 'SUCCESS' %]
+                    <tr>
+                        <td colspan="6">[%# XXX colspan="0" does not work in IE %]
+                            <span class="failure-text" title="[% circ.renewal_response.textcode | html %] / [% circ.renewal_response.payload.fail_part | html %]">
+                                [% (circ.renewal_response.desc || circ.renewal_response.payload.fail_part || circ.renewal_response.textcode) | html %]
+                            </span>
+                        </td>
+                    </tr>
+                    [%  END;
+                    END %]
+                </table>
+            </div>
+        </div>
+        </form>
+    </div>
+    [% END %]
+    <div id='non_cat_circs_div' class='hide_me'>
+        <br/>
+        <div style='text-align: center'><b>[% l("Other Circulations") %]</b></div>
+        <table class='data_grid' width='100%'>
+            <thead>
+                <tr>
+                    <td>[% l("Circulating Library") %]</td>
+                    <td>[% l("Circulation Type") %]</td>
+                    <td>[% l("Please return by ...") %]</td>
+                </tr>
+            </thead>
+            <tbody id='non_cat_circs_tbody'>
+                <tr id='non_cat_circs_row'>
+                    <td name='circ_lib'/>
+                    <td name='item_type'/>
+                    <td name='circ_time'/>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/hold_history.tt2 b/Open-ILS/src/templates/opac/myopac/hold_history.tt2
new file mode 100644 (file)
index 0000000..9fdfd8b
--- /dev/null
@@ -0,0 +1,127 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "holds"  
+    limit = ctx.hold_history_limit;
+    offset = ctx.hold_history_offset;
+%]
+
+<div id='myopac_holds_div'>
+
+    <div id="acct_holds_tabs" style="padding-bottom: 12px;color:#666;">
+        <div class="align selected">
+            <a href='holds'><img src="[% ctx.media_prefix %]/images/sub_holds_off.jpg"/></a>
+        </div>
+        <div class="align">
+            <img src="[% ctx.media_prefix %]/images/sub_holds_hist_on.jpg"/>
+        </div>
+        <div class="clear-both"></div>
+    </div>
+
+    <div class="header_middle">
+        <span style="float:left;">[% l("Previously Held Items") %]</span>
+        <span class='float-left' style='padding-left: 10px;'>
+            <a href='hold_history?limit=[% limit %]&amp;offset=[% offset - limit %]'
+                [% IF offset == 0 %] class='invisible' [% END %]><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
+            [%# TODO: get total to prevent paging off then end of the list.. %]
+            <a href='hold_history?limit=[% limit %]&amp;offset=[% offset + limit %]'
+               [% IF ctx.holds.size < limit %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
+        </span>
+        <span style="float:right;">
+            <a class="hide_me" href="#">Export List</a>
+        </span>
+    </div>
+    <div class="clear-both"></div>
+
+    <div id='holds_main'>
+        [% IF ctx.holds.size < 1 %]
+        <div class="warning_box">
+            <big><strong>[% l('No holds found.') %]</strong></big>
+        </div>
+        [% ELSE %]
+        <table style='border-collapse:collapse; width: 100%;'>
+            <thead id='acct_holds_main_header'>
+                <tr>
+                    <td width="138"><span>[% l('Title') %]</span></td>
+                    <td width="123"><span>[% l('Author') %]</span></td>
+                    <td width="64"> <span>[% l('Format') %]</span></td>
+                    <td width="136"><span>[% l('Pickup Location') %]</span> </td>
+                    <td width="104">[% l('Active On') %]</td>
+                    <td width="95">[% l('Active') %]</td>
+                    <td width="106">[% l('Date Fulfilled') %]</td>
+                    <td width="172"><span>[% l('Status') %]</span></td>
+                </tr>
+            </thead>
+            <tbody>
+                [% FOR hold IN ctx.holds;
+                    attrs = {marc_xml => hold.marc_xml};
+                    PROCESS get_marc_attrs args=attrs;
+                    ahr = hold.hold.hold %]
+
+                <tr id="acct_holds_temp" name="acct_holds_temp" class="acct_holds_temp">
+
+                    <td width="138">
+                        <div style="margin-top:10px;margin-bottom:10px;">
+                            <a href="[% ctx.opac_root %]/record/[% hold.hold.bre.id %]">[% attrs.title | html %]</a>
+                        </div>
+                    </td>
+                    <td width="123">
+                        <div style="margin-top:10px;margin-bottom:10px;">
+                            <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
+                        </div>
+                    </td>
+                    <td width="64">
+                        <div style="width:26px;height:23px;margin-top:6px;margin-bottom:6px;">
+                            [% IF attrs.format_icon %]
+                            <img src="[% ctx.media_prefix %]/images/[% attrs.form_icon %]"
+                                title="[% attrs.format %]" alt="[% attrs.format %]" />
+                            [% ELSE;
+                                attrs.format;
+                               END %]
+                        </div>
+                    </td>
+                    <td width="136">
+                        [% ctx.get_aou(ahr.pickup_lib).name | html %]
+                    </td>
+                    <td width="104">
+                        [% IF ahr.frozen == 't' AND ahr.thaw_date;
+                            date.format(ctx.parse_datetime(ahr.thaw_date), DATE_FORMAT);
+                        END %]
+                    </td>
+                    <td width="95">
+                        [% l(ahr.frozen == 'f' ? 'Active' : 'Suspended') %]
+                    </td>
+                    <td width="106">
+                        [% IF ahr.fulfillment_time;
+                            date.format(ctx.parse_datetime(ahr.fulfillment_time), DATE_FORMAT);
+                        END %]
+                    </td>
+                    <td width="110">
+                        <div name="acct_holds_status"
+                            style="margin-top:10px;margin-bottom:10px;">
+                            [%
+                                IF hold.hold.status == 4;
+                                    l("Available");
+                                    IF ahr.shelf_expire_time;
+                                        l('<br/>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;
+                            %]
+                        </div>
+                    </td>
+                </tr>
+                [% END %]
+            </tbody>
+        </table>
+        [% END %]
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/holds.tt2 b/Open-ILS/src/templates/opac/myopac/holds.tt2
new file mode 100644 (file)
index 0000000..4690f67
--- /dev/null
@@ -0,0 +1,228 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "holds"  %]
+<div id='myopac_holds_div'>
+
+    <div id="acct_holds_tabs" style="padding-bottom: 12px;color:#666;">
+        <div class="align selected">
+            <img src="[% ctx.media_prefix %]/images/sub_holds_on.jpg"/>
+        </div>
+        <div class="align">
+            <a href='hold_history'><img src="[% ctx.media_prefix %]/images/sub_holds_hist_off.jpg"/></a>
+        </div>
+        <div class="clear-both"></div>
+    </div>
+
+    <div class="header_middle">
+        <span id="acct_holds_header" style="float:left;">
+            [%  IF CGI.param("available");
+                    l("Items Ready for Pickup");
+                ELSE;
+                    l("Current Items on Hold");
+                END
+            %]
+        </span>
+        <span style="float:right;">
+            <a class="hide_me" href="#">Export List</a>
+        </span>
+    </div>
+    <div class="clear-both"></div>
+    <div id='holds_main'>
+        <form method="POST">
+        <table cellpadding='0' cellspacing='0' class="opac-auto-097">
+            <tr>
+                <td width="1">
+                    <select name="action" id="acct_holds_actions">
+                        <option id='myopac_holds_actions_none' value=''>
+                        -- [% l("Actions for selected holds") %] --
+                        </option>
+                        <option value='suspend'>
+                            [% l("Suspend") %]
+                        </option>
+                        <option value='activate'>
+                            [% l("Activate") %]
+                        </option>
+                        <!-- XXX maybe later <option value='thaw_date'>
+                            [% l("Set Active Date") %]
+                        </option> -->
+                        <option value='cancel'>
+                            [% l("Cancel") %]
+                        </option>
+                    </select>
+                </td>
+                <td width="1" style="padding-left:9px;">
+                    <input type="image"
+                        alt="[% l('Go') %]" title="[% l('Go') %]"
+                        src="[% ctx.media_prefix %]/images/go-btn.png" />
+                </td>
+                <td width="1" style="padding-left:5px;">
+                    <a href="#"><img
+                        alt="Holds Help"
+                        src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
+                </td>
+                <td align="right">
+                    [% l("Show") %] &nbsp; &nbsp;
+                    [% IF CGI.param("available") %]
+                    <a href="holds">[% l('all') %]</a> |
+                    <strong>[% l("only available") %]</strong>
+                    [% ELSE %]
+                    <strong>[% l("all") %]</strong> |
+                    <a href="holds?available=1">[% l("only available") %]</a>
+                    [% END %] &nbsp; &nbsp;
+                    [% l("holds") %]
+                    <select class="hide_me" id="holds_sort">
+                        <option value="">-- Sort By --</option>
+                        <option value="title">Title</option>
+                        <option value="pickup">PickUp Location</option>
+                        <option value="status">Status</option>
+                    </select>
+                </td>
+            </tr>
+        </table>
+        [% IF ctx.holds.size < 1 %]
+        <div class="warning_box">
+            <big><strong>[% l('No holds found.') %]</strong></big>
+        </div>
+        [% ELSE %]
+        <table id="acct_holds_main_header" cellpadding='0' cellspacing='0'
+            border='0' width="100%">
+            <tr>
+                <td width="36" align="center">
+                    <input type="checkbox" onclick="var inputs=document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].name == 'hold_id' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
+                </td>
+                <td width="138">
+                    <span title="Click to sort"
+                        style="cursor:pointer;">
+                        Title
+                    </span>
+                </td>
+                <td width="123">
+                    <span title="Click to sort" style="cursor:pointer;">Author</span>
+                </td>
+                <td width="64">
+                    <span title="Click to sort"
+                        style="cursor:pointer;">Format</span>
+                </td>
+                <td width="136">
+                    <span title="Click to sort"
+                        style="cursor:pointer;">Pickup Location</span>
+                </td>
+                <td width="104">Activate</td>
+                <td width="106">Cancel if not<br />filled by</td>
+                <td width="95">Active</td>
+                <td width="172">
+                    <span title="Click to sort"
+                        style="cursor:pointer;">Status</span>
+                </td>
+            </tr>
+        </table>
+        <div class="hide_me">
+            <select id="hold_pickup_lib_temp" name="hold_pickup_lib_sel"
+                class="hide_me" style="width:125px;height:21px;"></select>
+        </div>
+
+        <table cellpadding='0' cellspacing='0' border='0' width="100%">
+            <tbody id="holds_temp_parent">
+                [% FOR hold IN ctx.holds;
+                    attrs = {marc_xml => hold.marc_xml};
+                    PROCESS get_marc_attrs args=attrs;
+                    ahr = hold.hold.hold %]
+                <tr id="acct_holds_temp" name="acct_holds_temp"
+                    class="acct_holds_temp[% ahr.frozen == 't' ? ' inactive-hold' : '' %]">
+                    <td width="36" align="center" style="text-align:center;">
+                        <input type="checkbox" name="hold_id" value="[% ahr.id %]" />
+                    </td>
+                    <td width="138">
+                        <div style="margin-top:10px;margin-bottom:10px;">
+                            <a href="[% ctx.opac_root %]/record/[% hold.hold.bre.id %]">[% attrs.title | html %]</a>
+                        </div>
+                    </td>
+                    <td width="123">
+                        <div style="margin-top:10px;margin-bottom:10px;">
+                            <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
+                        </div>
+                    </td>
+                    <td width="64">
+                        <div style="width:26px;height:23px;margin-top:6px;margin-bottom:6px;">
+                            [% IF attrs.format_icon %]
+                            <img src="[% ctx.media_prefix %]/images/[% attrs.form_icon %]"
+                                title="[% attrs.format %]" alt="[% attrs.format %]" />
+                            [% ELSE;
+                                attrs.format;
+                               END %]
+                        </div>
+                    </td>
+                    <td width="136">
+                        [% ctx.get_aou(ahr.pickup_lib).name | html %]
+                    </td>
+                    <td width="104">
+                        <!-- <input
+                            title="Enter a date (e.g. 10/21/2010)"
+                            class="hide_me" style="width:91px;"
+                            name="activate_box" type="text" /> -->
+                        [% IF ahr.frozen == 't' AND
+                                ahr.thaw_date;
+                            date.format(ctx.parse_datetime(ahr.thaw_date), DATE_FORMAT);
+                        END %]
+                    </td>
+                    <td width="106">
+                        <!-- <input title="[% l('Enter a date (e.g. 10/21/2010)') %]"
+                            class="hide_me" style="width:91px;"
+                            name="hold_expires_box" type="text" />-->
+                        [% IF ahr.expire_time;
+                            date.format(ctx.parse_datetime(ahr.expire_time), DATE_FORMAT);
+                        END %]
+                    </td>
+                    <td width="95">
+                        <!-- <select name="hold_active_sel"
+                            style="width:90px;" class="hide_me">
+                            <option value="f">Active</option>
+                            <option value="t">Suspended</option>
+                        </select> -->
+                        [% l(ahr.frozen == 'f' ? 'Active' : 'Suspended') %]
+                    </td>
+                    <td width="110">
+                        <div name="acct_holds_status"
+                            style="margin-top:10px;margin-bottom:10px;">
+                            [% PROCESS get_hold_status hold=hold; %]
+                        </div>
+                    </td>
+                    <td class="opac-auto-161">
+                        <a href="[% ctx.opac_root %]/myopac/holds/edit?id=[% ahr.id %]">Edit</a>
+                    </td>
+                </tr>
+                [% END %]
+            </tbody>
+        </table>
+        [% END %]
+        </form>
+    </div>
+
+    <span id='myopac.holds.cancel.confirm' class='hide_me'>[% l("Are you sure you wish to cancel the selected holds?") %]</span>
+    <span id='myopac.holds.freeze.confirm' class='hide_me'>[% l("Are you sure you wish to suspend the selected holds?  If an item has already been selected to fulfill the hold, it will not be suspended") %]</span>
+    <span id='myopac.holds.thaw.confirm' class='hide_me'>[% l("Are you sure you wish to activate the selected holds?") %]</span>
+    <span id='myopac.holds.thaw_date.confirm' class='hide_me'>[% l("Are you sure you wish to change the activate date for the selected holds?") %]</span>
+    <span id='myopac.holds.freeze.select_thaw' class='hide_me'>[% l("Select an automatic activation date.  If no date is chosen, the holds will remain suspended until they are manually activated.") %]</span>
+
+    <table width='100%' id='myopac_holds_processing' class='hide_me'>
+        <tr><td>[% l("Processing holds... This may take a moment.") %]</td></tr>
+    </table>
+   
+    <span class='hide_me' id='myopac_holds_cancel_verify'>
+       [% l("If you wish to cancel the selected hold, click OK, otherwise click Cancel.") %]
+    </span>
+</div>
+<div id='myopac_holds_thaw_date_form' class='hide_me'>
+    <div id='myopac_holds_freeze_select_thaw'>
+        [% l("Select an automatic activation date.  If no date is chosen, the holds will remain suspended until they are manually activated.") %]
+    </div>
+    <p>
+        <input size='10' maxlength='10'
+            type='text' id='myopac_holds_thaw_date_input' />
+    </p>
+    <p>
+        <button>[% l("Submit") %]</button>
+    </p>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/holds/edit.tt2 b/Open-ILS/src/templates/opac/myopac/holds/edit.tt2
new file mode 100644 (file)
index 0000000..f0b1e52
--- /dev/null
@@ -0,0 +1,110 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    PROCESS "opac/parts/org_selector.tt2";
+    WRAPPER "opac/parts/base.tt2" + "opac/parts/myopac/base.tt2";
+    myopac_page = "holds"; # in this case, just for tab coloring.
+
+    hold = ctx.holds.0;
+    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) : '';
+%]
+<div class="pad-bottom-five">
+    <div class="header_middle">
+        <span id="acct_holds_header float-left">[% l('Editing Hold') %]</span>
+        &nbsp; &nbsp; &nbsp; &nbsp;
+        <a href="[% ctx.opac_root %]/myopac/holds">[% l('List all holds') %]</a>
+    </div>
+    <div id="hold_editor">
+        [% IF hold %]
+            <h1>[% attrs.title | html %]</h1>
+            <h2>[% attrs.author | html %]</h2>
+            [% IF attrs.format_icon %]<p>
+                <strong>[% l('Format:') %]</strong>
+                <img src="[% ctx.media_prefix %]/images/[% attrs.format_icon %]" alt="[% attrs.format %]" title="[% attrs.title | html %]" />
+            </p>[% END %]
+            <p>
+                <strong>[% l('Status') %]</strong>: [% hold.human_status | html %]
+            </p>
+            <form method="POST">
+                <table id="hold_editor_table">
+                    <tr>
+                        <th>
+                            <input type="hidden" name="action" value="edit" />
+                            <input type="hidden" name="hold_id"
+                                value="[% ahr.id %]" />
+                            [% l('Pickup library') %]
+                        </th>
+                        <td>
+                            [% PROCESS build_org_selector
+                                name='pickup_lib' value=ahr.pickup_lib %]
+                        </td>
+                    </tr>
+                    <tr>
+                        <th>
+                            [% l('Cancel unless filled by') %]
+                        </th>
+                        <td>
+                            <input type="text" name="expire_time"
+                                value="[% expire_time | html %]" />
+                        </td>
+                        <td class="fmt-note">
+                            <em>[% l('Enter date in MM/DD/YYYY format') %]</em>
+                            <!-- XXX TODO pick out a minimal, simple, reliable
+                            calendar widget that's not part of some giant,
+                            bloated framework and doesn't do anything at onload.
+                            -->
+                        </td>
+                    </tr>
+                    <tr>
+                        <th>
+                            [% l('Active?') %]
+                        </th>
+                        <td>
+                            <select name="frozen">
+                                <option value="f"[% ahr.frozen == 't' ? '' :' selected="selected"' %]>
+                                    [% l('Yes, this hold is active now') %]
+                                </option>
+                                <option value="t"[% ahr.frozen == 't' ? ' selected="selected"' : '' %]>
+                                    [% l('No, this hold is suspended') %]
+                                </option>
+                            </select>
+                        </td>
+                    </tr>
+                    <tr>
+                        <th>
+                            [% l('If suspended, activate on') %]
+                        </th>
+                        <td>
+                            <input type="text" name="thaw_date"
+                                value="[% thaw_date | html %]" />
+                        </td>
+                        <td class="fmt-note">
+                            <em>[% l('Enter date in MM/DD/YYYY format') %]</em>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td colspan="2" class="hold-editor-controls">
+                            <input type="image"
+                                src="[% ctx.media_prefix %]/images/btnSubmit.png"
+                                alt="[% l('Submit') %]"
+                                title="[% l('Submit') %]" />
+                            <a href="[% ctx.opac_root %]/myopac/holds"><img
+                                src="[% ctx.media_prefix %]/images/btnCancel.png"
+                                alt="[% l('Cancel') %]"
+                                title="[% l('Cancel') %]" /></a>
+                        </td>
+                    </tr>
+                </table>
+            </form>
+        [% ELSE;
+            l('Hold not found');
+        END %]
+    </div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/lists.tt2 b/Open-ILS/src/templates/opac/myopac/lists.tt2
new file mode 100644 (file)
index 0000000..9e1ba61
--- /dev/null
@@ -0,0 +1,185 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "lists"  %]
+<div id='myopac_bookbag_div' style="padding:5px;">
+
+    <!-- <div class="header_middle">
+        <span id="acct_holds_header" style="float:left;">[% l('My Lists') %]</span>
+        <span style="float:right;"><a class="hide_me" href="#">[% l('Export List') %]</a></span>
+    </div>
+    <div style="float:right;width:85px;">
+        <div style="position:absolute">
+            <div style="position:relative;top:13px;">
+                <a href="#" style="position:relative;top:-3px;left:-5px;"><img alt="[% l('Saving Help') %]" 
+                    src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
+                <a href="#"><img alt="[% l('Save') %]" src="[% ctx.media_prefix %]/images/save-btn.png"/></a>
+            </div>
+        </div>
+    </div> -->
+    <div id="temp_wrapper">
+
+
+    <!-- new list creation -->
+    <form action="[% ctx.opac_root %]/myopac/list/update" method="POST" id="create_form">
+        <h2>[% l('Create new list') %]</h2><a name="createnewlist"></a>
+        <table cellpadding="0" border="0" id="list_create_table">
+            <tr>
+                <td>
+                    <label for="list_create_name">[% l('Enter the name of the new list:') %]</label>
+                    <input id="list_create_name" type="text" name="name" />
+                    <input type="hidden" name="action" value="create" />
+                </td>
+                <td>
+                    <label for="list_create_shared">[% l('Share this list?') %]</label>
+                    <select name="shared" id="list_create_shared">
+                        <option value="0">[% l('No') %]
+                        <option value="1">[% l('Yes') %]
+                    </select>
+                    <a href="javascript:void(0);" onclick="alert(document.getElementById('bb_publish_text').innerHTML);"><img alt="[% l('Sharing Help') %]"
+                        src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
+                </td>
+                <td class="list-create-table-buttons">
+                    <input type="image" alt="[% l('Submit') %]" src="[% ctx.media_prefix %]/images/btnSubmit.png"/>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    <a href="javascript:void(0);"
+                        onclick="document.getElementById('create_form').reset(); return false"><img
+                        alt="[% l('Cancel') %]"
+                        src="[% ctx.media_prefix %]/images/btnCancel.png" /></a>
+                </td>
+            </tr>
+        </table>
+    </form>
+
+    [% INCLUDE "opac/parts/anon_list.tt2" %]
+    [% IF ctx.bookbags.size %]
+    <div id='acct_lists_prime'>
+        [% FOR bbag IN ctx.bookbags %]
+        <div id='acct_list_template'>
+            <div style="width:100%">
+                <form action="[% ctx.opac_root %]/myopac/list/update" method="POST">
+                    <div class="bookbag-share">
+                        <input type="hidden" name="list" value="[% bbag.id %]" />
+                        [% IF bbag.pub != 't' %]
+                        <input type="hidden" name="action" value="show" />
+                        <input type="submit" value="[% l('Share') %]" />
+                        [% ELSE %]
+                        <input type="hidden" name="action" value="hide" />
+                        <input type="submit" value="[% l('Hide') %]" />
+                        [% END %]
+                    </div>
+                </form>
+                <form action="[% ctx.opac_root %]/myopac/list/update" method="POST">
+                    <div class="bookbag-controls">
+                        <input type="hidden" name="list" value="[% bbag.id %]" />
+                        <input type="hidden" name="action" value="delete" />
+                        <input type="submit" value="[% l('Delete List') %]" />
+                    </div>
+                </form>
+                <div class="bookbag-controls">
+                    <big><strong>
+                    [% IF bbag.pub == 't' %]
+                        [% url = 'http://' _ ctx.hostname _ '/opac/extras/feed/bookbag/html-full/' _ bbag.id %]
+                        <a target='_blank' href='[% url %]'>[% bbag.name | html %]</a>
+                    [% ELSE %]
+                    [% bbag.name | html %]
+                    [% END %]
+                    </strong></big>
+                </div>
+                <div class="bookbag-controls">
+                    [% IF bbag.pub == 't'; %]
+                    <a target='_blank' href='/opac/extras/feed/bookbag/rss2-full/[% bbag.id %]'><img
+                        alt="[% l('RSS Feed') %]" border="0"
+                        src="[% ctx.media_prefix %]/images/small-rss.png"/></a>
+                    [% END %]
+                </div>
+                <div class="clear-both pad-bottom-five"></div>
+            </div>
+            <form action="[% ctx.opac_root %]/myopac/list/update" method="POST">
+            <input type="hidden" name="list" value="[% bbag.id %]" />
+            <table cellpadding='0' cellspacing='0' border='0'>
+                <thead id="acct_list_header">
+                    <tr>
+                        <td width="1%" style="padding-left: 10px;">
+                        <input type="checkbox" onclick="
+                            var inputs=document.getElementsByTagName('input'); 
+                            for (i = 0; i < inputs.length; i++) { 
+                                if (inputs[i].name == 'selected_item' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %]) 
+                                    inputs[i].checked = this.checked;}"/>
+
+                        </td>
+                        <td width="49%" style="padding-left: 5px;">[% l('Title') %]</td>
+                        <td width="49%">[% l('Author(s)') %]</td>
+                        <td width="1%" class="nowrap">
+                            <select class="selector_actions_for_list" name="action">
+                                <option>[% l('-- Actions for this list --') %]</option>
+                                <option value="place_hold">[% l('Place Hold') %]</option>
+                                <option value="del_item">[% l('Remove Items') %]</option>
+                            </select>
+                            <input type="submit" value="[% l('Go') %]" />
+                        </td>
+                    </tr>
+                </thead>
+                <tbody>
+                    [% UNLESS bbag.items.size %]
+                    <tr><td colspan="4" class="opac-auto-171 opac-auto-097">
+                        [% l("This list contains no items.") %]
+                    </td></tr>
+                    [% END %]
+                    [% FOR item IN bbag.items;
+                        rec_id = item.target_biblio_record_entry;
+                        attrs = {marc_xml => ctx.bookbags_marc_xml.$rec_id};
+                        PROCESS get_marc_attrs args=attrs %]
+                    <tr>
+                        <td class="item_list_padding" style="padding-left: 10px;"><input type="checkbox" name="selected_item" value="[% item.id %]" bbag='[% bbag.id %]'/></td>
+                        <td class="item_list_padding" style="padding-left: 5px;">[% attrs.title | html %]</td>
+                        <td class="item_list_padding">[% attrs.author | html %]</td>
+                    </tr>
+                    [% END %]
+                </tbody>
+            </table>
+            </form>
+            <br /><br />
+        </div>
+        [% END %]
+    </div>
+    [% END %]
+
+    <div id='myopac_delete_bookbag_warn' class='hide_me'>
+        [% l("This will remove the selected bookbag and all items contained within the bookbag.  Are you sure you wish to continue?") %]
+    </div>
+    <div style='text-align: center; font-weight: bold;' 
+        class='hide_me' id='myopac_bookbags_none'>[% l("You have not created any bookbags") %]</div>
+    <div style='width: 99%; text-align: center'>
+        <b id='myopac_bookbag_items_name'> </b>
+    </div>
+    <span id='bb_publish_text' class='hide_me'>
+[% |l %]Sharing a Bookbag means that the contents 
+of the Bookbag will be visible to others.  
+To see the public view of a shared Bookbag, 
+click on the Bookbag's name in the Bookbag list.[% END %]
+    </span>
+    <span id='myopac_remove_bb_item_confirm' class='hide_me'>
+        [% l("Are you sure you wish to remove this bookbag item?") %]
+    </span>
+    <span id='myopac_make_published_confirm' class='hide_me'>
+        [% l("Sharing this bookbag will allow the contents of the bookbag to be seen by others.  Are you sure you wish to share this bookbag?") %]
+    </span>
+    <span id='myopac_make_unpublished_confirm' class='hide_me'>
+        [% l("Are you sure you wish to hide this bookbag?") %]
+    </span>
+    <span id='myopac_bb_update_success' class='hide_me'>
+        [% l("The Bookbag was successfully updated.") %]
+    </span>
+    <span id='bb_create_warning' class='hide_me'>
+        [% l("Warning: Adding items to a bookbag creates a link between you and the items in the database.  The contents of the bookbag are NOT publicly viewable unless the bookbag is shared. However, if you prefer not to have any link between your patron record and a particular item or items, we suggest that you do not place said items in a bookbag or that you avoid using bookbags all together.  Thank you.") %]
+    </span>
+    <span id='myopac_bb_what_are' class='hide_me'>
+        [% l("Bookbags are...") %]
+    </span>
+    <span class='hide_me' id='bb_update_success'>
+        [% l("Bookbag successfully updated") %]
+    </span>
+
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/main.tt2 b/Open-ILS/src/templates/opac/myopac/main.tt2
new file mode 100644 (file)
index 0000000..9dbbabc
--- /dev/null
@@ -0,0 +1,170 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/main_base.tt2";
+    myopac_page = "main";
+    myopac_main_page = "main";
+%]
+<form action="[% ctx.opac_root %]/myopac/main_payment_form" method="GET">
+    [% IF ctx.fines.circulation.size > 0 %]
+    <div id='myopac_circ_trans_div'>
+        <table width='100%' class='data_grid'>
+            <thead>
+                <tr>
+                    <td colspan='10' style='padding: 6px'>
+                        <strong>[% l("Fines") %]</strong>
+                    </td>
+                </tr>
+                <tr>
+                    <td>[% l("Title") %]</td>
+                    <td>[% l("Author") %]</td>
+                    <td>[% l("Checkout Date") %]</td>
+                    <td>[% l("Due Date") %]</td>
+                    <td>[% l("Date Returned") %]</td>
+                    <td>[% l("Balance Owed") %]</td>
+                    <td nowrap="nowrap" style="white-space:nowrap;">
+                        <input id="pay_fines_box1" checked="checked"
+                            type="checkbox" onchange="select_all_checkboxes('xact', this.checked)"
+                            title="[% l('Click to (un)select all fines') %]" />
+                        <label for="pay_fines_box1">[% l('Pay Fines') %]</label>
+                    </td>
+                </tr>
+            </thead>
+            <tbody id='myopac_circ_trans_tbody'>
+                [% 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 %]
+                <tr id='myopac_circ_trans_row'>
+                    <td>
+                        [% recid = f.xact.circulation.target_copy.call_number.record.id || f.xact.reservation.target_resource_type.record.id;
+                        IF recid; %]
+                        <a href="[% ctx.opac_root %]/record/[% recid %]">[% attrs.title | html %]</a>
+                        [% ELSE %]
+                        [% attrs.title | html %]
+                        [% END %]
+                    </td>
+                    <td>
+                        <a href="[% ctx.opac_root %]/results?qtype=author&amp;query=[% attrs.author | replace('[,\.:;]', '') | url %]">[% attrs.author | html %]</a>
+                    </td>
+                    <td name='myopac_circ_trans_start'>
+                        [% ts = f.xact.circulation.xact_start || f.xact.reservation.start_time || 0;
+                        IF ts;
+                            date.format(ctx.parse_datetime(ts), DATE_FORMAT);
+                        END %]
+                    </td>
+                    <td name='myopac_circ_trans_due'>
+                        [% ts = f.xact.circulation.due_date || f.xact.reservation.end_time || 0;
+                        IF ts;
+                            date.format(ctx.parse_datetime(ts), DATE_FORMAT);
+                        END %]
+                    </td>
+                    <td name='myopac_circ_trans_finished'>
+                        [%  ts = f.xact.circulation.checkin_time || f.xact.reservation.return_time || 0;
+                            IF ts;
+                                date.format(ctx.parse_datetime(ts), DATE_FORMAT);
+                            ELSE %]
+                            <!-- XXX TODO fines aren't really accruing
+                                if circ has hit maxfines. more clarity
+                                here? -->
+                            <span class="red">[% l('(fines accruing)') %]</span>
+                        [%  END %]
+                    </td>
+                    <td>
+                        <strong class="red">
+                            [% money(f.xact.balance_owed) %]
+                        </strong>
+                    </td>
+                    <td>
+                        <input type="checkbox" checked="checked" 
+                            title="[% l('Pay this fine') %]" name="xact"
+                            value="[% f.xact.id %]" />
+                    </td>
+                </tr>
+                [% END %]
+            </tbody>
+        </table>
+    </div>
+    [% END %]
+
+    [% IF ctx.fines.grocery.size > 0 %]
+    <!-- Table for all non-circulation transactions -->
+    <div id='myopac_trans_div'>
+        <br/>
+        <hr class='opac-auto-013'  color="#dcdbdb" />
+        <br/>
+        <table width='100%' class='data_grid data_grid_center'
+            id='myopac_trans_table'>
+            <thead>
+                <tr>
+                    <td colspan='8' style='padding: 6px'>
+                        <b>[% l("Other Fees") %]</b>
+                    </td>
+                </tr>
+                <tr>
+                    <td width='16%'>[% l("Transaction Start Time") %]</td>
+                    <td width='16%'>[% l("Last Payment Time") %]</td>
+                    <td width='16%'>[% l("Initial Amount Owed") %]</td>
+                    <td width='16%'>[% l("Total Amount Paid") %]</td>
+                    <td width='16%'>[% l("Balance Owed") %]</td>
+                    <td width='16%'>[% l("Billing Type") %]</td>
+                    <td width='4%' align="center" nowrap="nowrap"
+                        style="white-space:nowrap;">
+                        <input id="pay_fines_box2" checked="checked"
+                            type="checkbox" onchange="select_all_checkboxes('xact_misc', this.checked)"
+                            title="[% l('Click to (un)select all fines') %]" />
+                        <label for="pay_fines_box2">[% l("Pay Fines") %]</label>
+                    </td>
+                </tr>
+            </thead>
+            <tbody id='myopac_trans_tbody'>
+                [% FOR f IN ctx.fines.grocery %]
+                <tr id='myopac_trans_row'>
+                    <td>[% date.format(
+                            ctx.parse_datetime(f.xact.xact_start),
+                            DATE_FORMAT
+                    ) %]</td>
+                    <td>
+                        [%  IF f.xact.last_payment_ts;
+                                date.format(
+                                    ctx.parse_datetime(
+                                        f.xact.last_payment_ts
+                                    ), DATE_FORMAT
+                                );
+                            END %]
+                    </td>
+                    <td>[% money(f.xact.total_owed) %]</td>
+                    <td>[% money(f.xact.total_paid) %]</td>
+                    <td class="red">
+                        <strong>
+                            [% money(f.xact.balance_owed) %]
+                        </strong>
+                    </td>
+                    <td>[% f.xact.last_billing_type %]</td>
+                    <td>
+                        <input type="checkbox" title='[% l("Pay this fine") %]'
+                            name="xact_misc" value="[% f.xact.id %]"
+                            checked="checked" />
+                    </td>
+                </tr>
+                [% END %]
+            </tbody>
+        </table>
+    </div>
+    [% END %]
+    [% UNLESS ctx.fines.grocery.size OR ctx.fines.circulation.size %]
+    <div>[% l('You have no current fines.') %]</div>
+    [% ELSE %]
+    <div class="text-right pad-top-ten">
+        <input type="image"
+            alt="[% l('Pay selected fines') %]"
+            title="[% l('Pay selected fines') %]"
+            onmouseover="this.src='[% ctx.media_prefix %]/images/pay-fines-btn-hover.png';"
+            onmouseout="this.src='[% ctx.media_prefix %]/images/pay-fines-btn.png';"
+            src="[% ctx.media_prefix %]/images/pay-fines-btn.png" />
+    </div>
+    [% END %]
+</form>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/main_pay.tt2 b/Open-ILS/src/templates/opac/myopac/main_pay.tt2
new file mode 100644 (file)
index 0000000..86ee7e8
--- /dev/null
@@ -0,0 +1,47 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "main";
+    myopac_main_page = "pay" %]
+<div id="myopac_summary_div">
+    [% IF ctx.payment_response.textcode %]
+        <div class="payment-error">
+            <span title="[% ctx.payment_response.textcode %]">
+                [% ctx.payment_response.desc || ctx.payment_response.textcode %]
+            </span><br />
+            [% ctx.payment_response.note %]
+            [% ctx.payment_response.payload.error_message %]
+        </div>
+        <p>
+            <a href="[% ctx.opac_root %]/myopac/main"
+                onclick="history.go(-1); return false;">[% l('Go back') %]</a>
+            [% l('to try again or to cancel this payment attempt.') %]
+        </p>
+    [% ELSE %]
+        <p><big>[% l('Your payment has been approved.') %]</big></p>
+        [% IF ctx.printable_receipt.template_output;
+            print_args = [];
+            FOR p IN ctx.payment_response.payments;
+                print_args.push('payment=' _ p);
+            END %]
+        <p>[ <a href="[% ctx.opac_root %]/myopac/receipt_print?[% print_args.join('&amp;') %]"
+            target="_egrecpt"
+            onclick="try { print_node('printable-receipt'); } catch (e) { window.print(); } return false;">[% l('Print receipt') %]</a> ]</p>
+        <tt id="printable-receipt">
+            [% ctx.printable_receipt.template_output.data %]
+        </tt>
+        [% ELSE %]
+        <div class="payment-error">
+            [% 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')
+                ) | html %]
+        </div>
+        [% END %]
+        <p>[ <a href="[% ctx.opac_root %]/myopac/main">[%
+            l("Back to Account Summary") %]</a> ]</p>
+    [% END %]
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/main_payment_form.tt2 b/Open-ILS/src/templates/opac/myopac/main_payment_form.tt2
new file mode 100644 (file)
index 0000000..c54f4e0
--- /dev/null
@@ -0,0 +1,187 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "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 %]
+<div>
+    [% l("You either have no fines to pay or you have selected fines whose " _
+        "total is non-positive.  We cannot process non-positive amounts.") %]
+</div>
+[% ELSE %]
+<div id="pay_fines_now">
+    [% IF last_chance %]
+    <p><big>[% l("Are you sure you are ready to charge [_1] to your credit card?", money(ctx.fines.balance_owed)) %]</big></p>
+    <form action="[% ctx.opac_root %]/myopac/main_pay" method="POST">
+        [% FOR k IN CGI.Vars;
+            NEXT UNLESS k %]
+        <input type="hidden" name="[% k | html %]" value="[% CGI.param(k) | html %]" />
+        [% END %]
+        <input type="submit" value="[% l('Submit Payment') %]" />
+        <input type="reset" value="[% l('Cancel') %]"
+            onclick="history.go(-1);" />
+    [% ELSE %]
+    <form method="POST">
+        <input type="hidden" name="last_chance" value="1" />
+        [% FOR xact IN CGI.param('xact') %]
+        <input type="hidden" name="xact" value="[% xact | html %]" />
+        [% END %]
+        [% FOR xact IN CGI.param('xact_misc') %]
+        <input type="hidden" name="xact_misc" value="[% xact | html %]" />
+        [% END %]
+
+        <table>
+            <tbody>
+                <tr>
+                    <td colspan='2'><strong>[% l('Billing Information') %]</strong></td>
+                    <td rowspan='13' valign='top'>
+                        <p>[% l('Selected fines you are paying for:') %]</p>
+                        <table cellpadding="0" cellspacing="0" border="0" class="myopac_payments_table">
+                            <thead>
+                                <tr>
+                                    <th>[% l('Name') %]</th>
+                                    <th>[% l('Amount') %]</th>
+                                </tr>
+                            </thead>
+                            <tbody>
+                            [%
+                            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 %]
+                                <tr>
+                                    <td>[% attrs.title | html %]</td>
+                                    <td class="text-right">[% money(f.xact.balance_owed) %]</td>
+                                </tr>
+                            [%
+                            END;
+                            FOR f IN ctx.fines.grocery;
+                                NEXT IF CGI.param('xact_misc').size &&
+                                    !CGI.param('xact_misc').grep(f.xact.id).size %]
+                                <tr>
+                                    <td>[% f.xact.last_billing_type | html %]</td>
+                                    <td class="text-right">[% money(f.xact.balance_owed) %]</td>
+                                </tr>
+                            [% END %]
+                            </tbody>
+                        </table>
+                        <br />
+                        <div>
+                            [% l('Total amount to pay:') %]
+                            <strong>[% money(ctx.fines.balance_owed) %]</strong>
+                        </div>
+                        <br />
+                        [% | l('<strong>', '</strong>') %]Click [_1]Cancel[_2] to go back and (un)select other fines.[% END %]
+                    </td>
+                </tr>
+                <tr>
+                    <td>[% l('First Name') %]</td>
+                    <td><input type="text" name="billing_first" value="[% ctx.user.first_given_name | html %]" /></td>
+                </tr>
+                <tr>
+                    <td>[% l('Last Name') %]</td>
+                    <td><input type="text" name="billing_last" value="[% ctx.user.family_name | html %]" /></td>
+                </tr>
+                <tr>
+                    <td>[% l('Email Address') %]</td>
+                    <td>
+                        <input type="text" disabled="disabled" readonly="readonly" value="[% ctx.user.email | html %]" />
+                        <a href="[% ctx.opac_root %]/myopac/update_email?return_to_referer=1">[% l("Update") %]</a>
+                    </td>
+                </tr>
+                <tr>
+                    <td>[% l('Street Address') %]</td>
+                    <td><input type="text" name="billing_address" value="[% ctx.user.billing_address.street1 _ ctx.user.billing_address.street2 | html %]" /></td>
+                </tr>
+                <tr>
+                    <td>[% l('City' )%]</td>
+                    <td><input type="text" name="billing_city" value="[% ctx.user.billing_address.city | html %]" /></td>
+                </tr>
+                <tr>
+                    <td>[% l('State or Province') %]</td>
+                    <td><input type="text" name="billing_state" value="[% ctx.user.billing_address.state | html %]" /></td>
+                </tr>
+                <tr>
+                    <td>[% l('ZIP or Postal Code') %]</td>
+                    <td><input type="text" name="billing_zip" value="[% ctx.user.billing_address.post_code | html %]" /></td>
+                </tr>
+                <tr>
+                  <td colspan='2'><strong>[% l('Credit Card Information') %]</strong></td>
+                </tr>
+                <!-- Technically not needed since card type is derived from the CC number
+                <tr>
+                    <td>Type of Card</td>
+                    <td>
+                        <select name="type">
+                            <option value='VISA'>VISA</option>
+                            <option value='MasterCard'>MasterCard</option>
+                            <option value='American Express'>American Express</option>
+                        </select>
+                    </td>
+                </tr>
+                -->
+                <tr>
+                    <td>[% l('Credit Card #') %]</td>
+                    <td><input type="text" name="number" maxlength="16" /></td>
+                </tr>
+                <tr>
+                    <td>[% l('Security Code') %]</td>
+                    <td>
+                        <input type="text" size="4" maxlength="5" name="cvv2" />
+                    </td>
+                </tr>
+                <tr>
+                    <td>[% l('Exipration Month') %]</td>
+                    <td>
+                        <select name="expire_month">
+                            <option value="01">[% l("January") %]</option>
+                            <option value="02">[% l("February") %]</option>
+                            <option value="03">[% l("March") %]</option>
+                            <option value="04">[% l("April") %]</option>
+                            <option value="05">[% l("May") %]</option>
+                            <option value="06">[% l("June") %]</option>
+                            <option value="07">[% l("July") %]</option>
+                            <option value="08">[% l("August") %]</option>
+                            <option value="09">[% l("September") %]</option>
+                            <option value="10">[% l("October") %]</option>
+                            <option value="11">[% l("November") %]</option>
+                            <option value="12">[% l("December") %]</option>
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <td>[% l('Expiration Year') %]</td>
+                    <td>
+                        <select name="expire_year">
+                        [% year = date.format(date.now, '%Y');
+                        y = year;
+                        WHILE y < year + 10; # show ten years starting now %]
+                            <option value="[% y %]">[% y %]</option>
+                        [% y = y + 1; END %]
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan='2' align="center">
+                        <input type="submit" value="[% l('Next') %]" />
+                        <input type="reset" value="[% l('Cancel') %]"
+                            onclick="history.go(-1);" />
+                    </td>
+                </tr>
+                [% INCLUDE "opac/parts/myopac/main_refund_policy.tt2" %]
+            </tbody>
+        </table>
+    [% END %]
+    </form>
+</div>
+[% END %]
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/main_payments.tt2 b/Open-ILS/src/templates/opac/myopac/main_payments.tt2
new file mode 100644 (file)
index 0000000..a30edeb
--- /dev/null
@@ -0,0 +1,59 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/main_base.tt2";
+    myopac_page = "main";
+    myopac_main_page = "payments";
+    limit = ctx.payment_history_limit;
+    offset = ctx.payment_history_offset;
+%]
+
+<div>
+    <div class="header_middle">
+        <span class="float-left">[% l('Payments History') %]</span>
+        <span class='float-left' style='padding-left: 10px;'>
+            <a href='main_payments?limit=[% limit %]&amp;offset=[% offset - limit %]'
+                [% IF offset == 0 %] class='invisible' [% END %]><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
+            [%# TODO: get total to prevent paging off then end of the list.. %]
+            <a href='main_payments?limit=[% limit %]&amp;offset=[% offset + limit %]'
+               [% IF ctx.payments.size < limit %] class='invisible' [% END %] >[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
+        </span>
+    </div>
+    <div class="clear-both"></div>
+
+    [% IF ctx.payments.size %]
+    <table class='myopac_payments_table data_grid' width='100%'>
+        <thead><tr>
+            <th>[% l('Payment Date') %]</th>
+            <th>[% l('Payment For') %]</th>
+            <th>[% l('Amount') %]</th>
+            <th>[% l('Receipt') %]</th> 
+        </tr></thead>
+        <tbody>
+            [% FOR payment IN ctx.payments %]
+            <tr>
+                <td>[% date.format(ctx.parse_datetime(payment.mp.payment_ts), DATE_FORMAT) %]</td>
+                <td>[% 
+                    btype = payment.last_billing_type | html;
+                    ptitle = payment.title | html;
+                    (payment.xact_type == 'grocery') ? btype : ptitle
+                %]</td>
+                <td>[% money(payment.mp.amount) %]</td>
+                <td>
+                    <form action="[% ctx.opac_root %]/myopac/receipt_print" method="POST">
+                        <input type="hidden" name="payment" value="[% payment.mp.id %]" />
+                        <input type="submit" value="[% l('Print') %]" />
+                    </form>
+                    <form action="[% ctx.opac_root %]/myopac/receipt_email" method="POST">
+                        <input type="hidden" name="payment" value="[% payment.mp.id %]" />
+                        <input type="submit" value="[% l('Email') %]" />
+                    </form>
+                </td>
+            </tr>
+            [% END %]
+        </tbody>
+    </table>
+    [% ELSE %]
+    <div>[% l('You have no historical payments to display.') %]</div>
+    [% END %]
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/prefs.tt2 b/Open-ILS/src/templates/opac/myopac/prefs.tt2
new file mode 100644 (file)
index 0000000..2db15e5
--- /dev/null
@@ -0,0 +1,356 @@
+[%  PROCESS "opac/parts/header.tt2";
+    WRAPPER "opac/parts/myopac/prefs_base.tt2";
+    myopac_page = "prefs";
+    prefs_page = 'personal' %]
+
+<div id="acct_info_main">
+    <div id='myopac.expired.alert'
+         class='hide_me'
+         style='margin-bottom: 20px;'>
+        <table class='data_grid'
+               width='100%'>
+            <tbody>
+                <tr>
+                    <td width='100%' class='red'>
+                        [% l("Your account expired on") %]
+                        <span id='myopac.expired.date'></span>!
+                        [% l("Please see a librarian to renew your account.") %]</td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+
+    <div id='myopac.notes.div'
+         class='hide_me'>
+        <table class='data_grid'
+               width='100%'>
+            <thead>
+                <tr>
+                    <td colspan='2'>
+                    <b>[% l("* Staff Notes *") %]</b></td>
+                </tr>
+            </thead>
+
+            <tbody id='myopac.notes.tbody'>
+                <tr id='myopac.notes.tr'>
+                    <td><b name='title'></b> : <span name=
+                    'value'></span></td>
+                </tr>
+            </tbody>
+        </table><br />
+    </div>
+
+    <table width='70%'
+           class='light_border data_grid'>
+        <tbody id='myopac_summary_tbody'>
+            <tr>
+                <td width='30%'
+                    class='color_4 light_border'>[% l("Name") %]</td>
+
+                <td class='light_border'>[% l(
+                    HUMAN_NAME_FORMAT,
+                    ctx.user.prefix, ctx.user.first_given_name,
+                    ctx.user.second_given_name, ctx.user.family_name,
+                    ctx.user.suffix
+                ) | html %]</td>
+
+                <td></td>
+            </tr>
+
+            <tr>
+                <td class='color_4 light_border'>
+                [% l("Day Phone") %]</td>
+
+                <td class='light_border'
+                    id='myopac_summary_dayphone'>[% ctx.user.day_phone | html %]</td>
+
+                <td class='light_border'><a href='#'
+                   class="hide_me"
+                   id='myopac_summary_phone1_change'
+                   style=
+                   'text-decoration: underline;'>[% l("Change") %]</a></td>
+            </tr>
+
+            <tr id='myopac_update_phone1_row'
+                class='hide_me'>
+                <td class='myopac_update_cell'
+                    colspan='3'>
+                    <span class='myopac_update_span'>
+                        Enter New [% l("Day Phone") %]:
+                    </span>
+
+                    <input type='text' size='24' id='myopac_new_phone1' />
+                    <span class='myopac_update_span'>
+                        <button>
+                            <span class='myopac_update_span'>
+                                [% l("Submit") %]</span>
+                        </button>
+                    </span>
+                    <span class='myopac_update_span'>
+                        <button>
+                            <span class='myopac_update_span'>
+                                [% l("Cancel") %]</span>
+                        </button>
+                    </span>
+                </td>
+            </tr>
+
+            <tr>
+                <td class='color_4 light_border'>
+                [% l("Evening Phone") %]</td>
+
+                <td class='light_border'
+                    id='myopac_summary_eveningphone'>[% ctx.user.evening_phone | html %]</td>
+
+                <td class='light_border'><a href='#'
+                   class="hide_me"
+                   id='myopac_summary_phone2_change'
+                   style=
+                   'text-decoration: underline;'>[% l("Change") %]</a></td>
+            </tr>
+
+            <tr id='myopac_update_phone2_row'
+                class='hide_me'>
+                <td class='myopac_update_cell'
+                    colspan='3'><span class='myopac_update_span'>New
+                    [% l("Evening Phone") %]:</span>
+                    <input type='text' size='24' id='myopac_new_phone2' />
+                    <span class='myopac_update_span'><button><span class=
+                        'myopac_update_span'>[% l("Submit") %]</span></button></span>
+                    <span class='myopac_update_span'><button><span class=
+                        'myopac_update_span'>[% l("Cancel") %]</span></button></span>
+                </td>
+            </tr>
+
+            <tr>
+                <td class='color_4 light_border'>
+                [% l("Other Phone") %]</td>
+
+                <td class='light_border'
+                    id='myopac_summary_otherphone'>[% ctx.user.other_phone | html %]</td>
+
+                <td class='light_border'><a href='#'
+                   class="hide_me"
+                   id='myopac_summary_phone3_change'
+                   style=
+                   'text-decoration: underline;'>[% l("Change") %]</a></td>
+            </tr>
+
+            <tr id='myopac_update_phone3_row'
+                class='hide_me'>
+                <td class='myopac_update_cell'
+                    colspan='3'><span class='myopac_update_span'>Enter
+                    New [% l("Other Phone") %]:</span>
+                    <input type='text' size='24' id='myopac_new_phone3' />
+                    <span class='myopac_update_span'><button><span class=
+                        'myopac_update_span'>[% l("Submit") %]</span></button></span>
+                    <span class='myopac_update_span'><button><span class=
+                        'myopac_update_span'>[% l("Cancel") %]</span></button></span>
+                </td>
+            </tr>
+
+            <tr>
+                <td class='color_4 light_border'>
+                    <div style="position:absolute">
+                        <div class="hide_me" style="position:relative;left:70px;top:-3px;">
+                            <a href="#"><img alt="Username Help" src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
+                        </div>
+                    </div>[% l("Username") %]
+                </td>
+                <td class='light_border'>[% ctx.user.usrname | html %]</td>
+                <td class='light_border'><a href='update_username'>[% l("Change") %]</a></td>
+            </tr>
+            <tr>
+                <td class='color_4 light_border'>[% l("Password") %]</td>
+                <td class='light_border'>[% l("(not shown)") %]</td>
+                <td class='light_border'><a href='update_password'>[% l("Change") %]</a></td>
+            </tr>
+            <tr>
+                <td class='color_4 light_border'>[% l("Email Address") %]</td>
+                <td class='light_border'>[% ctx.user.email | html %]</td>
+                <td class='light_border'><a href='update_email'>[% l('Change') %]</a></td>
+            </tr>
+
+            [% IF ctx.user.ident_value %]<tr class="hide_me">
+                <td class='color_4 light_border'>
+                [% l("Primary Identification") %]</td>
+
+                <td class='light_border'>
+                    [%
+                    # l('[_1] ([_2])', ctx.user.ident_value, ctx.user.ident_type.name) | html
+                    # XXX uncomment the above line to show primary
+                    # identification. With a minor tweak it could
+                    # alternatively be shown but partially obscured. 
+                    %]
+                </td>
+                <td></td>
+            </tr>[% END %]
+
+            <tr>
+                <td class='color_4 light_border'>
+                [% l("Active Barcode") %]</td>
+
+                <td class='light_border'>[% ctx.user.card.barcode %]</td>
+
+                <td></td>
+            </tr>
+
+            <tr>
+                <td class='color_4 light_border'>
+                [% l("Home Library") %]</td>
+                <td class='light_border'>[% ctx.user.home_ou.name | html %]</td>
+                <td><a href='#'
+                   class="hide_me"
+                   style='text-decoration: underline;'>[% l("Change") %]</a></td>
+            </tr>
+            <tr class='hide_me'>
+                <td class='myopac_update_cell'
+                    colspan='3'>
+                    <span class='myopac_update_span'>
+                        New home library:</span>
+                    <select>
+                    </select>
+                    <span class='myopac_update_span'>
+                        <button>
+                            <span class= 'myopac_update_span'>
+                                [% l("Submit") %]</span>
+                        </button>
+                    </span>
+                    <span class='myopac_update_span'>
+                        <button>
+                            <span class= 'myopac_update_span'>
+                                [% l("Cancel") %]</span>
+                        </button>
+                    </span>
+                </td>
+            </tr>
+            <tr class="hide_me">
+                <td class='color_4 light_border'>
+                    [% l("Account Creation Date") %]
+                </td>
+                <td class='light_border'
+                    id='myopac_summary_create_date'></td>
+                <td></td>
+            </tr>
+        </tbody>
+    </table><br />
+    <hr class='opac-auto-013' color="#DCDBDB" />
+    <br />
+
+    <table width='100%' class='light_border data_grid'>
+        <thead>
+            <tr>
+                <td><strong>[% l("Addresses") %]</strong></td>
+                <td><strong>[% l("Pending Addresses") %]</strong></td>
+            </tr>
+        </thead>
+        <tbody>
+            [% 
+                # cycle through the non-pending address.  For each non-pending addr
+                # that has a corresponding pending addr, render the pending addr 
+                # along the right inside it's own edit form
+                pending = {};
+                regular = [];
+                edit_addr_id = CGI.param('edit_address');
+                FOR addr IN ctx.user.addresses;
+                    IF addr.pending == 't';
+                        replaces = addr.replaces;
+                        pending.$replaces = addr;
+                    ELSE;
+                        regular.push(addr);
+                    END;
+                END;
+            FOR addr IN regular;
+                cur_id = addr.id; 
+                pending_addr = pending.$cur_id;
+            %]
+            <tr>
+                <td>
+                    <!-- read-only address display -->
+                    <table class='light_border'>
+                        <tr><td>[% l("Address Type") %]</td><td>[% addr.address_type | html %]</td></tr>
+                        <tr><td>[% l("Street") %]</td><td>[% addr.street1 | html %]</td></tr>
+                        <tr><td>[% l("Street") %]</td><td>[% addr.street2 | html %]</td></tr>
+                        <tr><td>[% l("City") %]</td><td>[% addr.city | html %]</td></tr>
+                        <tr><td>[% l("County") %]</td><td>[% addr.county| html  %]</td></tr>
+                        <tr><td>[% l("State") %]</td><td>[% addr.state | html %]</td></tr>
+                        <tr><td>[% l("Country") %]</td><td>[% addr.country | html %]</td></tr>
+                        <tr><td>[% l("Zip") %]</td><td>[% addr.post_code | html %]</td></tr>
+                        [% IF ctx.get_org_setting(ctx.user.home_ou.id, 'opac.allow_pending_address') 
+                                AND !pending_addr AND edit_addr_id != cur_id %]
+                        <tr>
+                            <td colspan='2'>
+                                <a href='?edit_address=[% addr.id %]'>[% l('Edit Address') %]</a>
+                            </td>
+                        </tr>
+                        [% END %]
+                    </table>
+                </td>
+
+                <!-- pending address form -->
+                [% IF pending_addr OR edit_addr_id == cur_id;
+                    update_addr = pending_addr || addr %]
+                <td>
+                    <form method='POST'>
+                        [% IF pending_addr %]
+                            <input type='hidden' name='pending_addr' value='[% pending_addr.id %]'/>
+                        [% ELSE %]
+                            <input type='hidden' name='replace_addr' value='[% edit_addr_id | html %]'/>
+                        [% END %]
+                        <table class='pending-addr'>
+                            <tr>
+                                <td>[% l("Address Type") %]</td>
+                                <td><input name='address_type' value='[% update_addr.address_type | html %]'/></td>
+                            </tr>
+                            <tr>
+                                <td>[% l("Street") %]</td>
+                                <td><input name='street1' value='[% update_addr.street1 | html %]'/></td>
+                            </tr>
+                            <tr>
+                                <td>[% l("Street") %]</td>
+                                <td><input name='street2' value='[% update_addr.street2 | html %]'/></td>
+                            </tr>
+                            <tr>
+                                <td>[% l("City") %]</td>
+                                <td><input name='city' value='[% update_addr.city | html %]'/></td>
+                            </tr>
+                            <tr>
+                                <td>[% l("County") %]</td>
+                                <td><input name='county' value='[% update_addr.county| html %]'/></td>
+                            </tr>
+                            <tr>
+                                <td>[% l("State") %]</td>
+                                <td><input name='state' value='[% update_addr.state | html %]'</td>
+                            </tr>
+                            <tr>
+                                <td>[% l("Country") %]</td>
+                                <td><input name='country' value='[% update_addr.country | html %]'/></td>
+                            </tr>
+
+                            <tr>
+                                <td>[% l("Zip") %]</td>
+                                <td><input name='post_code' value='[% update_addr.post_code | html %]'/></td>
+                            </tr>
+                            <tr>
+                                <td><input type='submit' value="[% l('Save Changes') %]"/></td>
+                                <td>
+                                    [% IF pending_addr;
+                                        url = mkurl('', {delete_pending => pending_addr.id}, 1);
+                                    ELSE;
+                                        url = mkurl('', {}, 1);
+                                    END %]
+                                    <a href="[% url %]">[% l('Discard Pending Address') %]</a>
+                                </td>
+                            </tr>
+                            <tr><td colspan='2'><i>[% l('Address changes will be verified by staff') %]</i></td></tr>
+                        </table>
+                    </form>
+                </td>
+                [% END %] <!-- if pending_addr -->
+            </tr>
+            [% END %]
+        </tbody>
+    </table>
+</div>
+
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/prefs_notify.tt2 b/Open-ILS/src/templates/opac/myopac/prefs_notify.tt2
new file mode 100644 (file)
index 0000000..91a3ce5
--- /dev/null
@@ -0,0 +1,128 @@
+[%  PROCESS "opac/parts/header.tt2";
+    WRAPPER "opac/parts/myopac/prefs_base.tt2";
+    myopac_page = "prefs_notify";
+    prefs_page = 'notify' %]
+
+
+<form method='POST'>
+
+    <div style="float:right;width:65px;">
+        <input type='image' alt="[% l('Save') %]" src="[% ctx.media_prefix %]/images/save-btn.png" />
+    </div>
+
+    <table>
+        <thead><tr>
+            <th>[% l('Notifation Type') %]</th>
+            <th>[% l('Enabled') %]</th>
+        </tr></thead>
+        <tbody class='data_grid'>
+            [% IF optin.size == 0 %]
+                <strong>[% l('No notification preferences are configured') %]</strong>
+            [% END %]
+            [% FOR optin IN ctx.opt_in_settings %]
+                <tr>
+                    <td>[% optin.cust.label | html %]</td>
+                    <td>
+                        <input type='checkbox' name='setting' 
+                            value='[% optin.cust.name | uri %]' 
+                            [% IF optin.value %] checked='checked' [% END %]/>
+                    </td>
+                </tr>
+            [% END %]
+        </tbody>
+    </table>
+</form>
+
+
+<!-- NOTIFICATION PREFS / leaving here for reference
+<table class="hide_me"
+       id="acct_notify_main">
+    <tbody>
+        <tr class="hide_me">
+            <td><span>[% l("Default Hold Notification Method") %]</span> <a class=
+            'classic_link'
+               href='#'>[% l("(Help)") %]</a></td>
+
+            <td style="padding-left:15px;"><select id=
+            'prefs_hold_notify'>
+                <option value='phone:email'
+                        selected='selected'>
+                    [% l("Use Phone and Email") %]
+                </option>
+
+                <option value='phone'>
+                    [% l("Use Phone Only") %]
+                </option>
+
+                <option value='email'>
+                    [% l("Use Email Only") %]
+                </option>
+            </select></td>
+        </tr>
+
+        <tr>
+            <td style="padding-top:10px;"><strong>Pick Up Notice for
+            Holds</strong><br />
+            <input type="checkbox"
+                   id="opac.hold_notify.email"
+                   name="opac.hold_notify.email" /> <label for=
+                   "opac.hold_notify.email">Email</label><br />
+            <input type="checkbox"
+                   id="opac.hold_notify.phone"
+                   name="opac.hold_notify.phone" /> <label for=
+                   "opac.hold_notify.phone">Phone</label>
+                   <b>(Temporarily phone notification will generate a
+                   mailed paper notice.)</b></td>
+        </tr>
+
+        <tr>
+            <td style="padding-top:10px;"><strong>Expire Notice for
+            Holds</strong><br />
+            <input type="checkbox"
+                   id="notification.hold.expire.email"
+                   name="notification.hold.expire.email" /> <label for=
+                   "notification.hold.expire.email">Email</label></td>
+        </tr>
+
+        <tr>
+            <td style="padding-top:10px;"><strong>Cancel Notice for
+            Holds</strong><br />
+            <input type="checkbox"
+                   id="notification.hold.cancel.email"
+                   name="notification.hold.cancel.email" /> <label for=
+                   "notification.hold.cancel.email">Email</label></td>
+        </tr>
+
+        <tr>
+            <td style="padding-top:10px;"><strong>Overdue First
+            Notice</strong><br />
+            <input type="checkbox"
+                   id="notification.overdue.first.email"
+                   name="notification.overdue.first.email" />
+                   <label for=
+                   "notification.overdue.first.email">Email</label><br />
+            <input type="checkbox"
+                   id="notification.overdue.first.phone"
+                   name="notification.overdue.first.phone" />
+                   <label for=
+                   "notification.overdue.first.phone">Phone</label>
+                   <b>(Temporarily phone notification will generate a
+                   mailed paper notice.)</b></td>
+        </tr>
+
+        <tr>
+            <td style="padding-top:10px;"><strong>Courtesy
+            Notice</strong><br />
+            <input type="checkbox"
+                   id="notification.predue.email"
+                   name="notification.predue.email" /> <label for=
+                   "notification.predue.email">Email</label><br /></td>
+        </tr>
+    </tbody>
+</table>
+-->
+
+
+[% END %]
+
+
diff --git a/Open-ILS/src/templates/opac/myopac/prefs_settings.tt2 b/Open-ILS/src/templates/opac/myopac/prefs_settings.tt2
new file mode 100644 (file)
index 0000000..fc5f846
--- /dev/null
@@ -0,0 +1,100 @@
+[%  PROCESS "opac/parts/header.tt2";
+    WRAPPER "opac/parts/myopac/prefs_base.tt2";
+    myopac_page = "prefs_notify";
+    prefs_page = 'settings' %]
+
+
+    <form method='POST'>
+
+        <div style="float:right;width:65px;">
+            <div style="position:absolute">
+                <div style="position:relative;top:75px;">
+                    <input type="image" alt="[% l('Save') %]" src="[% ctx.media_prefix %]/images/save-btn.png"/>
+                </div>
+            </div>
+        </div>
+
+        <table class="full-width data_grid" id="acct_search_main">
+            <tbody>
+
+                [% IF ctx.updated_user_settings %]
+                <tr><td colspan='2'>
+                    <div class='renew-summary'>
+                        [% l('Account Successfully Updated') %]
+                    </div>
+                </td></tr>
+                [% END %]
+
+                <tr >
+                    <td width='20%'>[% l("Search hits per page") %]</td>
+                    <td>
+                        <div style="position:absolute">
+                            <div style="position:relative;top:0px;left:55px;">
+                                <a href="#"><img alt="[% l('Search Hits Help') %]" 
+                                    src="[% ctx.media_prefix %]/images/question-mark.png" /></a>
+                            </div>
+                        </div>
+                        [% setting = 'opac.hits_per_page' %]
+                        <select name='[% setting %]'>
+                            [%  FOR val IN [5, 8, 10, 15, 20, 25, 50] %]
+                                <option value='[% val | uri %]' 
+                                    [% IF ctx.user_setting_map.$setting == val %]
+                                        selected='selected'[% END %]>[% val | html %]</option>
+                            [% END %]
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <td>[% l('Keep history of checked out items?') %]</td>
+                    <td>
+                        [% setting = 'history.circ.retention_start' %]
+                        <input name='[% setting %]' type="checkbox"
+                            [% IF ctx.user_setting_map.$setting; %] checked='checked' [% END %]/>
+                    </td>
+                </tr>
+                <tr>
+                    <td>[% l('Keep history of holds?') %]</td>
+                    <td>
+                        [% setting = 'history.hold.retention_start' %]
+                        <input name='[% setting %]' type="checkbox"
+                            [% IF ctx.user_setting_map.$setting; %] checked='checked' [% END %]/>
+                    </td>
+                </tr>
+
+                <!--
+                <tr>
+                    <td>[% l("Default Font Size") %]</td>
+                    <td>
+                        <select id='prefs_def_font'>
+                            <option value='regular'>[% l("Regular Font") %]</option>
+                            <option value='large'>[% l("Large Font") %]</option>
+                        </select>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td>[% l("Default Search Location") %]</td>
+                    <td>
+                        <div style='margin-bottom: 5px;'>
+                            <input type='checkbox' id='myopac_pref_home_lib' />
+                            [% l("Search my home library by default.") %]
+                        </div>
+                        <select id='prefs_def_location'></select>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td>[% l("Default Search Range") %]</td>
+                    <td>
+                        <select>
+                            [%# TODO %]
+                        </select>
+                    </td>
+                </tr>
+                -->
+
+            </tbody>
+        </table>
+    </form>
+    [% INCLUDE "opac/parts/myopac/prefs_hints.tt2" %]
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/receipt_email.tt2 b/Open-ILS/src/templates/opac/myopac/receipt_email.tt2
new file mode 100644 (file)
index 0000000..15b744f
--- /dev/null
@@ -0,0 +1,21 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "prefs"  %]
+    [% IF ctx.email_receipt_result; # result should be undef on success %]
+    <div class="payment-error">
+        [% l('Error preparing receipt:') %]
+        <span title="[% ctx.email_receipt_result.textcode | html %]">
+            [% ctx.email_receipt_result.desc | html %]
+        </span>
+    </div>
+    [% ELSE %]
+    <div>
+        [% l('Your receipt will be emailed to [_1]', ctx.user.email) | html %]
+    </div>
+    [% END %]
+    <p>
+        [ <a href="[% ctx.opac_root %]/myopac/main_payments">[%
+            l("Back to Payments History") %]</a> ]
+    </p>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/receipt_print.tt2 b/Open-ILS/src/templates/opac/myopac/receipt_print.tt2
new file mode 100644 (file)
index 0000000..fe68495
--- /dev/null
@@ -0,0 +1,25 @@
+[%# sic! no wrapper %]
+<html>
+    <head>
+        <title>[% l('Receipt') %]</title>
+    </head>
+    <body onload="if (document.getElementById('printable-receipt')) window.print();">
+        [% IF ctx.printable_receipt.template_output %]
+        <tt id="printable-receipt">
+            [% ctx.printable_receipt.template_output.data %]
+        </tt>
+        [% ELSE %]
+        <div class="payment-error">
+            [% 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')
+                ) | html %]
+        </div>
+        [% END %]
+        <hr />
+        <p>[ <a href="[% ctx.opac_root %]/myopac/main_payments">[%
+            l("Back to Payments History") %]</a> ]</p>
+    </body>
+</html>
diff --git a/Open-ILS/src/templates/opac/myopac/update_email.tt2 b/Open-ILS/src/templates/opac/myopac/update_email.tt2
new file mode 100644 (file)
index 0000000..3b9b762
--- /dev/null
@@ -0,0 +1,24 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "prefs"  %]
+<div id='myopac_summary_div' style="padding:0px;">
+
+[% IF ctx.invalid_email %]
+    <div id='account-update-email-error'>
+        [% l('The email address "<b>[_1]</b>" is invalid.  Please try a different email address.', ctx.invalid_email) | html %]
+    </div>
+[% END %]
+
+<form method='POST' id='account-update-email'>
+    [% IF CGI.param("return_to_referer") %]
+    <input type="hidden" name="redirect_to" value="[% ctx.referer | html %]" />
+    [% END %]
+    <table> 
+        <tr><td>[% l('Current Email') %]</td><td>[% ctx.user.email | html %]</td></tr>
+        <tr><td>[% l('New Email') %]</td><td><input type='text' name='email' value='[% ctx.invalid_email | html %]'/></td></tr>
+        <tr><td colspan='2' align='center'><input type='submit'/></td></tr>
+    </table>
+</form>
+
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/update_password.tt2 b/Open-ILS/src/templates/opac/myopac/update_password.tt2
new file mode 100644 (file)
index 0000000..c4ad3de
--- /dev/null
@@ -0,0 +1,33 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "prefs"  %]
+
+<div id='myopac_summary_div' style="padding:0px;">
+
+[% IF ctx.password_invalid %]
+    <div id='account-update-email-error'> <!-- borrow css from update-email page -->
+        [% |l %] New password is invalid.  Please try a different password.  [% END %]
+    </div>
+
+[% ELSIF ctx.password_nomatch %]
+    <div id='account-update-email-error'>
+        [% |l %] Passwords do not match. [% END %]
+    </div>
+
+[% ELSIF ctx.password_incorrect %]
+    <div id='account-update-email-error'>
+        [% |l %] Your current password was not correct. [% END %]
+    </div>
+[% END %]
+
+<form method='POST' id='account-update-email'> 
+    <table> 
+        <tr><td>[% l('Current Password') %]</td><td><input type='password' name='current_pw'/></td></tr>
+        <tr><td>[% l('New Password') %]</td><td><input type='password' name='new_pw'/></td></tr>
+        <tr><td>[% l('New Password Again') %]</td><td><input type='password' name='new_pw2'/></td></tr>
+        <tr><td colspan='2' align='center'><input type='submit'/></td></tr>
+    </table>
+</form>
+
+[% END %]
diff --git a/Open-ILS/src/templates/opac/myopac/update_username.tt2 b/Open-ILS/src/templates/opac/myopac/update_username.tt2
new file mode 100644 (file)
index 0000000..7455cc9
--- /dev/null
@@ -0,0 +1,29 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+    myopac_page = "prefs"  %]
+<div id='myopac_summary_div' style="padding:0px;">
+
+[% IF ctx.invalid_username %]
+    <div id='account-update-email-error'> <!-- borrow css from update-email page -->
+        [% l('"<b>[_1]</b>" is not a valid username.  Usernames cannot have any spaces.  Please try a different username.', ctx.invalid_username) | html %]
+    </div>
+
+[% ELSIF ctx.username_exists %]
+    <div id='account-update-email-error'>
+        [% bad_user = ctx.username_exists | html %]
+        [% | l(bad_user) %]
+        The username "<b>[_1]</b>" is taken.  Please try a different username.
+        [% END %]
+    </div>
+[% END %]
+
+<form method='POST' id='account-update-email'> 
+    <table> 
+        <tr><td>[% l('Current Username') %]</td><td>[% ctx.user.usrname | html %]</td></tr>
+        <tr><td>[% l('New Username') %]</td><td><input type='text' name='username' value='[% ctx.invalid_username | html %]'/></td></tr>
+        <tr><td colspan='2' align='center'><input type='submit'/></td></tr>
+    </table>
+</form>
+
+[% END %]
diff --git a/Open-ILS/src/templates/opac/parts/advanced/expert.tt2 b/Open-ILS/src/templates/opac/parts/advanced/expert.tt2
new file mode 100644 (file)
index 0000000..4dc76b3
--- /dev/null
@@ -0,0 +1,29 @@
+<form action="[% ctx.opac_root %]/results" method="GET">
+    <div class="header_middle">[% l("Expert Search") %]</div>
+    <input type="hidden" name="_special" value="1" />
+    <table class="expert-search">
+        <tbody id="adv_expert_rows_here">
+            <tr id="adv_expert_row">
+                <th>[% l("Tag:") %]</th>
+                <td><input type="text" name="tag" size="3" /></td>
+                <th>[% l("Subfield:") %]</th>
+                <td><input type="text" name="subfield" size="1" /></td>
+                <th>[% l("Value:") %]</th>
+                <td><input type="text" name="term" size="16" /></td>
+                <td>
+                    <a href="javascript:;" class="row-remover"
+                        title="[% l('Remove row') %]" alt="[% l('Remove row') %]"
+                        onclick='return killRowIfAtLeast(1, this);'><img src="[% ctx.media_prefix %]/images/adv_row_close_btn.png" /></a>
+                </td>
+            </tr>
+        </tbody>
+        <tfoot>
+            <tr>
+                <td colspan="2"><a href="javascript:addExpertRow();">[ [% l("Add row") %] ]</a></td>
+                <td colspan="4">
+                    <input type="image" src="[% ctx.media_prefix %]/images/search_btn.gif" alt="[% l('Search') %]" title="[% l('Search') %]" />
+                </td>
+            </tr>
+        </tfoot>
+    </table>
+</form>
diff --git a/Open-ILS/src/templates/opac/parts/advanced/global_row.tt2 b/Open-ILS/src/templates/opac/parts/advanced/global_row.tt2
new file mode 100644 (file)
index 0000000..1598b69
--- /dev/null
@@ -0,0 +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; %]
+
+<!-- tag the second row so the bool column won't be hidden -->
+<tr[% IF loop.index == 1 %] id="adv_global_row"[% END %]>
+    <td align='left' width='100%' nowrap='nowrap'>
+
+        <!-- bool selector.  hide for first row.  safe to ignore first bool value in form submission -->
+        <select name='bool' style='width: auto' [% IF loop.first %] class='invisible' [% END %]>
+            <option value='and' [% b == 'and' ? 'selected="selected"' : '' %]>[% l('And') %]</option>
+            <option value='or' [% b == 'or' ? 'selected="selected"' : '' %]>[% l('Or') %]</option>
+        </select>
+
+        <!-- keyword, subject, etc. selector -->
+        <span class="qtype_selector_margin">
+            [% INCLUDE "opac/parts/qtype_selector.tt2"
+                query_type=qtype %]
+        </span>
+
+        <select name='contains' style='margin-right: 7px;'>
+            [% FOR o IN contains_options; -%]
+            <option value="[% o.value %]" [% c == o.value ? ' selected="selected"' : '' %]>[% o.label %]</option>
+            [% END %]
+        </select>
+        <input type='text' size='18' name='query' value="[% q | html %]" x-webkit-speech />
+        <a href="javascript:;" class="row-remover"
+            title="[% l('Remove row') %]" alt="[% l('Remove row') %]"
+            onclick='return killRowIfAtLeast(2, this);'><img src="[% ctx.media_prefix %]/images/adv_row_close_btn.png" /></a>
+    </td>
+</tr>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/parts/advanced/numeric.tt2 b/Open-ILS/src/templates/opac/parts/advanced/numeric.tt2
new file mode 100644 (file)
index 0000000..de54947
--- /dev/null
@@ -0,0 +1,29 @@
+<form action="[% ctx.opac_root %]/results" method="GET">
+    <div class="header_middle">[% l("Numeric Search") %]</div>
+    <input type="hidden" name="contains" value="contains" />
+    <input type="hidden" name="_special" value="1" />
+    <table>
+        <tr>
+            <td>
+                <select name="qtype">
+                    <!-- TODO: Pull labels from config.metabib_field.label -->
+                    <option value="identifier|isbn">[% l('ISBN') %]</option>
+                    <option value="identifier|issn">[% l('ISSN') %]</option>
+                    <option value="identifier|bib_cn">[% l('Bib Call Number') %]</option>
+                    <option value="cnbrowse">[% l('Call Number (Shelf Browse)') %]</option>
+                    <option value="identifier|lccn">[% l('LCCN') %]</option>
+                    <option value="identifier|tcn">[% l('TCN') %]</option>
+                    <option value="item_barcode">[% l('Item Barcode') %]</option>
+                </select>
+            </td>
+            <td>
+                <input type="text" name="query" size="16" />
+            </td>
+        </tr>
+        <tr>
+            <td colspan="2" align="right">
+                <input type="image" alt="[% l('Search') %]"
+                    src="[% ctx.media_prefix %]/images/search_btn.gif" />
+            </td>
+    </table>
+</form>
diff --git a/Open-ILS/src/templates/opac/parts/advanced/search.tt2 b/Open-ILS/src/templates/opac/parts/advanced/search.tt2
new file mode 100644 (file)
index 0000000..f856ce8
--- /dev/null
@@ -0,0 +1,128 @@
+<form action="[% ctx.opac_root %]/results" method="GET">
+<table id='adv_global_search' class='data_grid data_grid_center' width='100%'>
+    <tr style='border-bottom: none;'>
+        <!-- Contains the user-addable(?) rows to define search class, containment and text -->
+        <td valign='top' class='adv_global_input_container'>
+            <table width='100%' id='adv_global_input_table'>
+                <thead>
+                    <tr>
+                        <td>
+                            <div style="width:100%;" class="header_middle">
+                                [% l("Search Input") %]
+                            </div>
+                        </td>
+                    </tr>
+                </thead>
+                <tbody id='adv_global_tbody'>
+                    [% INCLUDE "opac/parts/advanced/global_row.tt2" %]
+                    <!-- add a new row -->
+                    <tr id='adv_global_addrow'>
+                        <td align='left' style="padding-top:7px;">
+                            <a href="javascript:;" id="myopac_new_global_row" onclick='addSearchRow();'>[% l('Add Search Row') %]</a>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td align='top'>
+          <div style="width:100%;" class="header_middle">[% l('Search Filters') %]</div>
+          <table cellpadding='10' cellspacing='0' border='0'><tr>
+            <td valign='top'>
+                <strong>[% l("Item Type") %]</strong><br />
+                [%  INCLUDE "opac/parts/coded_value_selector.tt2"
+                        attr=["mattype", "item_type"] multiple="multiple" size="4" %]
+            </td>
+            <td valign='top'>
+                <strong>[% l("Language") %]</strong><br />
+                [%  INCLUDE "opac/parts/coded_value_selector.tt2"
+                        attr="item_lang" multiple="multiple" size="4" %]
+            </td>
+            <td valign='top'>
+                <strong>[% l("Audience") %]</strong><br />
+                    [% INCLUDE "opac/parts/coded_value_selector.tt2"
+                        attr="audience" multiple="multiple" size="4" %]
+                </select>
+            </td>
+            <td valign='top'>
+            <strong>[% l("Sort Results") %]</strong>
+              <table class='adv_global_filter_sort'>
+                <tr>
+                    <td align='center' width='100%'>
+                        [% INCLUDE "opac/parts/filtersort.tt2"
+                            value=CGI.param('sort') %]
+                    </td>
+                </tr>
+              </table>
+            </td>
+          </tr></table>
+        </td>
+    </tr>
+    <tr>
+        <td colspan="2">
+            <table cellpadding='10' cellspacing='0' border='0'>
+                <tbody>
+                    <tr>
+                        <td valign='top'>
+                            <strong>[% l("Search Library") %]</strong><br />
+                            [% PROCESS "opac/parts/org_selector.tt2";
+                                PROCESS build_org_selector name='loc' value=loc %]
+                            <div style="position:relative;top:7px;">
+                                <input type='checkbox' name="modifier"
+                                    value="available"[% CGI.param('modifier').grep('available').size ? ' checked="checked"' : '' %]
+                                    id='opac.result.limit2avail' />
+                                <label style="position:relative;top:-2px;"
+                                    for='opac.result.limit2avail'>
+                                    [% l("Limit to Available") %]</label>
+                            </div>
+                        </td>
+                        <td valign='top'>
+                            <strong>[% l("Publication Year") %]</strong><br />
+                            <select name='pubdate' onchange='
+                                if(this.selectedIndex == 3)
+                                    unHideMe($("adv_global_pub_date_2_span"));
+                                else
+                                    hideMe($("adv_global_pub_date_2_span"));'>
+                                    [%  FOR opt IN [
+                                            {"code" => "is", "label" => l("Is")},
+                                            {"code" => "before", "label" => l("Before")},
+                                            {"code" => "after", "label" => l("After")},
+                                            {"code" => "between", "label" => l("Between")}
+                                        ];
+                                            |l(opt.code, opt.label) %]
+                                        <option value="[_1]"[% CGI.param('pubdate') == opt.code ? ' selected="selected"' : '' %]>[_2]</option>
+                                    [%  END; END %]
+                            </select>    
+                            <div style='margin-top:5px;'>
+                                <input name='date1' type='text' size='4' maxlength='4' value="[% CGI.param('date1') | html %]" />
+                                <span id='adv_global_pub_date_2_span' class='[% CGI.param("pubdate") == "between" ? "" : "hide_me" %]'>
+                                   [% l("and") %] <input name='date2' type='text' size='4' maxlength='4' value="[% CGI.param('date2') | html %]" />
+                                </span>
+                            </div>
+                        </td>
+                    </tr>
+                    <!-- TODO: Copy Location Filter -->
+                    <tr class='hide_me'>
+                        <td align='right'>[% l("Shelving Location") %]</td>
+                        <td align='left'>
+                            <select size='3' multiple='multiple'>
+                                [%# TODO: add filter options... %]
+                            </select>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </td>
+    </tr>
+    <tr class='border_4_2'>
+        <td align="left" colspan='2'>
+            <input type="image" src="[% ctx.media_prefix %]/images/search_btn.gif"
+            alt="[% l('Search') %]" class='pointer' />
+            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            <a href="[% mkurl('', {}, 1) %]">[% l('Reset Form') %]</a>
+        </td>
+    </tr>
+</table>
+<input type="hidden" name="_adv" value="1" />
+</form>
diff --git a/Open-ILS/src/templates/opac/parts/anon_list.tt2 b/Open-ILS/src/templates/opac/parts/anon_list.tt2
new file mode 100644 (file)
index 0000000..a4630ca
--- /dev/null
@@ -0,0 +1,65 @@
+        [% IF ctx.mylist.size %]
+        <form action="[% ctx.opac_root %]/mylist/move" method="POST">
+        <div id='acct_list_template2'>
+            <div style="width:100%">
+                <table cellpadding="0" cellspacing="0" border="0">
+                    <tr>
+                        <td id='anon_list_name'>
+                            [% l('Temporary List') %]
+                        </td>
+                        <td>
+                            <!-- <a href="#"><img
+                                alt="[% l('Anonymous List Help') %]"
+                                src="[% ctx.media_prefix %]/images/question-mark.png" /></a>-->
+                        </td>
+                    </tr>
+                </table>
+                <div class="float-right"></div>
+                <div class="clear-both pad-bottom-five"></div>
+            </div>
+            <table cellpadding='0' cellspacing='0' border='0'>
+                <thead id="acct_list_header_anon">
+                    <tr>
+                        <td width="1%" style="padding-left:10px;">
+                            <input type="checkbox" onclick="
+                                var inputs=document.getElementsByTagName('input'); 
+                                for (i = 0; i < inputs.length; i++) { 
+                                    if (inputs[i].name == 'record' && !inputs[i].disabled) inputs[i].checked = this.checked;}"/>
+                        </td>
+                        <td width="49%" style="padding-left:5px;">[% l('Title') %]</td>
+                        <td width="49%" style="padding-left:5px;">[% l('Author(s)') %]</td>
+                        <td width="1%" class="nowrap">
+                            <select class="selector_actions_for_list" name="action">
+                                <option>[% l('-- Actions for this list --') %]</option>
+                                <option value="place_hold">[% l('Place Hold') %]</option>
+                                <option value="delete">[% l('Remove Items') %]</option>
+                                [% IF ctx.user AND ctx.bookbags.size %]
+                                <optgroup label="Move selected items to">
+                                    [% FOR bbag IN ctx.bookbags %]]
+                                    <option value="[% bbag.id %]" class="selector_actions_for_list_inner_option">[% bbag.name | html %]</option>
+                                    [% END %]
+                                </optgroup>
+                                [% END %]
+                            </select>
+                            <input type="submit" value="[% l('Go') %]" />
+                        </td>
+                    </tr>
+                </thead>
+                <tbody id='anon_list_tbody'>
+                    [% FOR item IN ctx.mylist;
+                        attrs = {marc_xml => ctx.mylist_marc_xml.$item};
+                        PROCESS get_marc_attrs args=attrs %]
+                    <tr>
+                        <td class="item_list_padding" style="padding-left: 10px;">
+                            <input type="checkbox" name="record" value="[% item %]" />
+                        </td>
+                        <td class="item_list_padding" style="padding-left: 5px;">[% attrs.title | html %]</td>
+                        <td class="item_list_padding" style="padding-left: 5px;">[% attrs.author | html %]</td>
+                    </tr>
+                    [% END %]
+                </tbody>
+            </table>
+            <br /><br />
+        </div>
+        </form>
+        [% END %]
diff --git a/Open-ILS/src/templates/opac/parts/base.tt2 b/Open-ILS/src/templates/opac/parts/base.tt2
new file mode 100644 (file)
index 0000000..c66c74f
--- /dev/null
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml' lang='[% ctx.locale %]' xml:lang='[% ctx.locale %]'>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+        [% IF ctx.authtime %]
+        <meta http-equiv="refresh" content="[% ctx.authtime %];[% ctx.logout_page %]">
+        [% END %]
+        <link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/default/opac/semiauto.css" />
+        <link rel="stylesheet" type="text/css" href="[% ctx.media_prefix %]/css/skin/default/opac/style.css" />
+        <title>[% l('Catalog - [_1]', ctx.page_title) %]</title>
+        <link rel="unapi-server" type="application/xml" title="unAPI" href="/opac/extras/unapi" />
+    </head>
+    <body>
+        [% content %] 
+        [% INCLUDE 'opac/parts/footer.tt2' %]
+        [% INCLUDE 'opac/parts/js.tt2' %]
+        [% INCLUDE 'opac/parts/chilifresh.tt2' %]
+    </body>
+</html>
diff --git a/Open-ILS/src/templates/opac/parts/chilifresh.tt2 b/Open-ILS/src/templates/opac/parts/chilifresh.tt2
new file mode 100644 (file)
index 0000000..937e20f
--- /dev/null
@@ -0,0 +1,17 @@
+[%-  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; 
+%]
+    <!-- Set up the chilifresh account information and load the JS -->
+    <input type="hidden" id="chilifresh_account" name="chilifresh_account" value="[% ENV.OILS_CHILIFRESH_ACCOUNT %]"/>
+    <!--
+    <input type="hidden" id="chilifresh_profile" name="chilifresh_profile" value="[% ENV.OILS_CHILIFRESH_PROFILE %]"/>
+    -->
+    <input type="hidden" id="chilifresh_version" name="chilifresh_version" value="onsite_v1" />
+    <input type="hidden" id="chilifresh_type" name="chilifresh_type" value="search" />
+    <script type="text/javascript" src="[% chili_url %]"></script>
+    <script>try { setTimeout(chili_init, 0); } catch(E) {}</script>
+[%- END %]
diff --git a/Open-ILS/src/templates/opac/parts/coded_value_selector.tt2 b/Open-ILS/src/templates/opac/parts/coded_value_selector.tt2
new file mode 100644 (file)
index 0000000..33469fe
--- /dev/null
@@ -0,0 +1,28 @@
+
+[%- 
+    # If caller passes a list of possible attribute types, 
+    # search all until we find some values
+
+    IF !attr.size; attr = [attr]; END;
+    all_values = [];
+    attr_class = '';
+    FOR attr_class IN attr;
+        all_values = ctx.search_ccvm('ctype', attr_class);
+        IF all_values.size > 0; LAST; END;
+    END;
+    name = name || "fi:" _ attr_class;
+    id = id || attr_class _ "_selector";
+    values = values || CGI.param(name); 
+-%]
+
+<select id='[% id %]' name='[% name %]'[%
+    multiple ? ' multiple="multiple"' : '';
+    size ? (' size="' _ size _ '"') : ''; %]>
+[% IF none_ok %]
+    <option value=''>[% none_label ? none_label : l('-- Any --') %]</option>
+[% END %]
+[% FOR o IN all_values %]
+    <option value='[% o.code | uri %]'[% values.grep('^' _ o.code _ '$').size ? ' selected="selected"' : '' %]>[% o.value | html %]</option>
+[%  END -%]
+</select>
+
diff --git a/Open-ILS/src/templates/opac/parts/config.tt2 b/Open-ILS/src/templates/opac/parts/config.tt2
new file mode 100644 (file)
index 0000000..ab61c23
--- /dev/null
@@ -0,0 +1,55 @@
+[% 
+
+##############################################################################
+# This file contains skin-level configuration settings.
+# Many of these settings will probably migrate into actor.org_unit_settings.
+##############################################################################
+
+##############################################################################
+# RefWorks configuration
+##############################################################################
+# RefWorks is a Web-based citation manager
+ctx.refworks.enabled = 'false';
+
+# Base URL for RefWorks
+ctx.refworks.url = 'http://www.refworks.com';
+
+# Some sites have a hosted RefWorks instance at a different URL;
+# in addition, you might want to proxy access to RefWorks - for example:
+# ctx.refworks.url = 'http://librweb.laurentian.ca/login?url=http://refworks.scholarsportal.info';
+
+##############################################################################
+# OpenURL resolution
+##############################################################################
+# Evergreen provides the ability to point at an OpenURL resolver to find
+# electronic resources for a given ISSN or ISBN. Currently, only the SFX
+# resolver is supported.
+#
+# You must enable the open-ils.resolver instance in opensrf.xml to use
+# this feature.
+##############################################################################
+
+openurl.enabled = 'false';
+openurl.baseurl = 'http://sfx.example.com/instance';
+
+##############################################################################
+# Google Analytics support
+##############################################################################
+# You can enable Google Analytics support in Evergreen by entering a
+# valid Google Analytics code and changing 'false' to 'true'
+##############################################################################
+google_analytics.enabled = 'false';
+google_analytics.code = 'UA-9999999-99';
+
+##############################################################################
+# Misc. UI Settings
+##############################################################################
+
+##############################################################################
+# Size of the jacket image to display on the record detail summary.
+# Sizes vary depending on added content provider.
+# Options are "small", "medium", and "large"
+record.summary.jacket_size = 'medium';
+
+
+%]
diff --git a/Open-ILS/src/templates/opac/parts/filtersort.tt2 b/Open-ILS/src/templates/opac/parts/filtersort.tt2
new file mode 100644 (file)
index 0000000..428626c
--- /dev/null
@@ -0,0 +1,15 @@
+<select class="results_header_sel" id='opac.result.sort' name="sort">
+    <option value=''>[% l("Sort by Relevance") %]</option>
+    <optgroup label='[% l("Sort by Title") %]'>
+        <option value='titlesort'[% value == 'titlesort' ? ' selected="selected"' : '' %]>[% l("Title: A to Z") %]</option>
+        <option value='titlesort.desc'[% value == 'titlesort.desc' ? ' selected="selected"' : '' %]>[% l("Title: Z to A") %]</option>
+    </optgroup>
+    <optgroup label='[% l("Sort by Author") %]'>
+        <option value='authorsort'[% value == 'authorsort' ? ' selected="selected"' : '' %]>[% l("Author: A to Z") %]</option>
+        <option value='authorsort.desc'[% value == 'authorsort.desc' ? ' selected="selected"' : '' %]>[% l("Author: Z to A") %]</option>
+    </optgroup>
+    <optgroup label='[% l("Sort by Publication Date") %]'>
+        <option value='pubdate.desc'[% value == 'pubdate.desc' ? ' selected="selected"' : '' %]>[% l("Date: Newest to Oldest") %]</option>
+        <option value='pubdate'[% value == 'pubdate' ? ' selected="selected"' : '' %]>[% l("Date: Oldest to Newest") %]</option>
+    </optgroup>
+</select>
diff --git a/Open-ILS/src/templates/opac/parts/footer.tt2 b/Open-ILS/src/templates/opac/parts/footer.tt2
new file mode 100644 (file)
index 0000000..0443b97
--- /dev/null
@@ -0,0 +1,25 @@
+[%- 
+    USE CGI = CGI_utf8;
+    hostname = CGI.url({'-base' => 1});
+-%]
+<div id="footer">
+    <a href="[% hostname %]">[% l('Dynamic catalog') %]</a> &nbsp;|&nbsp;
+    <a href="http://example.com">[% l('Bottom Link 2') %]</a> &nbsp;|&nbsp;
+    <a href="http://example.com">[% l('Bottom Link 3') %]</a> &nbsp;|&nbsp;
+    <a href="http://example.com">[% l('Bottom Link 4') %]</a> &nbsp;|&nbsp;
+    <a href="http://example.com">[% l('Bottom Link 5') %]</a>
+
+    <div id="copyright_text" style="margin-top: 2em;">
+        [% l('Copyright &copy; 2006-[_1] Georgia Public Library Service, and others', date.format(date.now, '%Y')) %]
+    </div>
+    <div id="footer_logo">
+        [% l('Powered by') %]
+        <a href="http://evergreen-ils.org">
+            <img src="[% ctx.media_prefix %]/opac/images/eg_tiny_logo.jpg"
+                style="border:none; width: 94px; height: 16px;"
+                alt="[% l('Evergreen') %]"
+            />
+        </a>
+    </div>
+</div>
+
diff --git a/Open-ILS/src/templates/opac/parts/header.tt2 b/Open-ILS/src/templates/opac/parts/header.tt2
new file mode 100644 (file)
index 0000000..66e47ac
--- /dev/null
@@ -0,0 +1,69 @@
+[%- USE money = format(l('$%.2f'));
+    USE date;
+    USE CGI = CGI_utf8;
+    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]';
+
+    is_advanced = CGI.param("_adv").size;
+    is_special = CGI.param("_special").size;
+
+    # -----------------------------------------------------------------------------
+    # mkurl( destination_page, params_to_set, params_to_clear )
+    #
+    # Current page, updated params:
+    # mkurl('', {foo => 'bar', boo => 'baz'});
+    #
+    # New page, one param is a list:
+    # mkurl('http://flarg.baz/squz', {foo => 'bar', boo => ['baz', 'faz']});
+    #
+    # New page, clear all existing params before applying new ones:
+    # mkurl('/fuz/buster', {foo => 'bar', boo => 'baz'}, 1); 
+    #
+    # Current page, clear 'some_param' from the existing params:
+    # mkurl('', {foo => 'bar', boo => 'baz'}, ['some_param']);
+    MACRO mkurl(page, params, clear_params) BLOCK;
+
+        # clone the query string to avoid clobberation
+        cgi = CGI.new(CGI.query_string);
+
+        # remove requested params
+        IF clear_params.0; # array
+            FOR p IN clear_params; cgi.delete(p); END;
+        ELSIF clear_params;
+            cgi.delete_all();
+        END;
+
+        # x and y are artifacts of using <input type="image" /> tags 
+        # instead of true submit buttons, and their values are never used.
+        cgi.delete('x', 'y'); 
+
+        # apply user params
+        FOR k IN params.keys;
+            encoded = [];
+            list = params.$k.0 ? params.$k : [params.$k];
+            # CGI croaks on already-decoded strings.  force-encode to be safe.
+            FOR p IN list; encoded.push(ctx.encode_utf8(p)); END;
+            foo = cgi.param("-name", k, "-values", encoded);
+        END;
+
+        # for url brevity, remove any params that have no value
+        FOR p IN cgi.param;
+            val = cgi.param(p);
+            IF val == ''; cgi.delete(p); END;
+        END;
+
+        IF page;
+            IF cgi.query_string;
+                page _ '?' _ cgi.query_string;
+            ELSE;
+                page;
+            END;
+        ELSE;
+            # staying on the current page
+            cgi.url("-path" => 1, "-query" => 1);
+        END;
+    END;
+%]
diff --git a/Open-ILS/src/templates/opac/parts/hold_error_messages.tt2 b/Open-ILS/src/templates/opac/parts/hold_error_messages.tt2
new file mode 100644 (file)
index 0000000..9ba6f0e
--- /dev/null
@@ -0,0 +1,38 @@
+[%
+    # XXX It might be cleaner to move this into its own file or something.
+    #
+    # The following hash should have fail_parts as keys and user/patron-friendly
+    # strings as values.  If the system returns an event with a fail_part when
+    # you attempt to place a hold and the fail part matches something in this
+    # hash, this is the message that will be displayed to the user. Wait until
+    # these are used to pass them through l() for i18n.
+
+    FAIL_PART_MSG_MAP = {
+        "actor.usr.barred" => "The patron is barred",
+        "asset.copy.circulate" => "The item does not circulate",
+        "asset.copy_location.circulate" => "Items from this shelving location do not circulate",
+        "asset.copy.status" => "The item cannot circulate at this time",
+        "circ.holds.target_skip_me" => "The item's circulation library does not fulfill holds",
+        "config.circ_matrix_circ_mod_test" => "The patron has too many items of this type checked out",
+        "config.circ_matrix_test.available_copy_hold_ratio" => "The available item-to-hold ratio is too low",
+        "config.circ_matrix_test.circulate" => "Circulation rules reject this item as non-circulatable",
+        "config.circ_matrix_test.total_copy_hold_ratio" => "The total item-to-hold ratio is too low",
+        "config.hold_matrix_test.holdable" => "Hold rules reject this item as unholdable",
+        "config.hold_matrix_test.max_holds" => "The patron has reached the maximum number of holds",
+        "config.rule_age_hold_protect.prox" => "The item is too new to transit this far",
+        "no_item" => "The system could not find this item",
+        "no_ultimate_items" => "The system could not find any items to match this hold request",
+        "no_matchpoint" => "System rules do not define how to handle this item",
+        "no_user" => "The system could not find this patron",
+        "transit_range" => "The item cannot transit this far"
+    };
+
+
+    # This works like the above has, but instead of fail_parts for keys, use
+    # the textcode of the event.  This will only be consulted for events
+    # that do not have a fail_part matching something in the above hash.
+    # Wait until these are used to pass them through l() for i18n.
+
+    EVENT_MSG_MAP = {
+    };
+%]
diff --git a/Open-ILS/src/templates/opac/parts/homesearch.tt2 b/Open-ILS/src/templates/opac/parts/homesearch.tt2
new file mode 100644 (file)
index 0000000..e5104b6
--- /dev/null
@@ -0,0 +1,3 @@
+<div style='width:664px;height:35px;background:#FFFFFF;'>
+    <strong><center><img src="[% ctx.media_prefix %]/opac/images/main_logo.jpg" /></center></strong>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/js.tt2 b/Open-ILS/src/templates/opac/parts/js.tt2
new file mode 100644 (file)
index 0000000..22ae555
--- /dev/null
@@ -0,0 +1,32 @@
+<!-- JS imports, etc.  -->
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/simple.js"></script>
+
+[%- PROCESS "opac/parts/config.tt2"; %]
+
+[%- IF ctx.is_staff %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/staff.js"></script>
+[%- END %]
+
+[%- IF ENV.OILS_NOVELIST_URL AND ctx.page == 'record';
+    url = ENV.OILS_NOVELIST_URL;
+    IF CGI.https; url = url.replace('^http:', 'https:'); END; %]
+<script type='text/javascript' id='EIT' src='[% url %]'></script>
+[%- END %]
+
+[%- IF google_analytics.enabled == 'true' %]
+<!-- Google Analytics -->
+<script type="text/javascript">
+/* uncomment when ready */ /*
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', '[% google_analytics.code %]']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+*/
+</script>
+<!-- End Google Analytics -->
+[%- END %]
diff --git a/Open-ILS/src/templates/opac/parts/login/form.tt2 b/Open-ILS/src/templates/opac/parts/login/form.tt2
new file mode 100644 (file)
index 0000000..b22c616
--- /dev/null
@@ -0,0 +1,156 @@
+<!-- TODO: MOVE INTO SEPARATE FORGOT-PASSWORD PAGE 
+
+<div class="hide_me">
+       <div class='login_text color_1' style='padding: 4px; text-align: center;'>
+               <span>[% l("Login") %]</span>
+       </div>
+       <br/>
+</div>
+<div class="hide_me" id="forget_pw">
+    <h1>Password Reset</h1>
+       Username or Barcode<br />
+       <input type="text" id="forget_pw_user" /><br /><br />
+       Email Address on account<br />
+       <input type="text" id="forget_pw_email" /><br />
+    <a href="#">Submit</a> &nbsp;
+    <a href="#">Cancel</a>
+</div>
+<table id='change_pw_table' class='data_grid hide_me' style='margin-left: 20px;' width='95%'>
+       <thead>
+        <tr><td colspan='2' align='center'><b>[% l("Password") %]</b></td></tr>
+    </thead>
+    <tbody>
+        <tr>
+            <td colspan='2' style='padding:10px;'>
+                [% l("This appears to be the first time you have logged in.  You will need to change your password.") %]
+                [% l("The password must be at least 7 characters in length,
+ contain at least one letter (a-z/A-Z),
+ and contain at least one number.") %]
+            </td>
+        </tr>
+        <tr>
+            <td>[% l("Enter your current password") %]</td>
+            <td><input type='password' id='change_pw_current'/></td>
+        </tr>
+        <tr>
+            <td>[% l("Enter the new password") %]</td>
+            <td><input type='password' id='change_pw_1'/></td>
+        </tr>
+        <tr>
+            <td>[% l("Re-type the new password for verification") %]</td>
+            <td><input type='password' id='change_pw_2'/></td>
+        </tr>
+        <tr><td><br/></td><td/></tr>
+        <tr class='color_1'>
+            <td colspan='2' align='center'>
+                <span class='login_text' style='margin-right: 20px;'>
+                    <input type='submit' value='[% l("Update Password") %]'  id='change_pw_button'/>
+                </span>
+            </td>
+        </tr>
+    </tbody>
+</table>
+
+
+<span id='pw_no_match' class='hide_me'>[% l("Passwords do not match") %]</span>
+<span id='pw_update_successful' class='hide_me'>[% l("Password successfully updated") %]</span>
+<span id='pw_not_strong' class='hide_me'>
+    [% l("The password provided is not strong enough.") %]
+    [% l("The password must be at least 7 characters in length, contain at least one letter (a-z/A-Z), and contain at least one number.") %]
+</span>
+
+ ^== TODO: MOVE INTO SEPARATE FORGOT-PASSWORD PAGE  -->
+
+[% IF ctx.login_failed_event %]
+<div id='login-failed-message'>
+[%
+    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;
+%]
+</div>
+[% END %]
+
+<div>
+    <div style="height:20px;"></div>
+    <form method='POST'>
+        <table cellpadding="0" cellspacing="0" border="0">
+            <tr>
+                <td valign="top" width="676" class="login_boxes left_brain">
+                    <table cellpadding="0" cellspacing="0" border="0"
+                        width="100%">
+                        <tr>
+                               <td colspan="2" style="padding-bottom: 10px;">
+                                <h1>[% l('Log in to Your Account') %]</h1>
+                                [% l('Please enter the following information:') %]
+                                <br /><br />
+                            </td>
+                        </tr>
+                        <tr>
+                            <td width="42%" class="lbl1">
+                                [% l('Library Card Number or Username') %]
+                                <br />
+                                <span class="lbl2">
+                                    [% l('Please include leading zeros and no spaces.') %]
+                                    <br/>
+                                    [% l('Example: 0026626051') %]
+                                </span>
+                                <br /><br />
+                            </td>
+                            <td width="58%" valign="top">
+                                <div class="input_bg">
+                                    <input type="text" id="username_field" name="username"/>
+                                </div>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td colspan="2">
+                                <div style="height:15px;"></div>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td valign="top" class="lbl1">
+                                [% l('PIN Number or Password') %]<br />
+                                [% INCLUDE "opac/parts/login/password_hint.tt2" %]
+                            </td>
+                            <td valign="top">
+                                <div class="input_bg">
+                                    <input name="password" type="password" />
+                                </div>
+                                <div style="padding-top:7px;">
+                                    [%
+                                        # If no redirect is offered or it's leading us back to the 
+                                        # login form, redirect the user to My Account
+                                        redirect = CGI.param('redirect_to') || ctx.referer;
+                                        IF !redirect OR redirect.match(ctx.path_info _ '$');
+                                            redirect = CGI.url('-full' => 1) _ '/opac/myopac/main';
+                                        END;
+                                        redirect = redirect  | replace('^http:', 'https:');
+                                    %]
+                                    <input type='hidden' name='redirect_to' value='[% redirect %]'/>
+                                    <input type="checkbox" name="persist" id="login_persist" /><label for="login_persist"> [% l('Stay logged in?') %]</label>
+                                </div>
+                                <div style="padding-top:14px;">
+                                    <input type='image' alt="[% l('Log in') %]" src="[% ctx.media_prefix %]/images/login-btn2.png" />
+                                    <!-- TODO
+                                    <a href="reset_password"
+                                        style="position:relative;top:-13px;left:2px;font-size:10px;">Forgot your PIN?</a>
+                                    -->
+                                </div>
+                               </td>
+                        </tr>
+                    </table>
+                    <br /><br />
+                </td>
+                   <td><div style="width:10px;"></div></td>
+                [% INCLUDE "opac/parts/login/help.tt2" %]
+            </tr>
+        </table>
+    </form>
+    <div class="clear-both"></div>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/login/help.tt2 b/Open-ILS/src/templates/opac/parts/login/help.tt2
new file mode 100644 (file)
index 0000000..16db31f
--- /dev/null
@@ -0,0 +1,12 @@
+<td class="login_boxes right_brain" align="center" valign="top" width="291">
+
+    <a href="http://example.com"><img 
+        src="[% ctx.media_prefix %]/images/questions.png" alt="[% l('Questions?') %]" style="margin-top:29px;" /></a>
+
+    <div style="width:182px;color:black;padding:5px 25px;">
+        [% l('Visit our FAQs section for answers to common questions about how to use your account.') %]
+    </div>
+
+    <a href="http://example.com"><img
+        alt="[% l('FAQs') %]" src="[% ctx.media_prefix %]/images/faqs-btn.png" style="margin-top:13px;" /></a>
+</td>
diff --git a/Open-ILS/src/templates/opac/parts/login/password_hint.tt2 b/Open-ILS/src/templates/opac/parts/login/password_hint.tt2
new file mode 100644 (file)
index 0000000..a95b47f
--- /dev/null
@@ -0,0 +1,5 @@
+<span class="lbl2">
+    [% | l('<br/>', '<br/>') %]
+       If this is your first time logging in, please enter [_1] the last 4 digits of your phone number. [_2] Example: 0926
+    [% END %]
+</span>
diff --git a/Open-ILS/src/templates/opac/parts/misc_util.tt2 b/Open-ILS/src/templates/opac/parts/misc_util.tt2
new file mode 100644 (file)
index 0000000..f1ded0e
--- /dev/null
@@ -0,0 +1,164 @@
+[% 
+    # Extract MARC fields from XML
+    #   get_marc_attrs( { marc_xml => doc } )
+    BLOCK get_marc_attrs;
+        xml = args.marc_xml;
+        args.isbns = [];
+        FOR isbn IN xml.findnodes('//*[@tag="020"]/*[@code="a"]');
+            args.isbns.push(isbn.textContent);
+        END;
+        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.title_extended = xml.findnodes('//*[@tag="245"]').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.isbns.0.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"]').textContent;
+                sfx_isbn = 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 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('<br/>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 %]
+        <div>
+            [% l('[_1] hold on [quant,_2,circulating copy,circulating copies]',
+                    hold.hold.queue_position, hold.hold.potential_copies) %]
+        </div>
+    [% END
+%]
diff --git a/Open-ILS/src/templates/opac/parts/myopac/base.tt2 b/Open-ILS/src/templates/opac/parts/myopac/base.tt2
new file mode 100644 (file)
index 0000000..6a4e839
--- /dev/null
@@ -0,0 +1,37 @@
+[%  WRAPPER "opac/parts/base.tt2" %]
+
+[% myopac_pages = [
+        {url => "main", name => "Account Summary"},
+        {url => "circs", name => "Items Checked Out"},
+        {url => "holds", name => "Holds"},
+        {url => "prefs", name => "Account Preferences"},
+        {url => "lists", name => "My Lists"}
+    ];
+    skin_root = "../"
+%]
+    [% INCLUDE "opac/parts/topnav.tt2" %]
+    <div id="search-wrapper">
+        [% INCLUDE "opac/parts/printnav.tt2" %]
+        [% INCLUDE "opac/parts/searchbar.tt2" %]
+    </div>
+    <div id="content-wrapper">
+        <div id="myopac_tabs">
+            <div id="acct_tabs">
+                [%- FOREACH page IN myopac_pages;
+                    IF page.url == myopac_page;
+                        cls_which = "on";
+                        ctx.page_title = "Your Account - " _ page.name;
+                    ELSE;
+                        cls_which = "off";
+                    END -%]
+                <a href="[% ctx.opac_root _ '/myopac/' _ page.url %]"
+                    class="acct-[% page.url; '-'; cls_which %] acct-tab"></a>
+                [% END %]
+            </div>
+        </div>
+        <div id="main-content">
+            [% content %]
+            <div class="common-full-pad"></div>
+        </div>
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/parts/myopac/main_base.tt2 b/Open-ILS/src/templates/opac/parts/myopac/main_base.tt2
new file mode 100644 (file)
index 0000000..7eb9c71
--- /dev/null
@@ -0,0 +1,102 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/misc_util.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2";
+%]
+
+<div id='myopac_summary_div' style="padding:0px;">
+
+    <div style="width:742px;float:left;">
+        <div class="header_middle">[% l('Account Summary') %]</div>
+    </div>
+
+    <!-- fines summary along the right of the page -->
+    [% IF myopac_main_page == "payment_form" OR (
+        !ctx.fines.circulation.size AND !ctx.fines.grocery.size
+    ) %]
+    <div id="myopac_sum_fines_placehold"></div>
+    [% ELSE %]
+    <div id="myopac_sum_fines">
+        <div style="position:absolute;">
+            <div style="position:relative;top:-15px;left:-23px;">
+                <img src="[% ctx.media_prefix %]/images/acct_sum_fines_tl.png" />
+            </div>
+        </div>
+        <div style="position:absolute;">
+            <div style="position:relative;top:-15px;left:172px;">
+                <img src="[% ctx.media_prefix %]/images/acct_sum_fines_tr.png" />
+            </div>
+        </div>
+        <div style="position:absolute;">
+            <div style="position:relative;top:161px;left:-23px;">
+                <img src="[% ctx.media_prefix %]/images/acct_sum_fines_bl.png" />
+            </div>
+        </div>
+        <div style="position:absolute;">
+            <div style="position:relative;top:161px;left:172px;">
+                <img src="[% ctx.media_prefix %]/images/acct_sum_fines_br.png" />
+            </div>
+        </div>
+        [% l('Fines:') %]
+        <span class='[% ctx.user_stats.fines.balance_owed ? "red" : ""%]'>
+            [% money(ctx.user_stats.fines.balance_owed) %]
+        </span><br />
+
+        <form action="[% ctx.opac_root %]/myopac/main_payment_form" method="GET"><input
+            type="image" title="[% l('Pay Fines') %]" alt="[% l('Pay Fines') %]"
+            onmouseover="this.src='[% ctx.media_prefix %]/images/pay-fines-btn-hover.png';"
+            onmouseout="this.src='[% ctx.media_prefix %]/images/pay-fines-btn.png';"
+            src="[% ctx.media_prefix %]/images/pay-fines-btn.png"
+            class="pos-rel-top-5" /></form>
+    </div>
+    [% END %]
+
+    <div style="width:662px;">
+        <div style="float:left;">
+            <div style="padding:10px 0px;"></div>
+            <div class="acct_sum_row">
+                <table width="100%" cellspacing="0" cellpadding="0">
+                    <tr>
+                        <td>[% l("Items Currently Checked out ([_1])", ctx.user_stats.checkouts.total_out) %]</td>
+                        <td align="right">
+                            <a href="[% ctx.opac_root %]/myopac/circs">[% l("View All") %]</a>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+            <div class="acct_sum_row">
+                <table width="100%" cellspacing="0" cellpadding="0">
+                    <tr>
+                        <td>[% l('Items Currently on Hold ([_1])', ctx.user_stats.holds.total) %]</td>
+                        <td align="right">
+                            <a href="[% ctx.opac_root %]/myopac/holds">[% l('View All') %]</a>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+            <div class="acct_sum_row">
+                <table width="100%" cellspacing="0" cellpadding="0">
+                    <tr>
+                        <td>[% l('Items ready for pickup ([_1])', ctx.user_stats.holds.ready) %]</td>
+                        <td align="right">
+                            <a href="[% ctx.opac_root %]/myopac/holds?available=1">[% l('View All') %]</a>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+        </div>
+    </div>
+    <div class="clear-both"></div>
+    <div id='fines_payments_wrapper'>
+        <div id='acct_fines_tabs'>
+            [% IF myopac_main_page == 'main' %]
+            <a href='#'><img src='[% ctx.media_prefix %]/images/acct_fines_on.jpg'/></a>
+            <a href='main_payments'><img src='[% ctx.media_prefix %]/images/acct_payments_off.jpg'/></a>
+            [% ELSE %]
+            <a href='main'><img src='[% ctx.media_prefix %]/images/acct_fines_off.jpg'/></a>
+            <a href='#'><img src='[% ctx.media_prefix %]/images/acct_payments_on.jpg'/></a>
+            [% END %]
+        </div>
+    </div>
+    [% content %]
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/parts/myopac/main_refund_policy.tt2 b/Open-ILS/src/templates/opac/parts/myopac/main_refund_policy.tt2
new file mode 100644 (file)
index 0000000..0a41658
--- /dev/null
@@ -0,0 +1,18 @@
+<tr>
+    <td colspan="3">
+        <br />
+        [% l('Important! You must have a printed receipt
+              to be eligible for a refund on lost items
+              (regulations allow for no exceptions).')
+        %]
+        <br />
+        <strong>
+        [% l('To ensure your necessary receipt information
+             is not lost, enter your email address above 
+             and a receipt will be emailed to you. Otherwise,
+             make certain you have a printed receipt in hand
+             before closing the payment receipt screen.')
+        %]
+        </strong>
+    </td>
+</tr>
diff --git a/Open-ILS/src/templates/opac/parts/myopac/prefs_base.tt2 b/Open-ILS/src/templates/opac/parts/myopac/prefs_base.tt2
new file mode 100644 (file)
index 0000000..0bd3eac
--- /dev/null
@@ -0,0 +1,56 @@
+[%  PROCESS "opac/parts/header.tt2";
+    WRAPPER "opac/parts/myopac/base.tt2"; %]
+
+<div id='myopac_prefs_div'>
+    <div id="acct_prefs_tabs" style="padding-bottom: 12px;color:#666;">
+        <div style="float:left;">
+
+        [% IF prefs_page == 'personal' %]
+            <div class="align">
+                <a href='#'><img src="[% ctx.media_prefix %]/images/sub_prefs_info_on.jpg" /></a>
+            </div>
+            <div class="align">
+                <a href='prefs_notify'><img src="[% ctx.media_prefix %]/images/sub_prefs_notify_off.jpg" /></a>
+            </div>
+            <div class="align">
+                <a href='prefs_settings'><img src="[% ctx.media_prefix %]/images/sub_prefs_search_off.jpg" /></a>
+            </div>
+        [% ELSIF prefs_page == 'notify' %]
+            <div class="align">
+                <a href='prefs'><img src="[% ctx.media_prefix %]/images/sub_prefs_info_off.jpg" /></a>
+            </div>
+            <div class="align">
+                <a href='#'><img src="[% ctx.media_prefix %]/images/sub_prefs_notify_on.jpg" /></a>
+            </div>
+            <div class="align" >
+                <a href='prefs_settings'><img src="[% ctx.media_prefix %]/images/sub_prefs_search_off.jpg" /></a>
+            </div>
+        [% ELSE %]
+            <div class="align">
+                <a href='prefs'><img src="[% ctx.media_prefix %]/images/sub_prefs_info_off.jpg" /></a>
+            </div>
+            <div class="align">
+                <a href='prefs_notify'><img src="[% ctx.media_prefix %]/images/sub_prefs_notify_off.jpg" /></a>
+            </div>
+            <div class="align" >
+                <a href='#'><img src="[% ctx.media_prefix %]/images/sub_prefs_search_on.jpg" /></a>
+            </div>
+        [% END %]
+        </div>
+    </div> 
+
+    <div class="clear-both"></div> <br/>
+
+    <div class="header_middle">
+        <span id="acct_prefs_header">[% l('Account Information and Preferences') %]</span>
+        <span class="float-right"> 
+            <a class="hide_me" href="#">[% l('Export List') %]</a><!-- what does this do? -->
+        </span>
+    </div>
+
+    <div class="clear-both normal-height"></div>
+
+[% content; %]
+
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/parts/myopac/prefs_hints.tt2 b/Open-ILS/src/templates/opac/parts/myopac/prefs_hints.tt2
new file mode 100644 (file)
index 0000000..e2fbc6b
--- /dev/null
@@ -0,0 +1,5 @@
+<p>
+    [% l('Ensure your account has a valid email address so that we can notify
+          you about available holds, items that are about to be overdue, and
+          overdue items!') %]
+</p>
diff --git a/Open-ILS/src/templates/opac/parts/org_selector.tt2 b/Open-ILS/src/templates/opac/parts/org_selector.tt2
new file mode 100644 (file)
index 0000000..1485679
--- /dev/null
@@ -0,0 +1,31 @@
+[%
+    BLOCK build_org_selector_options;
+        disabled = '';
+        selected = '';
+        IF can_have_vols_only AND walker.ou_type.can_have_vols != 't';
+            disabled = 'disabled="disabled"';
+        ELSIF walker.id == value;
+            selected = 'selected="selected"';
+        END;
+%]
+        <option value='[% walker.id | uri %]' [% selected %] [% disabled %]>
+            [%
+                pad = walker.ou_type.depth * 2;
+                FOR idx IN [0..pad]; '&nbsp;'; END;
+                walker.name | html;
+            %]
+        </option>
+        [%  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;
+%]
+    <select [% IF id %] id='[% id %]' [% END %] name='[% name %]'>
+    [% PROCESS build_org_selector_options walker=(org_unit || ctx.aou_tree) value=value %]
+    </select>
+[%  END %]
diff --git a/Open-ILS/src/templates/opac/parts/place_hold.tt2 b/Open-ILS/src/templates/opac/parts/place_hold.tt2
new file mode 100644 (file)
index 0000000..e7b67cd
--- /dev/null
@@ -0,0 +1,83 @@
+[%  PROCESS "opac/parts/misc_util.tt2";
+    PROCESS "opac/parts/hold_error_messages.tt2";
+%]
+
+<div id='holds_box' class='canvas' style='margin-top: 6px;'>
+    <h1>[% l('Place Hold') %]</h1>
+    <form method="POST">
+        <input type="hidden" name="hold_type" value="[% CGI.param('hold_type') | html %]" />
+        [%#
+            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;
+        %]
+        <input type="hidden" name="redirect_to" value="[% CGI.param('redirect_to') || CGI.referer | html %]" />
+
+        [% IF ctx.is_staff %]
+        <p class="staff-hold">
+            <input type="radio" id="hold_usr_is_requestor_not"
+                onchange="staff_hold_usr_input_disabler(this);"
+                name="hold_usr_is_requestor" value="0"
+                [% IF ctx.patron_recipient; ' checked="checked"'; END %] />
+            <label for="hold_usr_is_requestor_not">
+                [% l("Place hold for patron by barcode:") %]
+            </label>
+            <input type="text" name="hold_usr" id="hold_usr_input" value="[% ctx.patron_recipient.card.barcode | html %]" /><br />[%# XXX multi-barcode users? %]
+            <span>
+                <input type="radio" id="hold_usr_is_requestor"
+                    onchange="staff_hold_usr_input_disabler(this);"
+                    name="hold_usr_is_requestor" value="1" />
+                <label for="hold_usr_is_requestor">
+                    [% l("Place this hold for me ([_1] [_2])", ctx.user.first_given_name, ctx.user.family_name) | html %]
+                </label>
+            </span>
+        </p>
+        [% END %]
+
+        <!-- loop through the holds and display status of request where appropriate -->
+        <table id='hold-items-list'>
+        [% FOR hdata IN ctx.hold_data;
+            attrs = {marc_xml => hdata.marc_xml};
+            PROCESS get_marc_attrs args=attrs %]
+            <tr>
+                <td>
+                    <input type="hidden" name="hold_target" value="[% hdata.target.id | html %]" />
+                    <div class='hold-items-list-title'>[% attrs.title_extended | html %]</div>
+                </td>
+            </tr>
+        [% END %]
+        </table>
+
+        <p>
+            [% l('Pickup location:') %]
+            [% PROCESS "opac/parts/org_selector.tt2";
+                PROCESS build_org_selector name='pickup_lib' value=ctx.default_pickup_lib id='pickup_lib' can_have_vols_only=1 %]
+        </p>
+        <p>
+            [% |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 %]
+        </p>
+        <input type="image" name="submit" value="submit" title="[% l('Submit') %]"
+            alt="[% l('Submit') %]" src="[% ctx.media_prefix %]/images/btnSubmit.png" />
+        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+        <a href="javascript:history.go(-1);" id="holds_cancel"><img
+            alt="[% l('Cancel') %]" src="[% ctx.media_prefix %]/images/btnCancel.png" /></a>
+    </form>
+    <br /><br />
+    <p>
+        [% |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 %]
+        <br /><a href="#">[% l('Library phone numbers.') %]</a>
+    </p>
+    <p>
+        [% |l %]* For best possible service, we recommend keeping 
+        a printed copy of your most recent holds list.[% END %]
+    </p>
+</div>
+
diff --git a/Open-ILS/src/templates/opac/parts/place_hold_result.tt2 b/Open-ILS/src/templates/opac/parts/place_hold_result.tt2
new file mode 100644 (file)
index 0000000..794ecfa
--- /dev/null
@@ -0,0 +1,97 @@
+[%  PROCESS "opac/parts/misc_util.tt2";
+    PROCESS "opac/parts/hold_error_messages.tt2";
+    override_possible = 0;
+%]
+
+<!-- TODO: CSS for big/strong-->
+
+<div id='holds_box' class='canvas' style='margin-top: 6px;'>
+    <h1>[% l('Place Hold') %]</h1>
+
+    <form method="POST">
+        <input type="hidden" type="name" name="override" value="1" />
+        [% FOR k IN ctx.orig_params.keys %]
+        <input type="hidden" name="[% k %]" value="[% ctx.orig_params.$k | html %]" />
+        [% END %]
+
+        <table id='hold-items-list'>
+
+        [% FOR hdata IN ctx.hold_data;
+            attrs = {marc_xml => hdata.marc_xml};
+            PROCESS get_marc_attrs args=attrs %]
+            <tr>
+                <td>
+                    [% 
+                        override = 0;
+                        IF hdata.could_override || hdata.hold_local_alert;
+                            override_possible = 1;
+                            override = 1;
+                        END;
+                    %]
+                    <input 
+                        type="checkbox" name="hold_target" value="[% hdata.target.id | html %]"
+                        [% IF override %] checked='checked' [% ELSE %] disabled='disabled' [% END %]/>
+                </td>
+                <td>
+                    <div class='hold-items-list-title'>[% attrs.title_extended | html %]</div>
+                    <div>
+                        [% IF hdata.hold_success %]
+
+                        <div>[% l("Hold was successfully placed"); %]</div>
+
+                        [% ELSIF hdata.hold_failed %]
+
+                            <div><big><strong>[% l("Hold was not successfully placed"); %]</strong></big></div>
+                            [% IF hdata.hold_local_block %]
+                                <div>[% l("There is already a copy available at your local library.") %]</div>
+                            [% ELSIF hdata.hold_failed_event || hdata.hold_local_alert %]
+                                <div>
+                                    <span class='hold-items-list-problem'>[% l('Problem:') %]</span>
+                                    <span title="[% hdata.hold_failed_event.textcode | html %]">
+                                        <em>[%
+                                                fail_part_key = hdata.hold_failed_event.payload.fail_part;
+                                                event_key = hdata.hold_failed_event.textcode;
+
+                                                # display:
+                                                l(FAIL_PART_MSG_MAP.$fail_part_key) ||
+                                                l(EVENT_MSG_MAP.$event_key) ||
+                                                l(hdata.hold_failed_event.desc) ||
+                                                hdata.hold_failed_event.payload.fail_part ||
+                                                hdata.hold_failed_event.textcode ||
+                                                (hdata.hold_local_alert ?
+                                                    l("There is already a copy available at your local library.") :
+                                                    l("Unknown problem")) | html
+                                            %]</em>
+                                            [% IF event_key == 'PERM_FAILURE' %]
+                                            <div>[% l('Permission: "[_1]"', hdata.hold_failed_event.ilsperm) | html %]</div>
+                                            [% END %]
+                                    </span>
+                                    [% IF hdata.hold_copy_available %]
+                                        <p>[%  l('Find a copy in the shelving location, "[_1]."', locname) | html %]</p>
+                                    [% END %]
+                                </div>
+                            [% END;
+                        END %]
+                    </div>
+                </td>
+            </tr>
+        [% END %]
+        </table>
+        [% IF override_possible %]
+            <br/>
+            <hr/>
+            <div class='big-strong'>
+                [% |l %]You have permission to override some of the failed holds.<br/>  Click Submit to override and place your hold on the selected items.[% END %]
+            </div>
+            <span style='padding-right: 10px;'>
+                <input type="image" name="submit" value="submit" title="[% l('Submit') %]"
+                    alt="[% l('Submit') %]" src="[% ctx.media_prefix %]/images/btnSubmit.png" />
+            </span>
+        [% END %]
+        <span>
+        <a href="[% CGI.param('redirect_to') || CGI.referer | html %]" id="holds_cancel"><img
+            alt="[% l('Cancel') %]" src="[% ctx.media_prefix %]/images/btnCancel.png" /></a>
+        </span>
+    </form>
+</div>
+
diff --git a/Open-ILS/src/templates/opac/parts/printnav.tt2 b/Open-ILS/src/templates/opac/parts/printnav.tt2
new file mode 100644 (file)
index 0000000..d0f0a41
--- /dev/null
@@ -0,0 +1,25 @@
+<div class="big-block">
+    <div class="float-right">
+        <div class="pos-rel">
+            <img src="[% ctx.media_prefix %]/images/utils-corner-left.png" class="float-left" alt="" />
+            <div class="left-corner"> 
+                <a href="javascript:history.go(-1)"
+                    id="util_back_btn"><img alt="[% l('Back') %]"
+                    src="[% ctx.media_prefix %]/images/tool_back.png" /></a>
+                <a href="[% ctx.opac_root %]/home"
+                    id="util_home_btn"><img alt="[% l('Homepage') %]"
+                    src="[% ctx.media_prefix %]/images/tool_home.png" /></a>
+                <a href="javascript:window.print();"
+                    id="util_print_btn"><img alt="[% l('Print Page') %]"
+                    src="[% ctx.media_prefix %]/images/tool_print.png" /></a>
+                <a href="http://open-ils.org/dokuwiki/doku.php?id=evergreen-user:opac_help"
+                    id="util_help_btn"><img alt="[% l('Help') %]"
+                    src="[% ctx.media_prefix %]/images/tool_help.png" /></a>
+                <a href="javascript:history.go(+1)"
+                    id="util_forw_btn"><img alt="[% l('Forward') %]"
+                    src="[% ctx.media_prefix %]/images/tool_forward.png" /></a>
+            </div>
+            <img src="[% ctx.media_prefix %]/images/utils-corner-right.png" class="float-left" alt="" />
+        </div>
+    </div>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/qtype_selector.tt2 b/Open-ILS/src/templates/opac/parts/qtype_selector.tt2
new file mode 100644 (file)
index 0000000..4b91a47
--- /dev/null
@@ -0,0 +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("Bib Call Number")}
+] %]
+<select name="qtype">
+    [%  query_type = query_type || CGI.param('qtype');
+        FOR qt IN query_types -%]
+    <option value='[% qt.value | uri %]'[%
+        query_type == qt.value ? ' selected="selected"' : ''
+    %]>[% qt.label | html %]</option>
+    [% END -%]
+</select>
diff --git a/Open-ILS/src/templates/opac/parts/record/authors.tt2 b/Open-ILS/src/templates/opac/parts/record/authors.tt2
new file mode 100644 (file)
index 0000000..3a03c3e
--- /dev/null
@@ -0,0 +1,51 @@
+[%  
+
+authors = [
+    {
+        type => 'author', 
+        label => l('Authors: '),
+        xpath => '//*[@tag="100"]|//*[@tag="110"]|//*[@tag="111"]'
+    }, {
+        type => 'added', 
+        label => l('Added Authors: '),
+        xpath => '//*[@tag="700"]|//*[@tag="710"]|//*[@tag="711"]'
+    }, {
+        type => 'credits', 
+        label => l('Credits: '),
+        xpath => '//*[@tag="100"]|//*[@tag="110"]|//*[@tag="111"]'
+    }, {
+        type => 'cast', 
+        label => l('Cast: '),
+        xpath => '//*[@tag="508"]'
+    }, {
+        type => 'notes', 
+        label => l('Author Notes: '),
+        xpath => '' # Comes from added content...
+    }
+];
+
+BLOCK build_author_links;
+    FOR node IN ctx.marc_xml.findnodes(xpath);
+        FOR subfield IN node.childNodes;
+            NEXT UNLESS subfield.nodeName == "subfield";
+            code = subfield.getAttribute('code');
+            NEXT UNLESS code.match('[a-z]');
+            term = subfield.textContent | html;
+            '<br/><a href="' _ ctx.opac_root _ '/results?qtype=author&amp;query=' _ term _ '&amp;loc=' _ loc _ '">' _ term _ '</a>';
+        END;
+    END;
+END;
+%]
+
+<div class='rdetail_extras_div'>
+[% FOREACH author IN authors;
+    NEXT UNLESS author.xpath; 
+    links = PROCESS build_author_links(xpath=author.xpath);
+    IF links.match('\S') %]
+    <strong>[% author.label | html %]</strong>
+    <div class='rdetail-author-div'>[% links %]</div>
+    [% END %]
+[% END %]
+</div>
+
+
diff --git a/Open-ILS/src/templates/opac/parts/record/awards.tt2 b/Open-ILS/src/templates/opac/parts/record/awards.tt2
new file mode 100644 (file)
index 0000000..68d93ce
--- /dev/null
@@ -0,0 +1,32 @@
+<div class='rdetail_extras_div'> 
+    <div style="margin-bottom:20px;"></div>
+
+        <!-- Chilifresh patron reviews -->
+        <strong>[% l('Patron Reviews:') %]</strong>
+        <div style="margin-bottom:20px;">
+            <div class="chili_review" id="isbn_[% attrs.isbn_clean | html %]"> </div>
+            <div id="chili_review_[% attrs.isbn_clean | html %]" style="display: none;" align="center" width="100%"></div>
+        </div>
+    
+        <!-- Reviews from added content provider -->
+        [% IF 0 %] 
+        <strong>[% l('Reviews:') %]</strong>
+        <div style="margin-bottom:20px;"></div>
+        [% END %]
+
+        <!-- Novelist suggestions-->
+        [% IF ENV.OILS_NOVELIST_URL %] 
+        <strong>[% l('Similar Books:') %]</strong>
+        <div class='rdetail_extras_div'>
+            <div id="NoveListSelect" class="NoveListSelect">
+                <div id="NoveListAnchor" class="NoveListSelect"></div>
+                <div id="novsuggestions"></div>
+                <div id="nextreads"></div>
+                <div id="novrelatedauthors"></div>
+                <div id="novrelateditems"></div>
+            </div>
+        </div>
+        [% END %]
+    </div>
+</div>
+
diff --git a/Open-ILS/src/templates/opac/parts/record/body.tt2 b/Open-ILS/src/templates/opac/parts/record/body.tt2
new file mode 100644 (file)
index 0000000..184bd7c
--- /dev/null
@@ -0,0 +1,48 @@
+<!-- ****************** page_rdetail.xml ***************************** -->
+[%  attrs = {marc_xml => ctx.marc_xml};
+    PROCESS "opac/parts/misc_util.tt2";
+    PROCESS get_marc_attrs args=attrs %]
+<div id='canvas_main' class='canvas'>
+    <div id="rdetail_header" class="hide_me">[%#
+        XXX Does it make sense for now to even have this section?  Why
+        should the record detail page be aware of the ongoing search?
+        The user can use the back button to go back to their search results
+        like on any other website. %]
+        <div style="float:left;">
+            Search Results&nbsp;&nbsp;&nbsp;
+            <span id="rdetail_result_count" class="hide_me">
+                Showing Item <strong id='np_offset'></strong>
+                &nbsp;of&nbsp;<strong id='np_count'></strong>
+            </span>
+        </div>
+        <div id="rdetail_result_nav">
+            <span class="hide_me">
+                <a class='np_nav_link classic_link' id='np_start'
+                    href='#'
+                    title="[% l("First results page") %]">[% l("Start") %]</a>
+                </span>
+                <a class='np_nav_link classic_link hide_me' id='np_prev'
+                    href='#'
+                    title='[% l("Previous page") %]'><span
+                        class="nav_arrow_fix">&#9668;</span> Previous</a>
+                <span style="padding:0px 10px;"> </span>
+                <a class='np_nav_link classic_link hide_me' id='np_next'
+                    href='#'
+                    title='[% l("Next page") %]'>Next <span
+                        class="nav_arrow_fix">&#9658;</span></a>
+                <span class="hide_me"><a class='np_nav_link classic_link'
+                    id='np_end' href='#'
+                    title="[% l("Last results page") %]">[% l("End") %]</a></span>
+        </div>
+        <div class="clear-both"></div>
+    </div>
+
+    <div style='font-weight: bold; padding: 5px; margin: 5px; width: 100%;'
+        class='hide_me color_4' id='rdetail_deleted_exp'>
+        [% l("This record has been deleted from the database.  We recommend that you remove this title from any bookbags it may have been added to.") %]
+    </div>
+    [% INCLUDE "opac/parts/record/summary.tt2" %]
+    <br />
+    [% INCLUDE "opac/parts/record/extras.tt2" %]
+</div>
+<!-- ****************** end; page_rdetail.xml ***************************** -->
diff --git a/Open-ILS/src/templates/opac/parts/record/cnbrowse.tt2 b/Open-ILS/src/templates/opac/parts/record/cnbrowse.tt2
new file mode 100644 (file)
index 0000000..b9498bb
--- /dev/null
@@ -0,0 +1,61 @@
+[% 
+    cnoffset = CGI.param('cnoffset');
+    cnoffset = cnoffset.match('^\d+$') ? cnoffset : 0; # verify cnoffset is a sane value
+%]
+
+<div id='cn_browse' class='cn_browser'>
+    <div id='cn_browse_div'> 
+        <div class='color_4'>
+            <span>[% l("You are now browsing") %]</span>
+            <strong>[% ctx.browsing_ou.name | html %]</strong>
+        </div>
+        <table class='data_grid bookshelf' width='100%'>
+            <thead>
+                <tr>
+                    <td>
+                        <a class='classic_link' 
+                            href="[% mkurl('', {cnoffset => cnoffset - 1}) %]#cnbrowse"><b>[% l("&lt;&lt; Previous Page") %]</b></a>
+                    </td>
+                    <td colspan='1' align='center'>[% l("Shelf Browser") %]</td>
+                    <td>
+                        <a class='classic_link' 
+                            href="[% mkurl('', {cnoffset => cnoffset + 1}) %]#cnbrowse"><b>[% l("Next Page &gt;&gt;") %]</b></a>
+                    </td>
+                </tr>
+            </thead>
+            <tbody>
+            [% tr_open = 0; FOR cn IN ctx.browsed_call_numbers %]
+                [%- IF loop.index % 3 == 0; tr_open = 1 %]
+                <tr class='cn_browse_row'>
+                [% END -%]
+                    <td class='cn_browse_item' width='25%' valign='top'>
+                        [%  rec_attrs = {marc_xml => cn.record.marc};
+                            PROCESS get_marc_attrs args=rec_attrs;
+                            ident = rec_attrs.isbn_clean || rec_attrs.upc;
+                            IF ident %]
+                        <a href="[% mkurl(ctx.opac_root _ '/record/' _ cn.record.id, {}, 1) %]"><img height='60' width='50' 
+                            class='cn_browse_info' name='cn_browse_pic' border='0'
+                            src="[% ctx.media_prefix %]/opac/extras/ac/jacket/small/[% ident | uri %]" /></a>
+                        [% END %]
+                        <div class='cn_browse_info bold' name='cn_browse_cn'>[% cn.label | html %]</div>
+                        <div class='cn_browse_info'>
+                            <a name='cn_browse_title' class='classic_link' 
+                                href="[% mkurl(ctx.opac_root _ '/record/' _ cn.record.id, {}, 1) %]">[% rec_attrs.title | html %]</a>
+                        </div>
+                        [% IF rec_attrs.author %]<div class='cn_browse_info'>
+                            <a name='cn_browse_author' class='classic_link'
+                                href="[%-
+                                    authorquery = rec_attrs.author | replace('[,\.:;]', '');
+                                    mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, 1)
+                                    -%]">[% rec_attrs.author | html %]</a>
+                        </div>[% END %]
+                        <div class='cn_browse_info' name='cn_browse_lib'>[% cn.owning_lib.name | html %]</div>
+                    </td>
+                [% IF loop.index % 3 == 2; tr_open = 0 %]
+                </tr>
+                [% END %]
+            [% END; IF tr_open %]</tr>[% END %]
+            </tbody>
+        </table>
+    </div>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/record/extras.tt2 b/Open-ILS/src/templates/opac/parts/record/extras.tt2
new file mode 100644 (file)
index 0000000..22751d2
--- /dev/null
@@ -0,0 +1,59 @@
+<div>
+    <div id='rdetail_extras_div' style='width: 100%;'> 
+
+        [%  # 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.0; 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 => 'summaryplus',  label => l('Summaries &amp; More'), hide => hide_summary}, 
+            {name => 'content',  label => l('Contents'), hide => 1}, # ToC
+            {name => 'authors',  label => l('Authors')}, 
+            {name => 'series',   label => l('Series')},
+            {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')},
+            {name => 'marchtml', label => l('MARC Record')}
+        ];
+
+        FOREACH extra IN extras;
+            IF extra.hide; NEXT; END; 
+            name = extra.name;
+        %]
+        <div class="rdetail_extras">
+            <div class="rdetail_extras_hr"></div>
+            <div class="rdetail_extras_link">
+                [%  href = mkurl('', {expand => name}) _ '#' _ name; %]
+                <a name='[% name %]' href='[% href %]'><img
+                    alt='[% extra.label %]' src="[% ctx.media_prefix %]/images/rdetail_arrow.png" /></a>
+                <a href='[% href %]' class="rdetail_extras_lbl">[% extra.label %]</a>
+            </div>
+        </div>
+        <div class='rdetail_extras_div'>
+            [%  exp_name = 'expand_' _ name;
+                IF ctx.$exp_name OR ctx.expand_all;
+                    IF name == 'marchtml';
+                        ctx.marchtml;
+                    ELSE;
+                        # Load the template for the selected extra
+                        INCLUDE "opac/parts/record/${name}.tt2";
+                    END;
+                END; 
+            %]
+        </div>
+        [% END %]
+    </div>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/record/issues.tt2 b/Open-ILS/src/templates/opac/parts/record/issues.tt2
new file mode 100644 (file)
index 0000000..e13efb2
--- /dev/null
@@ -0,0 +1,26 @@
+<div class='rdetail_extras_div'>
+[%
+base_expando = ctx.full_path _ "?expand=issues";
+FOREACH type IN ctx.holding_summaries.keys;
+    NEXT UNLESS ctx.holding_summaries.$type.size;
+    expanded = CGI.param('expand_holding_type') == type; %]
+    <div class="rdetail-issue-type">
+        <a href="[% base_expando; expanded ? '' : '&amp;expand_holding_type=' _ type; %]#issues">[[% expanded ? '-' : '+' %]]</a>
+        [% ctx.holding_summaries.$type.join(", ") %]
+        [% IF expanded %]
+        <table>
+            [% FOR blob IN ctx.expanded_holdings %]
+            <tr>
+                <td class="rdetail-issue-issue">[% blob.issuance.label | html %]</td>
+                [% IF blob.has_units %]
+                <td class="rdetail-issue-place-hold">
+                    <a href="[% ctx.opac_root %]/place_hold?hold_target=[% blob.issuance.id %]&amp;hold_type=I">[% l("Place Hold") %]</a>
+                </td>
+                [% END %]
+            </tr>
+            [% END %]
+        </table>
+        [% END %]
+    </div>
+[% END %]
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/record/refworks.tt2 b/Open-ILS/src/templates/opac/parts/record/refworks.tt2
new file mode 100644 (file)
index 0000000..23af9a3
--- /dev/null
@@ -0,0 +1,23 @@
+[%
+    # Default to aou.id = 1 in the absence of a specific library
+    loc = 1;
+    IF CGI.param('loc');
+        loc = CGI.param('loc');
+    END;
+
+    # Get the full name of the library
+    ou_name = ctx.get_aou(loc).name | uri;
+
+    # Generate the gross RefWorks URL, based on parameters from config.tt2
+    rw_uri = ctx.refworks.url _ 
+        '/express/expressimport.asp?vendor=' _
+        ou_name _
+        '&filter=MARC+Format&database=All+MARC+Formats&' _
+        'encoding=65001&url=http%3A%2F%2F' _
+        CGI.server_name _ 
+        '/opac/extras/supercat/marctxt/record/' _ 
+        ctx.bre_id;
+%]
+<div class="rdetail_refworks">
+    <a href="[% rw_uri %]">[% l('Export to RefWorks') %]</a>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/record/series.tt2 b/Open-ILS/src/templates/opac/parts/record/series.tt2
new file mode 100644 (file)
index 0000000..edf99ba
--- /dev/null
@@ -0,0 +1,16 @@
+[% 
+    series_tags = ['440', '490', '800', '810', '811', '830', '694']; 
+    loc = CGI.param('loc');
+%]
+
+<div>
+    <table cellpadding="0" cellspacing="0" border="0">
+    [%  FOR tag IN series_tags; %]
+        <tr><td style='padding-top:5px;'>
+        [%  FOR node IN ctx.marc_xml.findnodes('//*[@tag="' _ tag _ '"]/*') %]
+            [% IF !loop.first %]<span>&mdash;</span> [% END %]
+            <a href="[% ctx.opac_root %]/results?qtype=series&amp;query=[% node.textContent | uri %]&amp;loc=[% loc %]">[% node.textContent | html %]</a>
+        [% END %]
+    [% END; %]
+    </table>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/record/subjects.tt2 b/Open-ILS/src/templates/opac/parts/record/subjects.tt2
new file mode 100644 (file)
index 0000000..25f6e2e
--- /dev/null
@@ -0,0 +1,70 @@
+[% 
+    subjects = [
+        {
+            label => l('Subject: '),
+            xpath => '//*[@tag="600" or @tag="610" or @tag="611" or @tag="630" or @tag="650" or @tag="651"]'
+        }, {
+            label => l('Genre: '),
+            xpath => '//*[@tag="655"]|//*[@tag="659"]'
+        }, {
+            label => l('Topic Heading: '),
+            xpath => '//*[@tag="690"]'
+        }, {
+            label => l('Geographic Setting: '),
+            xpath => '//*[@tag="691"]'
+        }, {
+            label => l('Biographical Subject: '),
+            xpath => '//*[@tag="692"]'
+        }, {
+            label => l('Character Attributes: '),
+            xpath => '//*[@tag="693"]'
+        }, {
+            label => l('Setting: '),
+            xpath => '//*[@tag="698"]'
+        }, {
+            label => l('Time Period: '),
+            xpath => '//*[@tag="699"]'
+        }
+    ];
+
+    BLOCK render_subject;
+        loc = CGI.param('loc') | uri;
+        xpath = xpath || '//*[starts-with(@tag,"6")]';
+        FOR node IN ctx.marc_xml.findnodes(xpath);
+            all_terms = [];
+            FOR subfield IN node.childNodes;
+                NEXT UNLESS subfield.nodeName == "subfield";
+                code = subfield.getAttribute('code');
+                NEXT UNLESS code.match('[a-z]');
+                IF code.match('[vxyz]'); " &mdash; "; END;
+                # at this point, we actually have a partial term to use.
+                single_term = subfield.textContent | html;
+                all_terms.push(subfield.textContent);
+                total_term = all_terms.join(" ").replace('\s+$', '') | uri;
+                '<a href="' _ ctx.opac_root _ '/results?qtype=subject&amp;query=' _ total_term _ '&amp;loc=' _ loc _ '">' _ single_term _ '</a>';
+            END;
+            IF all_terms.size; "<br/>"; END;
+        END;
+    END 
+%]
+
+<div>
+    <table cellpadding="0" cellspacing="0" border="0">
+    [%  any_subjects = 0;
+        FOREACH subj IN subjects;
+            content = PROCESS render_subject(xpath=subj.xpath);
+            IF content.match('\S');
+                any_subjects = 1; %]
+            <tr>
+                <td width="1" style="padding:5px 7px 0px 0px;" valign="top">
+                    <strong>[% subj.label %]</strong>
+                </td>
+                <td style="padding-top:5px;"><div>[% content %] </div></td>
+            </tr>
+            [% END; %]
+        [% END; %]
+    [% IF any_subjects == 0 %]
+        <tr><td><i>[% l('No Subjects') %]</i></td></tr>
+    [% END; %]
+    </table>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/record/summary.tt2 b/Open-ILS/src/templates/opac/parts/record/summary.tt2
new file mode 100644 (file)
index 0000000..a256d35
--- /dev/null
@@ -0,0 +1,267 @@
+[%  PROCESS "opac/parts/misc_util.tt2";
+    USE ResolverResolver;
+    ctx.page_title = attrs.title | html
+%]
+<!-- ****************** rdetail_summary.xml ***************************** -->
+<abbr class="unapi-id" title='tag:[% ctx.hostname %],[% date.format(date.now, '%Y') %]:biblio-record_entry/[% ctx.bre_id %]'></abbr>
+
+[%- IF ctx.refworks.enabled == 'true' %]
+    [% INCLUDE 'opac/parts/record/refworks.tt2' %]
+[%- END %]
+
+<!-- This holds the record summary information -->
+
+<table width="100%" border="0" cellpadding="0" cellspacing="0" id="rdetail_details_table">
+    <tbody>
+        <tr>
+            <td width="90" valign="top" id="rdetail_image_cell">
+                [% ident = attrs.isbn_clean || attrs.upc; IF ident; %]
+                <a href='[% ctx.media_prefix %]/opac/extras/ac/jacket/large/[% ident | uri %]'><img
+                    alt="[% l('Image of item') %]" id='rdetail_image'
+                    src='[% ctx.media_prefix %]/opac/extras/ac/jacket/[% record.summary.jacket_size %]/[% ident | uri %]' /></a>
+                [% END %]
+                <br />
+            </td>
+    
+            <td valign="top">
+                <table border="0" cellpadding="0" cellspacing="0" width="100%">
+                    <tr>
+                        <td valign="top">
+                            <span id='rdetail_title'>[% attrs.title_extended | html %]</span><br />
+                            [% IF attrs.author %]
+                            <span class='opac-auto-030'>[% l("Author") %]:</span>
+                            <em><a title='[% l("Perform an author search") %]'
+                                    href="[%- 
+                                        authorquery = attrs.author | replace('[,\.:;]', '');
+                                        mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, ['page'])
+                                        -%]">[% attrs.author | html %]</a></em>
+                            [% END %]
+                        </td>
+                        <td align="right" valign="top" nowrap="nowrap" style="white-space:nowrap;">
+                            <div style="width:280px;text-align:left;margin-top:3px;">
+                                <div style="float:right;">
+                                    <div class="rdetail_aux_utils opac-auto-010">
+                                        <a href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_target => ctx.bre_id, hold_type => 'T'}) %]" 
+                                            class="no-dec"><img src="[% ctx.media_prefix %]/images/green_check.png" alt="[% l('place hold') %]" /><span 
+                                                    style="position:relative;top:-3px;left:3px;">[% l('Place Hold') %]</span></a>
+                                    </div>
+                                    <div class="rdetail_aux_utils opac-auto-121">
+                                        [%  
+                                            operation = ctx.mylist.grep(ctx.bre_id).size ? "delete" : "add";
+                                            label = (operation == "add") ? l("Add to my list") : l("Remove from my list"); 
+                                        %]
+                                        <a href="[% ctx.opac_root %]/mylist/[% operation %]?record=[% ctx.bre_id %]" class="no-dec">
+                                            <img src="[% ctx.media_prefix %]/images/clipboard.png" alt="" />
+                                            [% label %]
+                                        </a>
+                                    </div>
+                                </div>
+                                <div style="float:right;margin-right:17px;">
+                                    [% IF attrs.format_icon %]
+                                    <img alt="[% attrs.format_label %]" title="[% attrs.format_label | html %]" src="[% attrs.format_icon %]" />
+                                    [% END %]
+                                </div>
+                            </div>
+                        </td>
+                    </tr>
+                </table>
+                <div class='opac-auto-018'>
+                    <table border="0" cellpadding="0" width="100%">
+                        <tr>
+                            <td nowrap='nowrap' valign="top">
+                                [% IF attrs.isbns.0 %]<strong>[% l("ISBN") %]</strong>[% END %]
+                            </td>
+                            <td valign="top">
+                                [% FOR isbn IN attrs.isbns %][% IF !loop.first; %]<br/>[% END; isbn | html ; END %]
+                            </td>
+                            <td nowrap='nowrap' valign="top">
+                                [% IF attrs.phys_desc %]<strong>[% l("Physical Description") %]</strong>[% END %]
+                            </td>
+                            <td valign="top">[% attrs.phys_desc | html %]</td>
+                        </tr>
+                        [%- IF openurl.enabled == 'true';
+                            FOR issn IN args.issns;
+                                sfx = ResolverResolver.resolve_issn(issn, openurl.baseurl);
+                                FOR res IN sfx;
+                        %]
+                            <tr name="results_issn_tr">
+                                <td valign="top">
+                                    <strong><a href="[% res.target_url %]">
+                                        [% res.public_name %]</a></strong>
+                                </td>
+                                <td>[% res.target_coverage %]</td>
+                            </tr>
+                                [% END %]
+                            [% END %]
+                        [% END %]
+                        <tr>
+                            <td nowrap='nowrap' valign="top">
+                                <strong>[% IF attrs.marc_cn; l("Call Number"); END %]</strong>
+                            </td>
+                            <td valign="top">[% attrs.marc_cn | html %]</td>
+                            <td nowrap='nowrap' valign="top">
+                                <strong>[% IF attrs.edition; l("Edition"); END %]</strong>
+                            </td>
+                            <td valign="top">[% attrs.edition | html %]</td>
+                        </tr>
+                        <tr>
+                            <td nowrap='nowrap' valign="top">
+                                <strong>[% IF attrs.publisher; l("Publisher"); END %]</strong>
+                            </td>
+                            <td valign="top" id='rdetail_publisher'>[% attrs.publisher | html %]</td>
+                            <td nowrap='nowrap' valign="top">
+                                <strong>[% IF attrs.pubdate; l("Publication Date"); END %]</strong>
+                            </td>
+                            <td valign="top">[% attrs.pubdate | html %]</td>
+                        </tr>
+                    </table>
+
+                    <!-- hold/copy summary -->
+                    <div style="padding-top:15px;">
+                        <div>
+                            [% l("[quant,_1,Hold,Holds] with [quant,_2,total copy,total copies]", 
+                                ctx.record_hold_count, ctx.copy_summary.0.count) %]
+                        </div>
+                        <div>[% l('[quant,_1,Copy,Copies] available', ctx.copy_summary.0.available) %]</div>
+                    </div>
+
+                </div>
+            </td>
+        </tr>
+    </tbody>
+</table>
+<br />
+
+[% FOR uri IN args.uris %]
+<div class="rdetail_uri">
+    <a href="[% uri.href %]">[% uri.link %]</a>[% ' - ' _ uri.note IF uri.note %]
+</div>
+[% END %]
+
+<br />
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%" id="rdetails_status">
+    <thead>
+        <tr>
+            <td>[% l("Location") %]</td>
+            <td>[% l("Call Number") %]</td>
+            <td>[% l("Barcode") %]</td>
+            <td>[% l("Shelving Location") %]</td>
+            [% IF ctx.is_staff %]
+            <td>[% l("Age Hold Protection") %]</td>
+            <td>[% l("Create Date") %]</td>
+            <td>[% l("Holdable?") %]</td>
+            [% END %]
+            <td>[% l("Status") %]</td>
+            <td>[% l("Due Date") %]</td>
+        </tr>
+    </thead>
+    <tbody class="copy_details_table">
+        [% last_cn = 0;
+        FOR copy_info IN ctx.copies;
+            NEXT IF copy_info.call_number_label == '##URI##' %]
+        <tr>
+            <td>
+            [%-
+                org_name = ctx.get_aou(copy_info.circ_lib).name;
+                org_name | html
+            -%]
+            </td>
+            <td>[% copy_info.call_number_label | html %]</td>
+            <td>[% copy_info.barcode | html %]</td>
+            <td>[% copy_info.copy_location | html %]</td>
+            [% IF ctx.is_staff %]
+            <td>
+                [% copy_info.age_protect ?
+                    ctx.get_crahp(copy_info.age_protect).name : l('None') | html %]
+            </td>
+            <td>[% date.format(
+                ctx.parse_datetime(copy_info.create_date),
+                DATE_FORMAT
+            ) %]</td>
+            <td>[%  # 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"); %]
+                <a href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_target => copy_info.id, hold_type => 'C'}) %]">[% l("copy") %]</a>
+                [%      IF copy_info.call_number != last_cn;
+                            last_cn = copy_info.call_number;
+                            l(" / "); %]
+                <a href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_target => copy_info.call_number, hold_type => 'V'}) %]">[% l("volume") %]</a>
+                [%      END;
+                    ELSE;
+                        l("No");
+                    END %]</td>
+            [% END %]
+            <td>[% copy_info.copy_status | html %]</td>
+            <td>[%
+                IF copy_info.due_date;
+                    date.format(
+                        ctx.parse_datetime(copy_info.due_date),
+                        DATE_FORMAT
+                    );
+                ELSE;
+                    '-';
+                END %]</td>
+        </tr>
+        [% END %]
+        <tr>
+        [% IF ctx.copy_offset > 0;
+            new_offset = ctx.copy_offset - ctx.copy_limit;
+            IF new_offset < 0; new_offset = 0; END %]
+            <td>
+                <a href="[% mkurl('', {copy_offset => new_offset, copy_limit => ctx.copy_limit}) %]">&laquo; [%
+                    l('Previous [_1]', ctx.copy_offset - new_offset) %]</a>
+            </td>
+        [% END %]
+        [% IF ctx.copies.size >= ctx.copy_limit %]
+            <td>
+                <a href="[% mkurl('', {copy_offset => ctx.copy_offset + ctx.copy_limit, copy_limit => ctx.copy_limit}) %]">[%
+                    l('Next [_1]', ctx.copy_limit) %] &raquo;</a>
+            </td>
+        [% END %]
+        </tr>
+        <tr>
+            <td>
+                [% more_copies_limit = 50 %] [%# TODO: config %]
+                [% IF  ctx.copy_limit != more_copies_limit AND ctx.copies.size >= ctx.copy_limit %]
+                    <div style='margin-top:10px;'>
+                        <img src="[% ctx.media_prefix %]/images/plus_sign.png" />
+                        <a href="[% mkurl('', {copy_limit => more_copies_limit, copy_offset => 0}) %]">[% l('Show more copies') %]</a>
+                    </div>
+                [% ELSIF ctx.copy_limit == more_copies_limit %]
+                    <div style='margin-top:10px;'>
+                        <img src="[% ctx.media_prefix %]/images/minus_sign.png" />
+                        <a href="[% mkurl('', {copy_limit => 0, copy_offset => 0}) %]">[% l('Show fewer copies') %]</a>
+                    </div>
+                [% END %]
+            </td>
+        </tr>
+        <tr>
+            <td>
+                [% IF CGI.param('expand') == 'all' %]
+                    <img src="[% ctx.media_prefix %]/images/minus_sign.png" />
+                    <a href="[% mkurl('', {}, ['expand']) %]">[% l('Collapse all tabs') %]</a>
+                [% ELSE %]
+                    <img src="[% ctx.media_prefix %]/images/plus_sign.png" />
+                    <a href="[% mkurl('', {expand => 'all'}) %]">[% l('Expand all tabs') %]</a>
+                [% END %]
+            </td>
+        </tr>
+
+    </tbody>
+</table>
+
+<div id="rdetail_extras_expand" class="hide_me">
+    <a href="#"><img
+        src="[% ctx.media_prefix %]/images/plus_sign.png" /></a>
+    <a style="position:relative;top:-3px;" href="#">[% l('Expand all tabs') %]</a>
+</div>
+
+<div id="rdetail_extras_collapse" class="hide_me">
+    <a href="#"><img src="[% ctx.media_prefix %]/images/plus_sign.png" /></a>
+    <a style="position:relative;top:-3px;" href="#">[% l('Collapse all tabs') %]</a>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/record/summaryplus.tt2 b/Open-ILS/src/templates/opac/parts/record/summaryplus.tt2
new file mode 100644 (file)
index 0000000..d397b48
--- /dev/null
@@ -0,0 +1,19 @@
+<div class='rdetail_extras_div'> 
+    [%  IF attrs.summary %]
+    <div class='rdetail-extras-summary'>
+        <strong>[% l('Summary: ') %]</strong>
+        [% FOR sum IN attrs.summary %]
+            [% IF !loop.first; '<br/>'; END %]
+            <span>[% sum | html %] </span>
+        [% END %]
+    </div>
+    [% END %]
+
+    <!-- Embedded content cafe iframe -->
+    [% ident = attrs.isbn_clean || attrs.upc %]
+    <iframe width="100%" height="400" frameborder="0" 
+        src="http[% CGI.https ? 's' : '' %]://contentcafe2.btol.com/ContentCafeClient/ContentCafe.aspx?UserID=[%- 
+            ENV.OILS_CONTENT_CAFE_USER %]&Password=[% ENV.OILS_CONTENT_CAFE_PASS %]&ItemKey=[% ident | uri %]&Options=Y" >
+    </iframe>
+</div>
+
diff --git a/Open-ILS/src/templates/opac/parts/result/lowhits.tt2 b/Open-ILS/src/templates/opac/parts/result/lowhits.tt2
new file mode 100644 (file)
index 0000000..fe2d160
--- /dev/null
@@ -0,0 +1,94 @@
+<div id='result_low_hits'>
+    <div id="zero_search_hits">
+        <div>
+            <p>[% l('Sorry, no entries were found for') %]
+                [% IF is_advanced OR is_special; l('your search'); ELSE %]
+                <q>[% CGI.param('query') | html %]</q>
+                [% END %]
+                <br />
+                <span id="zero_hits_label1" class="hide_me">[% l('Did you mean') %]
+                    <strong><a id="spell_check_link" href="javascript:;"></a></strong>?</span>
+            </p>
+            <table cellpadding="0" cellspacing="0" border="0">
+                <tr>
+                    <td valign="top" style="padding-right:10px;">
+                        <span id="zero_hits_label2" class="hide_me">[% l('Other Possibilities:') %]</span>
+                    </td>
+                    <td id="zero_hits_suggestions"></td>
+                </tr>
+            </table>
+        </div>
+        <div style="float:right;width:353px;background:#ccc;padding:10px;margin-top:7px;">
+            [% INCLUDE "opac/parts/result/lowhits_purchase.tt2" %]
+            <p>
+                <strong>Keyword Search Tips</strong><br />
+                Try changing to <strong>Advanced Search</strong>.
+            </p>
+            <p>
+                <strong>Adjacency</strong><br />
+                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.<br />
+                (example:  <strong>&quot;garcia marquez&quot;</strong>)
+            </p>
+            <p>
+                <strong>Truncation</strong><br />
+                Words may be right-hand truncated using an asterisk. Use a single asterisk *
+                to truncate any number of characters.<br />
+                (example: <strong>environment* agency</strong>)
+            </p>
+            <p>
+                <strong>Anchored Searching</strong><br />
+                You may use ^ and $ to indicate "phrase begins with" and
+                "phrase ends with," respectively, within a search phrase
+                enclosed in quotation marks.<br />
+                (examples: <strong>"^harry"</strong> for phrases that begin with
+                the term <em>harry</em>.
+                <strong>"stone$"</strong> for phrases that end in <em>stone</em>.)
+            </p>
+        </div>
+    </div>
+    <div class="hide_me">
+        <div style='text-align: center; padding-bottom: 8px;' class="hide_me">
+            <div id='result_low_hits_msg' class='hide_me'>[% l("Few hits were returned for your search.") %]</div>
+            <div id='result_zero_hits_msg' class='hide_me'>[% l("Zero hits were returned for your search.") %]</div>
+        </div>
+
+        <!-- spell checker -->
+        <div id='did_you_mean' class='lowhits_div hide_me'>
+            <span>[% l("Maybe you meant:") %] </span>
+            <!-- <a class='classic_link' id='spell_check_link'> </a> -->
+        </div>
+
+        <div id='low_hits_remove_format' class='lowhits_div hide_me'>
+            <span>[% l("You will find more hits when searching all item formats:") %] </span>
+            <a id='low_hits_remove_format_link' class='classic_link'>[% l("Search again with all formats?") %]</a>
+        </div>
+
+        <div id='low_hits_cross_ref' class='lowhits_div hide_me'>
+            <span>[% l("You may also like to try these related searches:") %]</span>
+            <div style='padding: 5px;'>
+                <a id='low_hits_xref_link' class='classic_link' style='padding-right: 5px;'> </a>
+            </div>
+        </div>
+
+        <div id='low_hits_expand_range' class='lowhits_div hide_me'>
+            <span>[% l("You may also wish to expand your search range to:") %] </span>
+            <a id='low_hits_expand_link' class='classic_link' style='padding-right: 5px;'> </a>
+        </div>
+
+        <div id='low_hits_search_type' class='lowhits_div hide_me'>
+            <span>[% l("You can try searching the same terms by:") %]</span>
+            <a id='low_hits_title_search' class='hide_me classic_link' 
+                style='padding-right: 5px;'>[% l("title") %]</a>
+            <a id='low_hits_author_search' class='hide_me classic_link' 
+                style='padding-right: 5px;'>[% l("author") %]</a>
+            <a id='low_hits_subject_search' class='hide_me classic_link' 
+                style='padding-right: 5px;'>[% l("subject") %]</a>
+            <a id='low_hits_series_search' class='hide_me classic_link' 
+                    style='padding-right: 5px;'>[% l("series") %]</a>
+            <a id='low_hits_keyword_search' class='hide_me classic_link' 
+                style='padding-right: 5px;'>[% l("keyword") %]</a>
+        </div>
+    </div>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/result/lowhits_purchase.tt2 b/Open-ILS/src/templates/opac/parts/result/lowhits_purchase.tt2
new file mode 100644 (file)
index 0000000..ff34338
--- /dev/null
@@ -0,0 +1,6 @@
+[%# XXX Is this block generally desired? <p>
+    <strong>Still not finding what you are looking for?</strong><br />
+    Request that your library purchase the material you are looking for by making a
+    <a href="javascript:;">Purchase Request</a><br />
+    <strong>Note:</strong> You must be logged in to make a Purchase Request<br />
+</p> %]
diff --git a/Open-ILS/src/templates/opac/parts/result/paginate.tt2 b/Open-ILS/src/templates/opac/parts/result/paginate.tt2
new file mode 100644 (file)
index 0000000..6582c01
--- /dev/null
@@ -0,0 +1,59 @@
+[% BLOCK results_count_header %]
+<div class="results_header_nav1">
+    <table cellpadding="0" cellspacing="0" border="0" width="100%">
+        <tr>
+            <td class="h1" width="116">[% l('Search Results') %]</td>
+            <td valign="bottom" nowrap="nowrap" class="result_number">
+                [% |l(ctx.result_start, ctx.result_stop, ctx.hit_count) %]
+                Results <strong>[_1]</strong> - <strong>[_2]</strong> of <strong>[_3]</strong>
+                [% END %]
+                <span style='padding-left: 6px;'>
+                    [% |l(page + 1, page_count) %](page <strong>[_1]</strong> of <strong>[_2]</strong>)[% END %]
+                </span>
+            </td>
+            <td align="right" valign="bottom">
+                <span class='start_end_links_span'>
+
+                    [%  class = 'search_page_nav_link';
+                        href = '#';
+                        IF page > 0;
+                            href = mkurl('', {page => page - 1});
+                        ELSE; class = class _ ' invisible'; END;
+                    %]
+                    <a class='[% class %]' href='[% href %]' 
+                        title='[% l("Previous page") %]'><span class="nav_arrow_fix">&#9668;</span> [% l('Previous') %] </a>
+
+                    <span style='padding-left: 11px; padding-right:11px;'>
+                        [%  # show links to 4 previous pages, the current page, and 3 more pages.
+                            added = 0;
+                            pageitr = page - 5; 
+                            IF page_count > 1; # no need to paginate 1 page
+                                WHILE (pageitr = pageitr + 1) < page_count;
+                                    IF pageitr < 0; NEXT; END;
+                                    IF pageitr == page; %]
+                                        <span class='results-paginator-selected'>[% pageitr + 1%]</span>
+                                    [% ELSE %]
+                                        <a href="[% mkurl('', {page => pageitr}) %]">[% pageitr + 1%]</a>
+                                [%  END;
+                                    added = added + 1;
+                                    IF added == 8; LAST; END;
+                                END;
+                            END;
+                        %]
+                    </span>
+
+                    [%  class = 'search_page_nav_link';
+                        href = '#';
+                        IF (page + 1) < page_count;
+                            href = mkurl('', {page => page + 1});
+                        ELSE; class = class _ ' invisible'; END;
+                    %]
+                    <a class='[% class %]' href='[% href %]' 
+                        title='[% l("Next page") %]'> [% l('Next') %] <span class="nav_arrow_fix">&#9658;</span></a>
+                </span>
+            </td>
+        </tr>
+    </table>
+</div>
+[% END %]
+
diff --git a/Open-ILS/src/templates/opac/parts/result/table.tt2 b/Open-ILS/src/templates/opac/parts/result/table.tt2
new file mode 100644 (file)
index 0000000..ed58d26
--- /dev/null
@@ -0,0 +1,254 @@
+[%  PROCESS "opac/parts/misc_util.tt2";
+
+    USE ResolverResolver;
+
+    ctx.result_start = 1 + ctx.page_size * page;
+    ctx.result_stop = ctx.page_size * (page + 1);
+    IF ctx.result_stop > ctx.hit_count; ctx.result_stop = ctx.hit_count; END;
+
+    result_count = ctx.result_start;
+%]
+
+<div style="height: 10px;"></div>
+
+[% PROCESS "opac/parts/result/paginate.tt2" %] 
+[% ctx.results_count_header = PROCESS results_count_header;
+    ctx.results_count_header %]
+
+<div id="result_table_div">
+    <table cellpadding="0" cellspacing="0" border="0" width="100%">
+        <tr>
+            <td valign="top" width="1" style="padding-right:20px;">
+                <div style="width:174px;" class="hide_me" id="tehSideBar">SIDEBAR TODO
+                </div>
+            </td>
+            <td class='opac-auto-015' width="1"></td>
+            <td valign="top">
+                <table id="res_table" cellpadding="0" cellspacing="0"
+                    border="0" width="100%" style="margin-top:10px;">
+                    <tbody id="result_table">
+                    [%  FOR rec IN ctx.records;
+                            attrs = {marc_xml => rec.marc_xml};
+                            PROCESS get_marc_attrs args=attrs %]
+                        <tr>
+                            <td class='result_table_row' align='left' width='100%'>
+                                <table cellpadding="0" cellspacing="0" class='result_table_subtable'>
+                                    <tbody class='result_table_subtbody'>
+                                        <tr name='counts_row'>
+                                            <td width="58" valign="top"
+                                                style="font-weight:bold;padding-left:10px;"
+                                                name="results_row_count">[%
+                                                    result_count; result_count = result_count + 1
+                                                %].</td>
+                                            <td class='result_table_pic_header' align='center'
+                                                width="78" nowrap="nowrap" valign="top">
+                                                [% ident = attrs.isbn_clean || attrs.upc; IF ident; %]
+                                                <a href="[% mkurl(ctx.opac_root _ '/record/' _ rec.id) %]"><img alt="[% l('Image of item') %]"
+                                                        name='item_jacket' class='result_table_pic' width="55"
+                                                        src='[% ctx.media_prefix %]/opac/extras/ac/jacket/small/[% ident | uri %]' /></a><br />
+                                                [% END %]
+                                            </td>
+                                            <td class='result_table_title_cell'
+                                                name='result_table_title_cell'
+                                                valign="top">
+                                                <div class="bold">
+                                                    <a title="[% attrs.title | uri %]" name='item_title'
+                                                        href="[% mkurl(ctx.opac_root _ '/record/' _ rec.id) %]"
+                                                        class='search_link'>[% attrs.title | html %]</a>
+                                                </div>
+                                                <div style="font-size:11px;">
+                                                    <div>
+                                                        <em><a title="[% l("Perform an Author Search") %]"
+                                                                name='item_author'
+                                                                href="[%- 
+                                                                    authorquery = attrs.author | replace('[,\.:;]', '');
+                                                                    mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, ['page'])
+                                                                    -%]">[% attrs.author | html %]</a></em>
+                                                        &nbsp;&nbsp;
+                                                        [% attrs.pubdate | html %]
+                                                    </div>
+                                                    <table cellpadding="0" cellspacing="0" border="0"
+                                                        class="results_info_table">
+                                                        [% IF args.holdings.size > 0 %]
+                                                        <tr name='bib_cn_list' class='result_table_title_cell'>
+                                                            <td valign='top'>
+                                                                <strong>[% l('Call number:') %]</strong>
+                                                            </td>
+                                                            <td>[% args.holdings.0.label | html %]</td>
+                                                        </tr>
+                                                        [% END %]
+
+                                                        [% IF CGI.param('detail_record_view') %]
+                                                        <!-- These fields are visible when viewing the results page in 'detailed' mode -->
+
+                                                        [% IF attrs.publisher %]
+                                                            <tr name="results_pub_tr">
+                                                                <td valign="top">
+                                                                    <strong>[% l('Publisher:') %]</strong>
+                                                                </td>
+                                                                <td>[% attrs.publisher | html %]</td>
+                                                            </tr>
+                                                        [% END %]
+                                                        [% IF attrs.isbns.size > 0 %]
+                                                            <tr name="results_isbn_tr">
+                                                                <td valign="top">
+                                                                    <strong>[% l('ISBN:') %]</strong>
+                                                                </td>
+                                                                <td>[% attrs.isbns.0 | html %]</td>
+                                                            </tr>
+                                                        [% END %]
+                                                        [%- IF openurl.enabled == 'true';
+                                                            FOR issn IN args.issns;
+                                                                sfx = ResolverResolver.resolve_issn(issn, openurl.baseurl);
+                                                                FOR res IN sfx;
+                                                        %]
+                                                        <tr name="results_issn_tr">
+                                                            <td valign="top">
+                                                                <strong><a href="[% res.target_url %]">
+                                                                [% res.public_name | html %]</a></strong>
+                                                            </td>
+                                                            <td>[% res.target_coverage | html %]</td>
+                                                        </tr>
+                                                                [% END %]
+                                                            [% END %]
+                                                        [% END %]
+
+                                                        [% IF attrs.edition %]
+                                                            <tr name="results_edition_tr">
+                                                                <td valign="top">
+                                                                    <strong>[% l('Edition:') %]</strong>
+                                                                </td>
+                                                                <td>[% attrs.edition | html %]</td>
+                                                            </tr>
+                                                        [% END %]
+                                                        [% IF attrs.phys_desc %]
+                                                            <tr name="results_phys_desc_tr">
+                                                                <td nowrap="nowrap" valign="top">
+                                                                    <strong>[% l('Phys. Desc.:') %]</strong>
+                                                                </td>
+                                                                <td>
+                                                                    [% args.phys_desc | html %]
+                                                                </td>
+                                                            </tr>
+                                                        [% END %]
+                                                        [% FOR uri IN args.uris %]
+                                                            <tr name='bib_uri_list' class='result_table_title_cell'>
+                                                                <td valign='top'>
+                                                                    <strong>[% l('Electronic resource') %]</strong>
+                                                                </td>
+                                                                <td><a href="[% uri.href %]">[% uri.link | html %]</a>[% ' - ' _ uri.note | html IF uri.note %]</td>
+                                                            </tr>
+                                                            [% END %]
+                                                            [% IF args.holdings.size > 0 %]
+                                                            <tr name='bib_cn_list' class='result_table_title_cell'>
+                                                                <td colspan='2'>
+                                                                    <table class='result_holdings_table'>
+                                                                        <thead><tr>
+                                                                            <th>[% l('Library') %]</th>
+                                                                            <th>[% l('Shelving location') %]</th>
+                                                                            <th>[% l('Call number') %]</th>
+                                                                            <th>[% l('Status') %]</th>
+                                                                        </tr></thead>
+                                                                        <tbody>
+                                                                [% FOR copy IN args.holdings %]
+                                                                        <tr>
+                                                                            <td>[% copy.library | html %]</td>
+                                                                            <td>[% copy.location | html %]</td>
+                                                                            <td>[% copy.label | html %]</td>
+                                                                            <td>[% copy.status | html %]</td>
+                                                                        </tr>
+                                                                [% END %]
+                                                                        </tbody>
+                                                                    </table>
+                                                                </td>
+                                                            </tr>
+                                                        [% END %]
+                                                        [% END %] <!-- END detail_record_view -->
+                                                    </table>
+                                                    <div>
+                                                        [% l('[_1] of [quant,_2,copy,copies] available',
+                                                            attrs.copy_counts.available, attrs.copy_counts.count) # XXX s/count/nshadow/ ?
+                                                            #rec.copy_counts.available, rec.copy_counts.visible) 
+                                                        %]
+                                                    </div>
+                                                </div>
+                                                <div class="hide_me">
+                                                    <span name='result_table_extra_span' class='hide_me'>
+                                                        <span name='result_table_pub_box'
+                                                            style='padding-left: 10px;'>
+                                                            <span name='result_table_edition_span'
+                                                                style='padding-left: 10px;'></span> |
+                                                            <span name='result_table_pub_span'> </span> |
+                                                            <span name='result_table_phys_span'> </span>
+                                                        </span>
+                                                    </span>
+                                                </div>
+                                            </td>
+
+                                            <td name='result_table_format_cell' class='result_table_format_cell' width="1">
+
+                                                [% IF attrs.format_icon %]
+                                                <img title="[% attrs.format_label | html %]" alt="[% attrs.format_label | html %]" src="[% attrs.format_icon %]" />
+                                                [% END %]
+
+                                                <!-- unAPI link -->
+                                                <abbr class="unapi-id" title='tag:[% ctx.hostname %],[% date.format(date.now, '%Y') %]:biblio-record_entry/[% rec.id %]'></abbr>
+
+                                                <!-- Empty span used for creating Google Book Search-->
+                                                <span name="googleBooksLink" class="hide_me">
+                                                    <a style='padding-left: 8px;'
+                                                        class='classic_link hide_me'
+                                                        name="googleBooks-link">[% l("Browse in Google Books Search") %]</a>
+                                                </span>
+
+                                            </td>
+                                            <td nowrap='nowrap' width="1" align="right">
+                                                <div style="width:250px;text-align:left;">
+                                                    <div style="float:right;">
+                                                        <div class="results_aux_utils opac-auto-010"><a
+                                                                href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_target => rec.id, hold_type => 'T'}) %]" 
+                                                                    name="place_hold_link" class="no-dec"><img
+                                                                src="[% ctx.media_prefix %]/images/green_check.png"
+                                                                alt=""/><span style="position:relative;top:-3px;left:3px;">[% l('Place Hold') %]</span></a>
+                                                        </div>
+                                                        <div class="results_aux_utils opac-auto-011">
+                                                            [%  
+                                                                operation = ctx.mylist.grep(rec.id).size ? "delete" : "add";
+                                                                label = (operation == "add") ? l("Add to my list") : l("Remove from my list");
+                                                            %]      
+                                                            <a href="[% mkurl(ctx.opac_root _ '/mylist/' _ operation, {record => rec.id}, 1) %]" class="no-dec">
+                                                                <img src="[% ctx.media_prefix %]/images/clipboard.png" alt="" />
+                                                                [% label %]
+                                                            </a>
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td/>
+                                            <td align='center'> <!-- Chilifresh reviews link --> 
+                                                <div class="chili_review" id="isbn_[% attrs.isbn_clean | html %]"> </div>
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td/>
+                                            <td colspan='5'> <!-- Chilifresh reviews panel -->
+                                                <div id="chili_review_[% attrs.isbn_clean | html %]" style="display: none;" align="center" width="100%"></div>
+                                            </td>
+                                        </tr>
+                                        <tr><td colspan="5"><div style="height:0px;border-top:1px solid #b7b7b7;border-bottom:1px solid #d4d4d4;margin:15px 0px;"></div></td></tr>
+                                    </tbody>
+                                </table>
+                            </td>
+                        </tr>
+                    [% END %]
+                    </tbody>
+                </table>
+            </td>
+        </tr>
+    </table>
+</div>
+<div>
+    [% ctx.results_count_header %]
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/searchbar.tt2 b/Open-ILS/src/templates/opac/parts/searchbar.tt2
new file mode 100644 (file)
index 0000000..aec70db
--- /dev/null
@@ -0,0 +1,78 @@
+[% PROCESS "opac/parts/org_selector.tt2" %]
+<div id="search-box">    
+    [% UNLESS took_care_of_form -%]
+    <form action="[% ctx.opac_root %]/results" method="GET">
+    [%- END %]
+    <table cellpadding="0" cellspacing="10" border="0">
+        <tr>
+            <td colspan="3">
+                <span class="search_catalog_lbl">[% l('Search the Catalog') %]</span>
+                <a href="[% ctx.opac_root %]/advanced"
+                    id="home_adv_search_link"><span
+                    class="adv_search_font">[% l('Advanced Search') %]</span></a>
+            </td>
+        </tr>
+        <tr>
+            [% IF is_advanced || is_special %]
+            <td colspan="2">
+                <input type="hidden" name="_adv" value="1" />
+            [% ELSE %]
+            <td>
+            [% INCLUDE "opac/parts/qtype_selector.tt2" %]
+            </td>
+            [% END %]
+            [% IF ctx.processed_search_query OR (NOT is_advanced AND NOT is_special) %]
+            <td>
+                <div id="search_box_wrapper">
+                    <!-- Note: when common browsers support HTML5 placeholder text, we can remove the JS -->
+                    <input type="text" id="search_box" name="query" value="[% is_advanced ? ctx.processed_search_query : CGI.param('query') || l("Search Keyword") | html %]"
+                        [% IF is_advanced %]style="width: 450px"[% END %]
+                        onfocus="if (this.value=='[% l("Search Keyword") %]'){this.value='';this.style.color='#000';}"
+                        onblur="if (this.value==''){this.value='[% l("Search Keyword") %]';this.style.color='#999';}"
+                        x-webkit-speech />
+                </div>
+                <input name='page' type='hidden' value="0" />
+            </td>
+            <td valign="top">
+                <div class="pos-abs">
+                    <div class="opac-auto-143">
+                        <input id='search-submit-go' type="image" alt="[% l('Search') %]" src="[% ctx.media_prefix %]/images/go-btn.png"
+                            onmouseover="this.src='[% ctx.media_prefix %]/images/go-btn-hover.png';"
+                            onmouseout="this.src='[% ctx.media_prefix %]/images/go-btn.png';" 
+                            onclick='setTimeout(function(){$("search-submit-spinner").className=""; $("search-submit-go").className="hidden"}, 2000)'/>
+                        <img id='search-submit-spinner' src='/opac/images/progressbar_green.gif' style='height:16px;width:16px;' class='hidden' alt=''/>
+                    </div>
+                </div>
+            </td>
+            [% END %]
+        </tr>
+        [% UNLESS is_advanced OR is_special %]
+        <tr>
+            <td>
+                [% INCLUDE "opac/parts/coded_value_selector.tt2" attr=["mattype", "item_type"] none_ok=1 none_label=l('All Formats') %]
+            </td>
+            <td>
+                <span id='depth_selector_span'>
+                    [% PROCESS build_org_selector name='loc' value=CGI.param('loc') %]
+                </span>
+                <span id='lib_selector_span'>
+                    <a id='lib_selector_link' class='classic_link'
+                        href='#'>[% l("Choose a library to search") %]</a>
+                </span>
+            </td>
+        </tr>
+        [% END %]
+    </table>
+    [% UNLESS took_care_of_form %]</form>[% END %]
+    [% IF (is_advanced AND NOT is_special) AND CGI.param('qtype') %]
+    <div class="opac-auto-102">
+        [ <a href="[% mkurl(ctx.opac_root _ '/advanced') %]">[%
+            l('Click to Refine Your Original Search')
+        %]</a> ]
+    </div>
+    [% END %]
+    <div id="breadcrumb">
+        <a href="[% ctx.opac_root %]/home">[% l('Catalog Home') %]</a> &gt;
+    </div>
+    <div class="clear-both"></div>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/tips.tt2 b/Open-ILS/src/templates/opac/parts/tips.tt2
new file mode 100644 (file)
index 0000000..f4e73ed
--- /dev/null
@@ -0,0 +1,11 @@
+<!-- ****************** tips.xml ***************************** -->
+<div class="hide_me">
+    <div id='tips' class='tips hide_me'>
+        <div class='hide_me'>
+            <span>[% l("Click on a folder icon in the sidebar to access related quick searches") %]</span>
+            <span>[% l("If you don't find what you want try expanding your search using the range selector at the right of the search bar") %]</span>
+        </div>
+        <strong>[% l("Tip:") %]</strong>
+    </div>
+</div>
+<!-- ****************** end: tips.xml ***************************** -->
diff --git a/Open-ILS/src/templates/opac/parts/topnav.tt2 b/Open-ILS/src/templates/opac/parts/topnav.tt2
new file mode 100644 (file)
index 0000000..19690fe
--- /dev/null
@@ -0,0 +1,106 @@
+[% IF !ctx.is_staff %]
+<div id="header">
+    <div class="float-left">
+        [% INCLUDE "opac/parts/topnav_logo.tt2" %]
+    </div>
+    <div class="float-right">
+        [% IF !ctx.user %]
+        <div id="your-acct-login">
+            <a href="[% ctx.opac_root %]/myopac/main" id="home_myopac_link"><img
+                alt="[% l('Your Account Log in') %]"
+                src="[% ctx.media_prefix %]/images/login-btn.png"
+                onmouseover="this.src='[% ctx.media_prefix %]/images/login-btn-hover.png';"
+                onmouseout="this.src='[% ctx.media_prefix %]/images/login-btn.png';" /></a>
+        </div>
+        [% ELSE %]
+        <div id="dash_wrapper">
+            <div class="float-right">
+                <table cellpadding="0" cellspacing="0" border="0">
+                    <tr>
+                        <td>
+                            <img src="[% ctx.media_prefix %]/images/dash-corner-left1.png" />
+                        </td>
+                        <td id="dash_corner_mid1a">
+                            <span id="dash_user">
+                                [%  l('[_1] [_2]', ctx.user.first_given_name, ctx.user.family_name) | html %]
+                            </span>
+                        </td>
+                        <td id="dash_corner_mid1b">
+                            <img src="[% ctx.media_prefix %]/images/dash-divider.jpg" />
+                        </td>
+                        <td id="dash_corner_mid1c">
+
+                            <a href="[% ctx.opac_root %]/myopac/main" class="pos-rel-top4"><img
+                                alt="[% l('My Account') %]"
+                                src="[% ctx.media_prefix %]/images/acct-btn.png"
+                                onmouseover="this.src='[% ctx.media_prefix %]/images/acct-btn-hover.png';"
+                                onmouseout="this.src='[% ctx.media_prefix %]/images/acct-btn.png';" /></a>
+
+                            <a href="[% ctx.opac_root %]/logout" class="pos-rel-top4"
+                                id="logout_link"><img
+                                alt="[% l('Logout') %]"
+                                src="[% ctx.media_prefix %]/images/logout-btn.png"
+                                onmouseover="this.src='[% ctx.media_prefix %]/images/logout-btn-hover.png';"
+                                onmouseout="this.src='[% ctx.media_prefix %]/images/logout-btn.png';" /></a>
+                        </td>
+                        <td>
+                            <img src="[% ctx.media_prefix %]/images/dash-corner-right1.png" />
+                        </td>
+                    </tr>
+                </table>
+            </div>
+            <div id="dashboard">
+                <div class="pos-abs">
+                    <div class="pos-rel-top4">
+                        <table cellpadding="0" cellspacing="0" border="0">
+                            <tr>
+                                <td>
+                                    <img src="[% ctx.media_prefix %]/images/dash-corner-left2.png" />
+                                </td>
+                                <td id="dash_corner_mid2a">
+                                    <div id="dash_number_row">
+                                        <div class="pos-abs">
+                                            <div class="dash-pos-out">
+                                                <div class="dash-align-out">
+                                                    <a class="dash-link" href="[% ctx.opac_root %]/myopac/circs"><span id="dash_checked">[% ctx.user_stats.checkouts.total_out %]</span> [% l("Checked Out") %]</a>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="pos-abs">
+                                            <div class="dash-pos-holds">
+                                                <div class="dash-align-holds">
+                                                    <a class="dash-link" href="[% ctx.opac_root %]/myopac/holds"><span id="dash_holds">[% ctx.user_stats.holds.total %]</span> [% l("On Hold") %]</a>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="pos-abs">
+                                            <div class="dash-pos-pickup">
+                                                <div class="dash-align-pickup">
+                                                    <a class="dash-link" href="[% ctx.opac_root %]/myopac/holds?available=1"><span id="dash_pickup">[% ctx.user_stats.holds.ready %]</span> [% l("Ready for Pickup") %]</a>
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <div class="pos-abs">
+                                            <div class="dash-pos-fines">
+                                                <div class="dash-align-fines">
+                                                    <a class="dash-link" href="[% ctx.opac_root %]/myopac/main"><span id="dash_fines">[% money(ctx.user_stats.fines.balance_owed) %]</span> [% l("Fines") %]</a>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </td>
+                                <td>
+                                    <img src="[% ctx.media_prefix %]/images/dash-corner-right2.png" />
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+        [% END %]
+    </div>
+    <div class="common-no-pad"></div>
+</div>
+[% END %]
+[% INCLUDE "opac/parts/topnav_links.tt2" %]
diff --git a/Open-ILS/src/templates/opac/parts/topnav_links.tt2 b/Open-ILS/src/templates/opac/parts/topnav_links.tt2
new file mode 100644 (file)
index 0000000..e6f4169
--- /dev/null
@@ -0,0 +1,11 @@
+<div id="gold-links-holder">
+    <div id="gold-links">
+        <div id="header-links">
+            <a href="http://example.com">[% l('Link 1') %]</a>
+            <a href="http://example.com">[% l('Link 2') %]</a>
+            <a href="http://example.com">[% l('Link 3') %]</a>
+            <a href="http://example.com">[% l('Link 4') %]</a>
+            <a href="http://example.com">[% l('Link 5') %]</a>
+        </div>
+    </div>
+</div>
diff --git a/Open-ILS/src/templates/opac/parts/topnav_logo.tt2 b/Open-ILS/src/templates/opac/parts/topnav_logo.tt2
new file mode 100644 (file)
index 0000000..7e479f9
--- /dev/null
@@ -0,0 +1,2 @@
+        <a href="http://evergreen-ils.org"><img alt="[% l('Evergreen Logo') %]" 
+            src="[% ctx.media_prefix %]/opac/images/small_logo.jpg" /></a>
diff --git a/Open-ILS/src/templates/opac/place_hold.tt2 b/Open-ILS/src/templates/opac/place_hold.tt2
new file mode 100644 (file)
index 0000000..bbe6951
--- /dev/null
@@ -0,0 +1,20 @@
+[%  PROCESS "opac/parts/header.tt2";
+    WRAPPER "opac/parts/base.tt2";
+    INCLUDE "opac/parts/topnav.tt2";
+    ctx.page_title = l("Place Hold") %]
+    <div id="search-wrapper">
+        [% INCLUDE "opac/parts/printnav.tt2" %]
+        [% INCLUDE "opac/parts/searchbar.tt2" %]
+    </div>
+    <div id="content-wrapper">
+        <div id="main-content">
+            <div class="common-full-pad"></div>        
+            [% IF ctx.hold_attempt_made %]
+                [% INCLUDE "opac/parts/place_hold_result.tt2" %]
+            [% ELSE %]
+                [% INCLUDE "opac/parts/place_hold.tt2" %]
+            [% END %]
+            <div class="common-full-pad"></div>        
+        </div>
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/record.tt2 b/Open-ILS/src/templates/opac/record.tt2
new file mode 100644 (file)
index 0000000..7434865
--- /dev/null
@@ -0,0 +1,16 @@
+[%  PROCESS "opac/parts/header.tt2";
+    PROCESS "opac/parts/config.tt2";
+    WRAPPER "opac/parts/base.tt2";
+    INCLUDE "opac/parts/topnav.tt2";
+    ctx.page_title = l("Record Detail") %]
+    <div id="search-wrapper">
+        [% INCLUDE "opac/parts/printnav.tt2" %]
+        [% INCLUDE "opac/parts/searchbar.tt2" %]
+    </div>
+    <div id="content-wrapper" class="content-wrapper-record-page">
+        <div id="main-content">
+            [% INCLUDE "opac/parts/record/body.tt2" %]
+            <div class="common-full-pad"></div>        
+        </div>
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/opac/results.tt2 b/Open-ILS/src/templates/opac/results.tt2
new file mode 100644 (file)
index 0000000..803a070
--- /dev/null
@@ -0,0 +1,83 @@
+[%  PROCESS "opac/parts/header.tt2";
+    USE POSIX;
+
+    WRAPPER "opac/parts/base.tt2";
+    INCLUDE "opac/parts/topnav.tt2";
+
+    IF is_advanced || is_special;
+        ctx.page_title = l("Search Results");
+    ELSE;
+        ctx.page_title = l("Search Results: ") _ CGI.param('query') | html;
+    END;
+
+    page = CGI.param('page');
+    page = page.match('^\d+$') ? page : 0; # verify page is a sane value
+
+    page_count = ctx.page_size == 0 ? 1 : POSIX.ceil(ctx.hit_count / ctx.page_size);
+%]
+    <form action="[% ctx.opac_root %]/results" method="GET">
+    <div id="search-wrapper">
+        [% INCLUDE "opac/parts/printnav.tt2" %]
+        [% INCLUDE "opac/parts/searchbar.tt2" took_care_of_form=1 %]
+    </div>
+    <div class="almost-content-wrapper">
+        <div id="results_header_bar">
+            <div id="results_header_inner">
+                <div class="results_header_btns">
+                    <a href="[% ctx.opac_root %]/home"><img alt="[% l('Another Search') %]"
+                        src="[% ctx.media_prefix %]/images/another_search.png"
+                        onmouseover="this.src='[% ctx.media_prefix %]/images/another_search_hover.png';"
+                        onmouseout="this.src='[% ctx.media_prefix %]/images/another_search.png';" /></a>
+                </div>
+                <div class="results_header_btns">
+                    <a href="[% ctx.opac_root %]/advanced"><img alt="[% l('Advanced Search') %]"
+                        src="[% ctx.media_prefix %]/images/adv_search.png"
+                        onmouseover="this.src='[% ctx.media_prefix %]/images/adv_search_hover.png';"
+                        onmouseout="this.src='[% ctx.media_prefix %]/images/adv_search.png';" /></a>
+                </div>
+                [% IF ctx.mylist.size %]
+                <div class="results_header_btns cached_list_div">
+                    <a href="[% ctx.opac_root; ctx.user ? '/myopac/lists' : '/mylist' %]"><img
+                        alt="[% l('View My List') %]"
+                        src="[% ctx.media_prefix %]/images/view_my_list.png"
+                        onmouseover="this.src='[% ctx.media_prefix %]/images/view_my_list_hover.png';"
+                        onmouseout="this.src='[% ctx.media_prefix %]/images/view_my_list.png';" /></a>
+                </div>
+                [% END %]
+                <div class="results_header_div"></div>
+                    <div class="results_header_lbl">[% l('Sort by') %]</div>
+                    [% INCLUDE "opac/parts/filtersort.tt2" value=CGI.param('sort') %]
+                    <div class="results_header_div"></div>
+
+                    <div class='results_header_sel' id='simple-detail-view-links'>
+                        [% IF CGI.param('detail_record_view') %]
+                        <a href="[% mkurl('', {detail_record_view => ''}) %]">[% l('Simple View') %]</a>
+                        [% ELSE %]
+                        <a href="[% mkurl('', {detail_record_view => 1}) %]">[% l('Detailed View') %]</a>
+                        [% END %]
+                    </div>
+                    <div class="results_header_div"></div>
+
+                    <input type="checkbox" id="limit_to_available" name="modifier" value="available"
+                        onchange="avail_change_adv_search(this)"
+                        [% CGI.param('modifier').grep('available').size ? ' checked="checked"' : '' %] />
+
+                    <label for="limit_to_available" class="results_header_lbl">
+                        [% l('Limit to available items') %]
+                    </label>
+                <div class="clear-both"></div>
+            </div>
+        </div>
+    </div>
+    </form>
+    <div id="content-wrapper">
+        <div id="main-content">
+            <div id="tehResultsPage">
+                [% path = "opac/parts/result/" _
+                    (ctx.records.size ? "table.tt2" : "lowhits.tt2");
+                INCLUDE $path %]
+            </div>
+            <div class="common-full-pad"></div>    
+        </div>
+    </div>
+[% END %]
diff --git a/Open-ILS/src/templates/serial/list_item.tt2 b/Open-ILS/src/templates/serial/list_item.tt2
new file mode 100644 (file)
index 0000000..edbbb82
--- /dev/null
@@ -0,0 +1,123 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Items" %]
+[% BLOCK status_values %]
+                <option value="Expected">Expected</option>
+                <option value="Bindery">Bindery</option>
+                <option value="Bound">Bound</option>
+                <option value="Claimed">Claimed</option>
+                <option value="Discarded">Discarded</option>
+                <option value="Not Held">Not Held</option>
+                <option value="Not Published">Not Published</option>
+                <option value="Received">Received</option>
+[% END %]
+<style type="text/css">
+    .create-dialog-table td { padding: 0.35em 0; }
+    .create-dialog-table th {
+        padding-right: 1em;
+        text-align: right;
+        font-weight: bold;
+    }
+</style>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+        layoutAlign="top" class="oils-header-panel">
+        <div>Items</div>
+        <div>
+            <button dojoType="dijit.form.Button"
+                onClick="create_dialog.show()">New Items</button>
+            <button dojoType="dijit.form.Button"
+                onClick="sitem_grid.refresh()">Refresh Grid</button>
+            <button dojoType="dijit.form.Button"
+                onClick="sitem_grid.deleteSelected()">
+                Delete Selected
+            </button>
+        </div>
+    </div>
+    <div>
+        Showing items attached to the issuance,
+        <em><a href="javascript:void(0);" id="siss_label_here"></a></em>.
+    </div>
+    <table jsId="sitem_grid"
+        dojoType="openils.widget.AutoGrid"
+        query="{id: '*'}"
+        fieldOrder="['id','creator','editor','create_date','edit_date',
+            'stream','date_expected','date_received','status','unit']"
+        suppressFields="['issuance','uri','shadowed']"
+        suppressEditFields="['issuance','uri','shadowed','creator','editor','create_date','edit_date','unit','stream']"
+        showSequenceFields="true"
+        fmClass="sitem"
+        editPaneOnSubmit="update_sitem_safely"
+        showPaginator="true"
+        editOnEnter="true">
+        <thead>
+            <tr>
+                <th field="creator" get="get_creator" formatter="format_user">
+                </th>
+                <th field="editor" get="get_editor" formatter="format_user">
+                </th>
+                <th field="stream" get="get_stream" formatter="format_stream">
+                </th>
+                <th field="unit" get="get_unit" formatter="format_unit">
+                </th>
+            </tr>
+        </thead>
+    </table>
+    <div class="hidden">
+        <div jsId="create_dialog" dojoType="dijit.Dialog"
+            title="Create New Items" execute="create_new_items(arguments[0]);">
+            <table class="create-dialog-table">
+                <tr>
+                    <th>How many items?</th>
+                    <td>
+                        <input dojoType="dijit.form.NumberSpinner" value="1"
+                            name="count" constraints="{min: 1, max: 100}" />
+                    </td>
+                </tr>
+                <tr>
+                    <th>Stream</th>
+                    <td>
+                        <input id="stream_selector" />
+                    </td>
+                </tr>
+                <tr>
+                    <th>Date Expected</th>
+                    <td>
+                        <input dojoType="dijit.form.DateTextBox"
+                            id="create-date-expected" name="date_expected"
+                            required="false" />
+                    </td>
+                </tr>
+                <tr>
+                    <th>Date Received</th>
+                    <td>
+                        <input dojoType="dijit.form.DateTextBox"
+                            name="date_received" required="false" />
+                    </td>
+                </tr>
+                <tr>
+                    <th>Status</th>
+                    <td>
+                        <select dojoType="dijit.form.FilteringSelect"
+                            name="status">
+                            [%- PROCESS status_values -%]
+                        </select>
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="2" align="center">
+                        <span dojoType="dijit.form.Button" type="submit">
+                            Create
+                        </span>
+                    </td>
+                </tr>
+            </table>
+        </div>
+        <select jsId="status_selector" dojoType="dijit.form.FilteringSelect">
+            [%- PROCESS status_values -%]
+        </select>
+        <div dojoType="openils.widget.ProgressDialog" jsId="progress_dialog">
+        </div>
+    </div>
+</div>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/serial/list_item.js"></script>
+[% END %]
diff --git a/Open-ILS/src/templates/serial/list_stream.tt2 b/Open-ILS/src/templates/serial/list_stream.tt2
new file mode 100644 (file)
index 0000000..7aedaf2
--- /dev/null
@@ -0,0 +1,149 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Streams" %]
+<style type="text/css">
+    #new-srlu-table { width: 100%; }
+    #new-srlu-table th { text-align: left; padding-left: 1em; }
+    #new-srlu-table td { text-align: center; padding-right: 1em; }
+    #list-source { border: 1px #666 dashed; }
+</style>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+        layoutAlign="top" class="oils-header-panel">
+        <div>Streams</div>
+        <div>
+            <button dojoType="dijit.form.Button"
+                onClick="sstr_grid.showCreateDialog()">New Stream</button>
+            <button dojoType="dijit.form.Button"
+                onClick="multi_stream_dialog.show()">
+                Create Many Streams
+            </button>
+            <button dojoType="dijit.form.Button" onClick="rlu_editor.show()">
+                Routing List For Selected Stream
+            </button>
+            <button dojoType="dijit.form.Button"
+                onClick="sstr_grid.refresh()">Refresh Grid</button>
+            <button dojoType="dijit.form.Button"
+                onClick="sstr_grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div>
+        Showing streams attached to the distribution,
+        <em><a href="javascript:void(0);" id="sdist_label_here"></a></em>
+        (<span id="sdist_org_unit_name_here"></span>).
+    </div>
+    <table jsId="sstr_grid"
+        dojoType="openils.widget.AutoGrid"
+        query="{id: '*'}"
+        fieldOrder="['id','distribution','routing_label']"
+        suppressFields="['distribution']"
+        showSequenceFields="true"
+        fmClass="sstr"
+        showPaginator="true"
+        editOnEnter="true">
+        <thead>
+            <tr>
+                <th width="90%" field="routing_label"
+                    formatter="format_routing_label"></th>
+            </tr>
+        </thead>
+    </table>
+</div>
+<div class="hidden">
+
+    <div id="routing_list_user_template_reader">
+        Reader: ${0} / ${1}, ${2} ${3} (${4})
+    </div>
+    <div id="routing_list_user_template_department">Department: ${0}</div>
+    <div id="routing_list_user_template_note"><br />&nbsp; <em>${0}</em></div>
+    <div id="routing_list_user_template_remove">[X]</div>
+
+    <div dojoType="dijit.Dialog" id="routing_list_dialog"
+        execute="rlu_editor.save()" title="Manage Routing List">
+        <ol id="list-source" dojoType="dojo.dnd.Source"
+            jsId="routing_list_source"></ol>
+        <table id="new-srlu-table">
+            <tbody>
+                <tr>
+                    <td>
+                        <input type="radio" name="reader_xor_dept"
+                            dojoType="dijit.form.RadioButton"
+                            value="reader" id="reader_xor_dept-reader" />
+                    </td>
+                    <th>
+                        <label for="reader_xor_dept-reader">
+                            Reader (barcode):
+                        </label>
+                    </th>
+                    <td>
+                        <input dojoType="dijit.form.TextBox" id="reader"
+                            name="reader" disabled="disabled" />
+                    </td>
+                    <td rowspan="3">
+                        <button dojoType="dijit.form.Button"
+                            id="routing_list_add_button"
+                            onClick="rlu_editor.new_user()">Add</button>
+                    </td>
+                </tr>
+                <tr>
+                    <td>
+                        <input type="radio" name="reader_xor_dept"
+                            dojoType="dijit.form.RadioButton"
+                            value="department"
+                            id="reader_xor_dept-department" />
+                    </td>
+                    <th>
+                        <label for="reader_xor_dept-department">
+                            Department:
+                        </label>
+                    </th>
+                    <td>
+                        <input dojoType="dijit.form.TextBox" id="department"
+                            name="department" disabled="disabled" />
+                    </td>
+                </tr>
+                <tr>
+                    <td></td>
+                    <th><label for="note">Note:</label></th>
+                    <td>
+                        <input id="note" name="note"
+                            dojoType="dijit.form.TextBox" />
+                    </td>
+                </tr>
+                <tr>
+                    <td colspan="4" style="padding-top: 1em;">
+                        <button id="routing_list_save_button"
+                            dojoType="dijit.form.Button" type="submit">
+                            Save Changes
+                        </button>
+                    </td>
+                </td>
+            </tbody>
+        </table>
+    </div>
+
+    <div dojoType="dijit.Dialog"
+        execute="create_many_streams(arguments[0]);"
+        title="Create Streams"
+        jsId="multi_stream_dialog">
+        <table class="serial-dialog-table">
+            <tr>
+                <th>How many?</th>
+                <td>
+                    <input dojoType="dijit.form.NumberSpinner"
+                        value="1" smallDelta="1" name="quantity"
+                        constraints="{'min': 1, 'max': 1000}" />
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    <button dojoType="dijit.form.Button" type="submit">
+                        Create
+                    </button>
+                </td>
+            </tr>
+        </table>
+    </div>
+    <div dojoType="openils.widget.ProgressDialog" jsId="progress_dialog"></div>
+</div>
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/serial/list_stream.js"> </script>
+[% END %]
diff --git a/Open-ILS/src/templates/serial/list_subscription.tt2 b/Open-ILS/src/templates/serial/list_subscription.tt2
new file mode 100644 (file)
index 0000000..42e43ec
--- /dev/null
@@ -0,0 +1,51 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Subscriptions" %]
+<script
+    type="text/javascript"
+    src="[% ctx.media_prefix %]/js/ui/default/serial/list_subscription.js">
+</script>
+<script type="text/javascript">
+    var _fallback_record_entry = "[% ctx.page_args.0 %]";
+</script>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane"
+        layoutAlign="top" class="oils-header-panel">
+        <div>Subscriptions</div>
+        <div>
+            <button
+                dojoType="dijit.form.Button"
+                onClick="ssub_grid.showCreateDialog()">New Subscription</button>
+            <button
+                dojoType="dijit.form.Button"
+                onClick="ssub_grid.deleteSelected()">Delete Selected</button>
+        </div>
+    </div>
+    <div>
+        <span>
+            Show subscriptions related to
+            <em type="opac/slot-data" datatype="marcxml"
+                query="datafield[tag=245]" limit="1"></em>
+            owned at or above:
+        </span>
+        <select dojoType="openils.widget.OrgUnitFilteringSelect"
+            jsId="ssub_owner_select"
+            searchAttr="shortname" labelAttr="shortname">
+        </select>
+    </div>
+    <table jsId="ssub_grid"
+        dojoType="openils.widget.AutoGrid"
+        query="{id: '*'}"
+        fieldOrder="['id','owning_lib','start_date','end_date']"
+        suppressFields="['record_entry']"
+        fmClass="ssub"
+        showPaginator="true"
+        showSequenceFields="true"
+        editOnEnter="true">
+        <thead>
+            <tr>
+                <th field="id" formatter="format_ssub_link"></th>
+            </tr>
+        </thead>
+    </table>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/serial/print_routing_list_users.tt2 b/Open-ILS/src/templates/serial/print_routing_list_users.tt2
new file mode 100644 (file)
index 0000000..c3942fb
--- /dev/null
@@ -0,0 +1,38 @@
+[% WRAPPER base.tt2 %]
+[% ctx.page_title = "Serial Routing List" %]
+<div class="hidden">
+    <div id="list_template">
+        <div class="item-title" name="title"></div>
+        <div class="item-issuance-label" name="issuance_label"></div>
+        <div class="item-dist-and-stream">
+            (<span name="distribution_holding_lib"></span>)
+            <span name="distribution_label"></span> /
+            <span name="stream_routing_label" class="hidden"></span>
+            <em name="stream_id_container" class="hidden">
+                Unlabeled stream ID #<span name="stream_id"></span>
+            </em>
+        </div>
+        <ol name="users">
+            <li id="user_template">
+                <span class="hidden" name="reader_container">
+                    Reader: <span name="barcode"></span> /
+                    <span name="name"></span>
+                    (<span name="ou"></span>)
+                </span>
+                <span class="hidden" name="department_container">
+                    Department: <span name="department"></span>
+                </span>
+                <span class="hidden" name="note_container">
+                    <br />&nbsp; <em name="note"></em>
+                </span>
+            </li>
+        </ol>
+    </div>
+</div>
+<div style="padding: 1em 0;">
+    <button onclick="list_renderer.print()" accesskey="P"><u>P</u>rint</button>
+</div>
+<div id="iframe_in_here"></div>
+<script type="text/javascript"
+    src="[% ctx.media_prefix %]/js/ui/default/serial/print_routing_list_users.js"></script>
+[% END %]
diff --git a/Open-ILS/src/templates/serial/subscription.tt2 b/Open-ILS/src/templates/serial/subscription.tt2
new file mode 100644 (file)
index 0000000..c835d39
--- /dev/null
@@ -0,0 +1,189 @@
+[% WRAPPER "base.tt2" %]
+<script>
+    var cap_editor;
+    var cap_importer;
+</script>
+<script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription.js">
+</script>
+<script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription/caption_and_pattern.js">
+</script>
+<script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription/issuance.js">
+</script>
+
+<div dojoType="dijit.layout.ContentPane" layout="top" class="oils-header-panel">
+    <div>Subscription Details</div>
+    <div>
+        <span dojoType="dijit.form.Button" onClick="clone_dialog.show();">
+            Clone Subscription
+        </span>
+        <span dojoType="dijit.form.Button" onClick="open_batch_receive();">
+            Batch Item Receive
+        </span>
+    </div>
+</div>
+
+<div dojoType="dijit.layout.TabContainer" jsId="tab_container"
+    class="oils-serial-tab-container">
+
+    <!-- Subscription Summary -->
+    <div dojoType="dijit.layout.ContentPane" title="Summary" selected="true">
+        <script type="dojo/connect" event="onShow">
+            load_sub_grid(sub_id);
+        </script>
+        <table jsId="sub_grid"
+            dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector="20px">
+            <thead>
+                <tr>
+                    <th field="id">ID</th>
+                    <th field="owning_lib" formatter="format_org_unit">
+                        Owning Library
+                    </th>
+                    <th field="start_date" formatter="format_date">
+                        Start Date
+                    </th>
+                    <th field="end_date" formatter="format_date">
+                        End Date
+                    </th>
+                    <th field="record_entry" width="20em"
+                        formatter="format_bib">
+                        Bibliographic Record
+                    </th>
+                    <th field="expected_date_offset">Expected Date Offset</th>
+                    <th field="num_dist">Number of Distributions</th>
+                </tr>
+            </thead>
+        </table>
+    </div>
+
+    <!-- Distributions -->
+    <div dojoType="dijit.layout.ContentPane" jsId="distributions_tab"
+        title="Distributions" layoutAlign="client">
+        <script type="dojo/connect" event="onShow">
+            if (!dist_grid._fresh) {
+                dist_grid.resetStore();
+                dist_grid.loadAll(
+                    {"order_by": {"sdist": "holding_lib"}},
+                    {"subscription": sub_id}
+                );
+                dist_grid._fresh = true;
+            }
+
+            if (!dist_grid.overrideEditWidgets.subscription) {
+                dist_grid.overrideEditWidgets.subscription =
+                    new dijit.form.TextBox({
+                        "disabled": true, "value": sub_id
+                    });
+            }
+        </script>
+        [% INCLUDE "serial/subscription/distribution.tt2" %]
+    </div>
+
+    <!-- Caption/Pattern -->
+    <div dojoType="dijit.layout.ContentPane"
+        title="Captions and Patterns" layoutAlign="client">
+        <script type="dojo/connect" event="onShow">
+            if (!cap_editor) {
+                cap_editor = new SCAPEditor(sub_id);
+                cap_importer = new SCAPImporter(sub);
+            }
+        </script>
+        [% INCLUDE "serial/subscription/caption_and_pattern.tt2" %]
+    </div>
+
+    <!-- Issuances -->
+    <div dojoType="dijit.layout.ContentPane" jsId="issuances_tab"
+        title="Issuances" layoutAlign="client">
+        <script type="dojo/connect" event="onShow">
+            if (!iss_grid._fresh) {
+                iss_grid.resetStore();
+                iss_grid.loadAll(
+                    {"order_by": {"siss": "date_published"}},
+                    {"subscription": sub_id}
+                );
+                iss_grid._fresh = true;
+            }
+
+            if (!iss_grid.overrideEditWidgets.subscription) {
+                iss_grid.overrideEditWidgets.subscription =
+                    new dijit.form.TextBox({
+                        "disabled": true, "value": sub_id
+                    });
+
+                iss_grid.overrideEditWidgets.creator =
+                    new dijit.form.TextBox({"disabled": true});
+                iss_grid.overrideEditWidgets.creator.shove = {
+                    "create": openils.User.user.id()
+                };
+
+                iss_grid.overrideEditWidgets.editor =
+                    new dijit.form.TextBox({
+                        "disabled": true, "value": openils.User.user.id()
+                    });
+
+                iss_grid.overrideEditWidgets.holding_type =
+                    new dijit.form.TextBox({"disabled": true});
+                iss_grid.overrideEditWidgets.holding_type.shove = {"create":""};
+
+                iss_grid.overrideEditWidgets.holding_type =
+                    new dijit.form.TextBox;
+            }
+            fresh_scap_selector(iss_grid);
+        </script>
+        [% INCLUDE "serial/subscription/issuance.tt2" %]
+    </div>
+</div>
+<div class="hidden">
+    <div dojoType="openils.widget.ProgressDialog" jsId="progress_dialog"></div>
+    <div dojoType="dijit.Dialog" jsId="clone_dialog" title="Clone Subscription"
+        style="width: 460px;" execute="clone_subscription(arguments[0]);">
+        <div style="margin-bottom: 0.5em;">
+            This feature will clone a subscription and all of its subscription
+            notes, distributions, distribution notes, captions and patterns,
+            streams, and routing list users.</div>
+        <div style="margin-bottom: 0.5em;">
+            Holdings-related objects, like issuances, items, units, and
+            summaries will <em>not</em> be cloned.
+        </div>
+        <div style="margin-bottom: 0.5em;">
+            To what bibliographic record should the new subscription be
+            attached?
+        </div>
+        <table width="100%">
+            <tr>
+                <td style="padding-right: 0.5em; vertical-align: top;">
+                    <input dojoType="dijit.form.RadioButton"
+                        id="use_ident_no" name="use_ident" value="no"
+                        checked="checked" />
+                </td>
+                <td>
+                    <label for="use_ident_no">
+                        Same record as the existing subscription
+                    </label>
+                </td>
+            </tr>
+            <tr>
+                <td style="padding-right: 0.5em; vertical-align: top;">
+                    <input dojoType="dijit.form.RadioButton"
+                        onChange="toggle_clone_ident_field(this);"
+                        id="use_ident_yes" name="use_ident" value="yes" />
+                </td>
+                <td>
+                    <label for="use_ident_yes">
+                        Record specified by this unique identifier:
+                    </label>
+                    <input dojoType="dijit.form.TextBox" name="ident"
+                        jsId="clone_ident" disabled="true"
+                        style="margin-left: 0.5em; width: 10em;" />
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2" align="center">
+                    <span dojoType="dijit.form.Button" type="submit">
+                        Clone!
+                    </span>
+                </td>
+            </tr>
+        </table>
+    </div>
+</div>
+[% END %]
diff --git a/Open-ILS/src/templates/serial/subscription/caption_and_pattern.tt2 b/Open-ILS/src/templates/serial/subscription/caption_and_pattern.tt2
new file mode 100644 (file)
index 0000000..17d8e9d
--- /dev/null
@@ -0,0 +1,80 @@
+<div dojoType="dijit.layout.ContentPane" layout="top">
+    <table id="scap_editor" class="hidden">
+        <thead>
+            <tr>
+                <th>ID</th>
+                <th>Type</th>
+                <th>Pattern Code</th>
+                <th>Create Date</th>
+                <th>Active</th>
+                <th>Remove</th>
+                <th>Save Changes</th>
+            </tr>
+        </thead>
+        <tbody>
+            <tr>
+                <td name="id">
+                    <span control="true"></span>
+                </td>
+                <td name="type">
+                    <select control="true">
+                        <option value="basic">(853) Basic</option>
+                        <option value="supplement">(854) Supplement</option>
+                        <option value="index">(855) Index</option>
+                    </select>
+                </td>
+                <td name="pattern_code">
+                    <input type="text" size="16" control="true" />
+                    <button>Wizard ...</button>
+                </td>
+                <td name="create_date">
+                    <span control="true"></span>
+                </td>
+                <td name="active">
+                    <input type="checkbox" control="true" checked="checked" />
+                </td>
+                <td name="remover">
+                    <button>X</button>
+                </td>
+                <td name="save">
+                    <button>Save Changes</button>
+                </td>
+            </tr>
+        </tbody>
+        <tfoot>
+            <tr>
+                <td colspan="7" align="center">
+                    <button name="add">Add New</button>
+                    &nbsp;
+                    <button id="scaps_from_bib">
+                        Import From Bibliographic or Legacy Serial Records
+                    </button>
+                </td>
+            </tr>
+        </tfoot>
+    </table>
+</div>
+<div class="hidden">
+    <div id="record_template" style="padding-bottom: 0.5em;">
+        <input type="checkbox" />&nbsp; <span name="obj_class"></span> record
+        #<span name="obj_id"></span>
+        <span name="obj_owner_container" class="hidden">
+            (<span name="obj_owner"></span>)
+        </span><br />
+        &nbsp; Created by <span name="obj_create"></span><br />
+        &nbsp; Edited by <span name="obj_edit"></span><br />
+        <em class="hidden" name="obj_inactive">(Inactive)</em>
+    </div>
+    <div dojoType="dijit.Dialog" execute="cap_importer.import()"
+        jsId="scaps_from_bib_dialog">
+        <div>
+            <em>
+                Select records from which to import caption and pattern fields.
+            </em>
+        </div>
+        <div id="record_holder" style="padding: 1em 0;"></div>
+        <button dojoType="dijit.form.Button" type="submit">
+            Import
+        </button>
+    </div>
+</div>
diff --git a/Open-ILS/src/templates/serial/subscription/distribution.tt2 b/Open-ILS/src/templates/serial/subscription/distribution.tt2
new file mode 100644 (file)
index 0000000..d8f4b0d
--- /dev/null
@@ -0,0 +1,37 @@
+<div dojoType="dijit.layout.ContentPane" layout="top"
+    class="oils-header-panel lesser">
+    <div>Distributions</div>
+    <div style="margin-right: 16px;">
+        <span dojoType="dijit.form.Button"
+            onClick="dist_grid.refresh();">Refresh Grid</span>
+        <span dojoType="dijit.form.Button"
+            onClick="sub_grid._fresh = false; dist_grid.showCreateDialog();">
+            New Distribution
+        </span>
+        <span dojoType="dijit.form.Button"
+            onClick="sub_grid._fresh = false; dist_grid.deleteSelected();">
+            Delete Selected
+        </span>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layout="top">
+    <table
+        jsId="dist_grid"
+        dojoType="openils.widget.AutoGrid"
+        style="height: 550px;"
+        fieldOrder="['subscription','label','holding_lib']"
+        suppressFields="['record_entry','subscription','receive_call_number','bind_call_number','bind_unit_template']"
+        suppressEditFields="['record_entry','receive_call_number','bind_call_number','bind_unit_template']"
+        requiredFields="['receive_unit_template']"
+        fmClass="sdist"
+        query="{id: '*'}"
+        editOnEnter="true"
+        showPaginator="true">
+        <thead>
+            <tr>
+                <th field="label" width="35%"
+                    get="get_id_and_label" formatter="format_sdist_label"></th>
+            </tr>
+        </thead>
+    </table>
+</div>
diff --git a/Open-ILS/src/templates/serial/subscription/issuance.tt2 b/Open-ILS/src/templates/serial/subscription/issuance.tt2
new file mode 100644 (file)
index 0000000..b74df6e
--- /dev/null
@@ -0,0 +1,84 @@
+<div dojoType="dijit.layout.ContentPane" layout="top"
+    class="oils-header-panel lesser">
+    <div>Issuances</div>
+    <div style="margin-right: 16px;">
+        <span dojoType="dijit.form.Button"
+            onclick="iss_grid.refresh();">Refresh Grid</span>
+        <span dojoType="dijit.form.Button"
+            onclick="iss_grid.showCreatePane();">New Issuance</span>
+        <span dojoType="dijit.form.Button"
+            onclick="iss_grid.deleteSelected();">Delete Selected</span>
+    </div>
+</div>
+<div class="serial-additional-controls">
+    <span dojoType="dijit.form.Button"
+        onclick="prediction_dialog.show();">Generate Predictions</span>
+</div>
+<div dojoType="dijit.layout.ContentPane" layout="top">
+    <table jsId="iss_grid"
+        dojoType="openils.widget.AutoGrid"
+        autoHeight="true"
+        fieldOrder="['subscription','creator','editor','label','date_published','caption_and_pattern','holding_type']"
+        suppressFields="['subscription','holding_link_id','create_date','edit_date','creator','editor']"
+        suppressEditFields="['id','holding_link_id','create_date','edit_date']"
+        defaultCellWidth="'auto'"
+        fmClass="siss"
+        query="{id: '*'}"
+        editOnEnter="true"
+        showPaginator="true">
+        <thead>
+            <tr>
+                <th field="label" formatter="format_siss_label"
+                    get="get_id_and_label"></th>
+            </tr>
+        </thead>
+    </table>
+</div>
+<div class="hidden">
+    <div dojoType="dijit.Dialog"
+        title="Generate Issuance and Item Predictions"
+        execute="generate_predictions(arguments[0]);"
+        jsId="prediction_dialog">
+        <script type="dojo/connect" event="onShow">
+            prepare_prediction_dialog();
+        </script>
+        <table class="serial-dialog-table">
+            <tr>
+                <th>
+                    <input dojoType="dijit.form.RadioButton"
+                        id="end_date" name="end_how" value="date"
+                        checked="false" disabled="true"
+                        jsId="prediction_dialog_end_date" />
+                    <label for="end_date">
+                        Predict until end of subscription
+                    </label>
+                </th>
+                <td></td>
+            </tr>
+            <tr>
+                <th>
+                    <input dojoType="dijit.form.RadioButton"
+                        id="end_num" name="end_how" value="number"
+                        checked="true" jsId="prediction_dialog_end_num"
+                        onChange="if (this.attr('checked')) setTimeout(function(){prediction_dialog_num_to_predict.focus();},200);" />
+                    <label for="end_num">
+                        Predict a certain number of issuances:
+                    </label>
+                </th>
+                <td>
+                    <input dojoType="dijit.form.TextBox"
+                        style="width: 5em;"
+                        jsId="prediction_dialog_num_to_predict"
+                        name="num_to_predict" />
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    <button dojoType="dijit.form.Button"
+                        jsId="prediction_dialog_submit"
+                        type="submit" disabled="true">Generate</button>
+                </td>
+            </tr>
+        </table>
+    </div>
+</div>
diff --git a/Open-ILS/src/templates/vandelay/inc/attrs.tt2 b/Open-ILS/src/templates/vandelay/inc/attrs.tt2
new file mode 100644 (file)
index 0000000..1a09b0b
--- /dev/null
@@ -0,0 +1,92 @@
+<div style='float: left; margin-top: 8px;'>
+    <input dojoType="dijit.form.RadioButton" name="attrEditorGroup" value="bib" 
+        id="aegB" onclick="setAttrEditorGroup('bib');" checked="checked"/>
+    <label for="aegB" style="margin-right: 1em;">&vandelay.bib.attrs;</label>
+    <input dojoType="dijit.form.RadioButton" name="attrEditorGroup" value="auth" 
+        id="aegA" onclick="setAttrEditorGroup('auth');"/>
+    <label for="aegA" style="margin-right: 1em;">&vandelay.auth.attrs;</label>
+</div>
+<div dojoType="dijit.form.DropDownButton" id="vl-create-attr-editor-button">
+    <span name="create">&vandelay.create.attr.def;</span>
+    <div dojoType="dijit.TooltipDialog" execute="vlSaveAttrDefinition(arguments[0]);" id="attr-editor-dialog">
+        <script type='dojo/connect' event='onOpen'>onAttrEditorOpen();</script>
+        <script type='dojo/connect' event='onClose'>onAttrEditorClose();</script>
+        <table class='dijitTooltipTable'>
+            <tr>
+                <td><label for="code">&vandelay.code;:</label></td>
+                <td><input id='attr-editor-code' name="code" dojoType="dijit.form.TextBox"/></td>
+            </tr>
+            <tr>
+                <td><label for="description">&vandelay.descrip;:</label></td>
+                <td><input id='attr-editor-description' dojoType="dijit.form.TextBox" name="description"> </input></td>
+            </tr>
+            <tr>
+                <td><label for="amount">&vandelay.tags;:</label></td>
+                <td><input id="attr-editor-tags" dojoType="dijit.form.TextBox" name="tag"></input>
+                <div class="hidden" id="attr-editor-tags-tip">
+                <p>&vandelay.tooltip.tags;</p>
+                <p>&vandelay.for.example;:<code>120, 220, 300</code> or <code>120 220 330</code></p></div>
+                </td>
+            </tr>
+
+            <tr>
+                <td><label for="amount">&vandelay.subfields;:</label></td>
+                <td><input dojoType="dijit.form.TextBox" name="subfield" id="attr-editor-subfields"></input>
+                    <div class="hidden" id="attr-editor-subfields-tip">
+                    <p>&vandelay.tooltip.subfields;</p>
+                    <p>&vandelay.for.example;: <code>a, b, j, x</code> or <code>a b j x</code></p></div>
+                </td>
+            </tr>
+            <tr>
+                <td><label for="attr-editor-xpath">&vandelay.xpath.advanced;: </label></td>
+
+                <td><input dojoType="dijit.form.TextBox" id="attr-editor-xpath" name="xpath"></input></td>
+            </tr>
+            <tr>
+                <td><label for="attr-editor-remove">&vandelay.remove.advanced;: </label></td>
+
+                <td><input dojoType="dijit.form.TextBox" id="attr-editor-remove" name="remove"></input></td>
+            </tr>
+            <tr id="attr-editor-create-bar">
+                <td colspan='2' align='center'>
+                    <button dojoType="dijit.form.Button" type="submit" 
+                        id="attr-editor-create-button">&vandelay.create;</button>
+                    <button type="button" dojoType="dijit.form.Button"
+                        onclick="dijit.byId('attr-editor-dialog').onCancel();">&vandelay.cancel;</button>
+                </td>
+            </tr>
+            <tr id="attr-editor-update-bar">
+                <td colspan='2' align='center'>
+                    <button dojoType="dijit.form.Button" type="submit" 
+                        id="attr-editor-update-button">&vandelay.update;</button>
+                    <button type="button" dojoType="dijit.form.Button"
+                        onclick="dijit.byId('attr-editor-dialog').onCancel();">&vandelay.cancel;</button>
+                    <button dojoType="dijit.form.Button" 
+                        type="button" 
+                        id="attr-editor-delete-button"
+                        style="padding-left: 2em;"
+                        onclick="if(confirm('&vandelay.sure.to.delete;')) { vlAttrDelete(); }">
+                            &vandelay.delete.record;</button>
+                </td>
+            </tr>
+        </table>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <table dojoType='dojox.grid.DataGrid' jsId='attrEditorGrid' query="{id: '*'}" autoHeight='true'> 
+        <thead>
+            <tr>
+                <th field='id'>&vandelay.id;</th>
+                <th field='code' width='auto'>&vandelay.code;</th>
+                <th field='description' width='auto'>&vandelay.descrip;</th>
+                <th field='tag' get='attrGridGetTag'>&vandelay.tag;</th>
+                <th field='subfield' get='attrGridGetSubfield'>&vandelay.subfield;</th>
+                <th field='xpath' width='auto'>&vandelay.xpath;</th>
+                <th field='remove' width='auto'>&vandelay.remove;</th>
+            </tr>
+        </thead>
+    </table>
+    <div/>
+</div>
+
+
diff --git a/Open-ILS/src/templates/vandelay/inc/export.tt2 b/Open-ILS/src/templates/vandelay/inc/export.tt2
new file mode 100644 (file)
index 0000000..1f7a9e3
--- /dev/null
@@ -0,0 +1,64 @@
+<h1>&vandelay.export.records;</h1><br/>
+<form method="POST" enctype="multipart/form-data" action='https://[% ctx.hostname %]/exporter'>
+    <table class='form_table'>
+        <tr class='export_tr_border'>
+            <td>&vandelay.export.use_field_no;</td>
+            <td>
+                <input dojoType='dijit.form.TextBox' type="text" size="2" maxlength="2" name="idcolumn" value="0"/>
+                &vandelay.export.field_no_hint;
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.export.from_csv;</td>
+            <td><input type="file" name="idfile"/></td>
+        </tr>
+        <tr><td colspan='2'><b>&vandelay.export.or;</b></td></tr>
+        <tr class='export_tr_border'>
+            <td>&vandelay.export.record_id;</td>
+            <td><input dojoType='dijit.form.TextBox' type="text" size="12" maxlength="12" name="id"/></td>
+        </tr>
+        <tr><td colspan='2'><b>&vandelay.export.or;</b></td></tr>
+        <tr class='export_tr_border'>
+            <td>&vandelay.export.bucket;</td>
+            <td><input dojoType='dijit.form.TextBox' type='text' name='containerid'/></td>
+        </tr>
+        <tr class='export_tr_border'>
+            <td>&vandelay.record.type;</td>
+            <td>
+                <select name="rectype" dojoType='dijit.form.FilteringSelect'>
+                    <option value="biblio">&vandelay.bib.records;</option>
+                    <option value="authority">&vandelay.auth.records;</option>
+                </select>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.export.format;</td>
+            <td>
+                <select name="format" dojoType='dijit.form.FilteringSelect'>
+                    <option value="USMARC">&vandelay.export.format.marc21;</option>
+                    <option value="UNIMARC">&vandelay.export.format.unimarc;</option>
+                    <option value="XML">&vandelay.export.format.xml;</option>
+                    <option value="BRE">&vandelay.export.format.bre;</option>
+                </select>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.export.encoding;</td>
+            <td>
+                <select name="encoding" dojoType='dijit.form.FilteringSelect'>
+                    <option value="UTF-8">&vandelay.export.utf8;</option>
+                    <option value="MARC8">&vandelay.export.marc8;</option>
+                </select>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.export.holdings;</td>
+            <td><input dojoType='dijit.form.CheckBox' type="checkbox" name="holdings" value="1"/></td>
+        </tr>
+        <tr>
+            <td colspan='2'>
+                <button dojoType='dijit.form.Button' type="submit" value="Retrieve Records">&vandelay.export.retrieve;</button>
+            </td>
+        </tr>
+    </table>
+</form>
diff --git a/Open-ILS/src/templates/vandelay/inc/import_errors.tt2 b/Open-ILS/src/templates/vandelay/inc/import_errors.tt2
new file mode 100644 (file)
index 0000000..588260e
--- /dev/null
@@ -0,0 +1,81 @@
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
+    <button dojoType='dijit.form.Button' 
+        onclick="displayGlobalDiv('vl-queue-div');">&#x2196; &vandelay.back.to.import.queue;</button>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
+    <div id='vl-import-error-record' class='hidden'>
+        <h1>Import Errors</h1><br/>
+        <table>
+            <tbody>
+                <tr><td>ID</td><td id='vl-error-id'/></tr>
+                <tr><td>Import Error</td><td id='vl-error-import-error'/></tr>
+                <tr><td>Error Detail</td><td id='vl-error-error-detail'/></tr>
+                <tr><td>Title</td><td id='vl-error-title'/></tr>
+                <tr><td>Author</td><td id='vl-error-author'/></tr>
+                <tr><td>ISBN</td><td id='vl-error-isbn'/></tr>
+                <tr><td>ISSN</td><td id='vl-error-issn'/></tr>
+                <tr><td>UPC</td><td id='vl-error-upc'/></tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
+    <div class='hidden' id='vl-import-error-grid-some'>
+        <table  jsId="vlImportErrorGrid"
+                dojoType="openils.widget.AutoGrid"
+                autoHeight='true'
+                fieldOrder="['barcode', 'call_number', 'owning_lib', 'import_error', 'error_detail']"
+                query="{id: '*'}"
+                hidePaginator='true'
+                showColumnPicker='true'
+                columnPickerPrefix='"vandelay.item.import_error"'
+                fmClass='vii'>
+                <thead>
+                    <tr>
+                        <th field='owning_lib' get='vlGetOrg'/>
+                        <th field='circ_lib' get='vlGetOrg'/>
+                        <th field='status' get='vlCopyStatus'/>
+                        <th field='location' get='vlCopyLocation'/>
+                    </tr>
+                </thead>
+        </table>
+    </div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
+    <div class='hidden' id='vl-import-error-grid-all'>
+        <h1>Import Items</h1><br/>
+        <input dojoType='dijit.form.CheckBox' jsId='vlImportItemsShowErrors' onchange='vlLoadErrorUIAll();'/>
+        <span>Limit to Import Failures</span>
+        <table width='100%'><tr><td width='100%' align='right'>
+            <select id='vl-item-export-options' style='margin-right: 10px;'>
+                <!-- TODO I18N -->
+                <option value=''>Export Items As...</option>
+                <option value='print'>Print</option>
+                <option value='csv'>CSV</option>
+                <option value='email'>Email</option>
+            </select>
+        </td></tr></table>
+        <table  jsId="vlAllImportErrorGrid"
+                dojoType="openils.widget.AutoGrid"
+                autoHeight='true'
+                fieldOrder="['barcode', 'call_number', 'owning_lib', 'import_error', 'error_detail']"
+                query="{id: '*'}"
+                showPaginator='true'
+                showColumnPicker='true'
+                columnPickerPrefix='"vandelay.item.import_error"'
+                fmClass='vii'>
+                <thead>
+                    <tr>
+                        <th field='owning_lib' get='vlGetOrg'/>
+                        <th field='circ_lib' get='vlGetOrg'/>
+                        <th field='status' get='vlCopyStatus'/>
+                        <th field='location' get='vlCopyLocation'/>
+                    </tr>
+                </thead>
+        </table>
+    </div>
+</div>
+
diff --git a/Open-ILS/src/templates/vandelay/inc/item_attrs.tt2 b/Open-ILS/src/templates/vandelay/inc/item_attrs.tt2
new file mode 100644 (file)
index 0000000..611657c
--- /dev/null
@@ -0,0 +1,27 @@
+<!--
+    Grid for configuring vandelay.import_item_attr_definition
+-->
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Import Item Attribute Definitions</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='itemAttrGrid.showCreatePane()'>New Definition</button>
+            <button dojoType='dijit.form.Button' onClick='itemAttrGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+        <span style='padding-right:10px;'>Context Org Unit</span>
+        <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='itemAttrContextOrgSelector'
+            searchAttr='shortname' labelAttr='shortname'> </select>
+    </div>
+    <table  jsId="itemAttrGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="[]"
+            query="{id: '*'}"
+            fmClass='viiad'
+            editStyle='pane'
+            showPaginator='true'
+            editOnEnter='true'>
+    </table>
+</div>
diff --git a/Open-ILS/src/templates/vandelay/inc/marchtml.tt2 b/Open-ILS/src/templates/vandelay/inc/marchtml.tt2
new file mode 100644 (file)
index 0000000..ad54452
--- /dev/null
@@ -0,0 +1,13 @@
+<!-- MARC as HTML -->
+<h1>&vandelay.marc.record;</h1><br/>
+<span class='hidden' id='vl-marc-edit-save-label'>&vandelay.save;</span>
+<span class='hidden' id='vl-marc-edit-complete-label'>&vandelay.record_saved;</span>
+<div>
+    <button id='vl-marc-html-done-button' dojoType='dijit.form.Button'>&#x2196; &vandelay.return;</button>
+    <button id='vl-marc-html-edit-button' dojoType='dijit.form.Button'>&vandelay.edit;</button>
+</div>
+<div>
+    <style type="text/css">#vl-marc-record-html td {padding:0px;}</style>
+    <div id='vl-marc-record-html'> </div>
+</div>
+
diff --git a/Open-ILS/src/templates/vandelay/inc/matches.tt2 b/Open-ILS/src/templates/vandelay/inc/matches.tt2
new file mode 100644 (file)
index 0000000..2376dbc
--- /dev/null
@@ -0,0 +1,41 @@
+<script type="text/javascript">
+    var vlMatchGridLayout;
+    function resetVlMatchGridLayout() {
+        vlMatchGridLayout = [{
+            defaultCell: {styles: 'text-align: center;'},
+            cells : [[
+                {
+                    name: '&vandelay.overlay.target;', 
+                    get: vlGetOverlayTargetSelector,
+                    formatter : vlFormatOverlayTargetSelector,
+                },
+                {name: '&vandelay.id;', field:'id'},
+                {   name: '&vandelay.view.marc;', 
+                    get: vlGetViewMARC, 
+                    formatter : vlFormatViewMatchMARC
+                },
+                {name: 'Match Score', field:'match_score'},
+                {name: 'Queued Record Quality', field:'rec_quality'},
+                {name: 'Matched Record Quality', field:'match_quality'},
+                {name: '&vandelay.creator;', get: vlGetCreator},
+                {name: '&vandelay.create.date;', field:'create_date', get: vlGetDateTimeField},
+                {name: '&vandelay.last.edit.date;', field:'edit_date', get: vlGetDateTimeField},
+                {name: '&vandelay.source;', field:'source'},
+                {name: '&vandelay.tcn.source;', field:'tcn_source'},
+                {name: '&vandelay.tcn.value;', field:'tcn_value'}
+            ]]
+        }];
+    }
+</script>
+<h1>&vandelay.import.matches;</h1><br/>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
+    <button dojoType='dijit.form.Button' 
+        onclick="displayGlobalDiv('vl-queue-div');">&#x2196; &vandelay.back.to.import.queue;</button>
+</div>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
+    <table dojoType='dojox.grid.DataGrid' jsId='vlMatchGrid' query='{id:"*"}' autoHeight='true'> 
+    </table>
+</div>
+
diff --git a/Open-ILS/src/templates/vandelay/inc/profiles.tt2 b/Open-ILS/src/templates/vandelay/inc/profiles.tt2
new file mode 100644 (file)
index 0000000..0220d6a
--- /dev/null
@@ -0,0 +1,28 @@
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+        <div>Overlay / Merge Profiles</div>
+        <div>
+            <button dojoType='dijit.form.Button' onClick='pGrid.showCreateDialog()'>New Merge Profile</button>
+            <button dojoType='dijit.form.Button' onClick='pGrid.deleteSelected()'>Delete Selected</button>
+        </div>
+    </div>
+    <div>
+        <span style='padding-right:10px;'>Context Org Unit</span>
+        <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='profileContextOrgSelector'
+            searchAttr='shortname' labelAttr='shortname'> </select>
+    </div>
+    <table  jsId="pGrid"
+            dojoType="openils.widget.AutoGrid"
+            fieldOrder="['name', 'owner', 'preserve_spec', 'replace_spec', 'add_spec', 'strip_spec', 'lwm_ratio']"
+            query="{id: '*'}"
+            defaultCellWidth='"14%"'
+            fmClass='vmp'
+            showPaginator='true'
+            editOnEnter='true'>
+        <thead>
+            <tr>
+                <th field='owner' get='vlGetOrg'/>
+            </tr>
+        </thead>
+    </table>
+</div>
diff --git a/Open-ILS/src/templates/vandelay/inc/progress.tt2 b/Open-ILS/src/templates/vandelay/inc/progress.tt2
new file mode 100644 (file)
index 0000000..e5e1833
--- /dev/null
@@ -0,0 +1,16 @@
+<div id="vl-generic-progress" class='progress'>
+    <div dojoType="dijit.ProgressBar" style="width:300px" indeterminate="true"></div>
+</div>
+<div id="vl-generic-progress-with-total" class='hidden progress'>
+    <div dojoType="dijit.ProgressBar" jsId='vlControlledProgressBar' style="width:300px"></div>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-marc-upload-status-div' class='hidden'>
+    <h1>&vandelay.upload.status;</h1><br/>
+    <div id='vl-upload-status-uploading'>
+        <h3>&vandelay.uploading;</h3>
+    </div>
+    <div id='vl-upload-status-processing' class='hidden'>
+        <h3>&vandelay.processing;<span id='vl-upload-status-count'/></h3>
+    </div>
+</div>
+
diff --git a/Open-ILS/src/templates/vandelay/inc/queue.tt2 b/Open-ILS/src/templates/vandelay/inc/queue.tt2
new file mode 100644 (file)
index 0000000..749434f
--- /dev/null
@@ -0,0 +1,253 @@
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' style='margin-top:10px;'>
+    <fieldset id='vl-queue-filter-fieldset'>
+        <legend>Queue <span style='font-style:italic;' id='vl-queue-summary-name'/></legend>
+        <table width='100%'><tr>
+            <td> <!-- big left td -->
+            <table>
+                <tr>
+                    <td valign='top'>
+                        <table class='queue-nav-table'>
+                            <thead><tr><th colspan='2' class='queue-nav-table-label'>Queue Actions</th></tr></thead>
+                            <tbody>
+                                <tr><td><a href='javascript:;' onclick='vlHandleQueueItemsAction("import")'>&vandelay.import.selected;</a></td></tr>
+                                <tr><td><a href='javascript:;' onclick='vlHandleQueueItemsAction("import_all")'>&vandelay.import.all;</a></td></tr>
+                                <tr><td><a href='javascript:;' onclick='vlLoadErrorUIAll();'>View Import Items</a></td></tr>
+                                <tr><td><a href='javascript:;' onclick='
+                                    if(confirm("&vandelay.sure.to.delete.queue;")) {
+                                        vlDeleteQueue(currentType, currentQueueId, 
+                                            function() { displayGlobalDiv("vl-marc-upload-div"); });}'>&vandelay.delete.queue;</a></td></tr>
+                            </tbody>
+                        </table>
+                    </td>
+
+                    <td valign='top'>
+                        <table  id='vl-queue-summary-table' class='queue-nav-table'>
+                            <thead><tr><th colspan='2' class='queue-nav-table-label'>Queue Summary</th></tr></thead>
+                            <tbody>
+                                <tr><td>&vandelay.queue.total;</td><td> <span style='font-weight:bold;' id='vl-queue-summary-total-count'/></td></tr>
+                                <tr><td>&vandelay.queue.imported;</td><td> <span style='font-weight:bold;' id='vl-queue-summary-import-count'/></td></tr>
+                                <tr><td>Record Import Failures</td><td> <span style='font-weight:bold;' id='vl-queue-summary-rec-error-count'/></td></tr>
+                                <tr><td>Items in Queue</td><td> <span style='font-weight:bold;' id='vl-queue-summary-import-item-count'/></td></tr>
+                                <tr><td>Items Imported</td><td> <span style='font-weight:bold;' id='vl-queue-summary-import-item-imported-count'/></td></tr>
+                                <tr><td>Item Import Failures</td><td> <span style='font-weight:bold;' id='vl-queue-summary-item-error-count'/></td></tr>
+                            </tbody>
+                        </table>
+                    </td>
+
+                    <td valign='top'> <!-- filters -->
+                        <table id='vl-queue-filter-table' class='queue-nav-table'>
+                            <thead><tr><th colspan='2' class='queue-nav-table-label'>Queue Filters</th></tr></thead>
+                            <tbody>
+                                <tr>
+                                    <td>&vandelay.limit.to.collision.matches;</td>
+                                    <td>
+                                        <input dojoType='dijit.form.CheckBox' 
+                                            jsId='vlQueueGridShowMatches' onchange='retrieveQueuedRecords();'/>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td>&vandelay.limit.to.non.imported;</td>
+                                    <td>
+                                        <input dojoType='dijit.form.CheckBox' 
+                                            jsId='vlQueueGridShowNonImport' onchange='retrieveQueuedRecords();'/>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td>&vandelay.limit.to.import_error;</td>
+                                    <td>
+                                        <input dojoType='dijit.form.CheckBox' 
+                                            jsId='vlQueueGridShowImportErrors' onchange='retrieveQueuedRecords();'/>
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </td>
+                </tr>
+            </table>
+        </td>
+
+        <td align='right' valign='bottom'> <!-- big right td -->
+            <table id='vl-queue-paging-table' class='queue-nav-table'>
+                <tbody>
+                    <tr><td valign='bottom' align='right'>
+                        <select id='vl-queue-export-options' style='margin-right: 10px;'>
+                            <!-- TODO I18N -->
+                            <option value=''>Export Queue As...</option>
+                            <option value='print'>Print</option>
+                            <option value='csv'>CSV</option>
+                            <option value='email'>Email</option>
+                        </select>
+                        <span style='padding-right:5px;'>&vandelay.results.per.page;</span>
+                        <span class='queue-pager-span'>
+                            <select jsId='vlQueueDisplayLimit' id='vl-queue-display-limit-selector'
+                                value='10' onchange='retrieveQueuedRecords();'>
+                                <option value='10'>10</option>
+                                <option value='20'>20</option>
+                                <option value='50'>50</option>
+                                <option value='100'>100</option>
+                            </select>
+                        </span>
+
+                        <span class='queue-pager-span'>
+                            <span style='padding-left:5px;'>&vandelay.page;</span>
+                            <input style='width:36px;' dojoType='dijit.form.TextBox' jsId='vlQueueDisplayPage' value='1'/>
+                        </span>
+
+                        <span style='padding-right:8px;'>
+                            <a href='javascript:void(0);' onclick='vlQueueGridPrevPage();'>&vandelay.prev.page;</a>
+                        </span>
+                        <span style='padding-right:10px;'>
+                            <a href='javascript:void(0);' onclick='vlQueueGridNextPage();'>&vandelay.next.page;</a>
+                        </span>
+                    </td></tr>
+                </tbody>
+            </table>
+        </td>
+    </tr></table>
+    </fieldset>
+</div>
+
+<!-- Bib Queue Grid -->
+<div class='' id='vl-bib-queue-grid-wrapper' dojoType='dijit.layout.ContentPane'>
+    <table dojoType='dojox.grid.DataGrid' jsId='vlBibQueueGrid' query="{id:'*'}" autoHeight='true'>
+        <thead>
+            <tr>
+                <th 
+                    field='+row_selector'
+                    get='vlQueueGridDrawSelectBox'
+                    formatter='vlQueueGridFormatSelectBox'
+                    width='16'
+                    styles='text-align: center;'
+                    nonSelectable='true'>
+                        <input id="vl-queue-grid-row-selector" type="checkbox" onclick="vlToggleQueueGridSelect();"></input>
+                </th>
+                <th
+                    field='+view_marc'
+                    get='vlGetViewMARC'
+                    formatter='vlFormatViewMARC' 
+                    styles='text-align: center;'
+                    nonSelectable='true'>&vandelay.view.marc;</th>
+                <th
+                    field='+get_matches'
+                    get='vlGetViewMatches'
+                    formatter='vlFormatViewMatches'
+                    styles='text-align: center;'
+                    nonSelectable='true'>&vandelay.matches;</th>
+                <th
+                    field='+get_errors'
+                    get='vlGetViewErrors'
+                    formatter='vlFormatViewErrors'
+                    styles='text-align: center;'
+                    nonSelectable='true'>Import Failures</th>
+                <th
+                    field='import_time'
+                    styles='text-align: center;'
+                    get='vlGetDateTimeField'>&vandelay.import.time;</th>
+            </tr>
+        </thead>
+    </table>
+    <div/>
+</div>
+
+<!-- Auth Queue Grid -->
+<div class='' id='vl-auth-queue-grid-wrapper' dojoType='dijit.layout.ContentPane'>
+    <table dojoType='dojox.grid.DataGrid' jsId='vlAuthQueueGrid' query="{id:'*'}" autoHeight='true'> 
+        <thead>
+            <tr>
+                <th 
+                    field='+row_selector'
+                    get='vlQueueGridDrawSelectBox'
+                    formatter='vlQueueGridFormatSelectBox'
+                    styles='text-align: center;'
+                    nonSelectable='true'>
+                        <input id="vl-queue-grid-row-selector" type="checkbox" onclick="vlToggleQueueGridSelect();"></input>
+                </th>
+                <th
+                    field='+view_marc'
+                    get='vlGetViewMARC'
+                    formatter='vlFormatViewMARC' 
+                    styles='text-align: center;'
+                    nonSelectable='true'>&vandelay.view.marc;</th>
+                <th
+                    field='+get_matches'
+                    get='vlGetViewMatches'
+                    formatter='vlFormatViewMatches'
+                    styles='text-align: center;'
+                    nonSelectable='true'>&vandelay.matches;</th>
+                <th
+                    field='+get_errors'
+                    get='vlGetViewErrors'
+                    formatter='vlFormatViewErrors'
+                    styles='text-align: center;'
+                    nonSelectable='true'>Import Failures</th>
+                <th
+                    field='import_time'
+                    styles='text-align: center;'
+                    get='vlGetDateTimeField'>&vandelay.import.time;</th>
+            </tr>
+        </thead>
+    </table>
+    <div/>
+</div>
+
+<div jsId='queueItemsImportDialog' dojoType="dijit.Dialog" title="Import Items">
+    <div dojoType="dijit.layout.ContentPane">
+        <table class='form_table'>
+            <tbody>
+                <tr>
+                    <td>&vandelay.auto.import.merge_profile;</td>
+                    <td colspan='4'>
+                        <div jsId='vlUploadMergeProfile2' 
+                            dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
+                    </td>
+                </tr>
+                <tr>
+                    <td>&vandelay.auto.import.noncolliding;</td>
+                    <td colspan='4'>
+                        <input jsId='vlUploadQueueImportNoMatch2' dojoType='dijit.form.CheckBox'/>
+                    </td>
+                </tr>
+                <tr>
+                    <td>&vandelay.auto.import.auto_overlay_exact;</td>
+                    <td colspan='4'>
+                        <input jsId='vlUploadQueueAutoOverlayExact2' dojoType='dijit.form.CheckBox'/>
+                    </td>
+                </tr>
+                <tr>
+                    <td>&vandelay.auto.import.auto_overlay_1match;</td>
+                    <td colspan='4'>
+                        <input jsId='vlUploadQueueAutoOverlay1Match2' dojoType='dijit.form.CheckBox'/>
+                    </td>
+                </tr>
+                <tr>
+                    <td>&vandelay.auto.import.auto_overlay_best;</td>
+                    <td colspan='4'><input jsId='vlUploadQueueAutoOverlayBestMatch2' dojoType='dijit.form.CheckBox'/></td>
+                </tr>
+                <tr>
+                    <td>&vandelay.auto.import.auto_overlay_best_ratio;</td>
+                    <td colspan='4'>
+                        <input style='width:3em' value='0.0' jsId='vlUploadQueueAutoOverlayBestMatchRatio2' dojoType='dijit.form.TextBox'/>
+                        <span style='padding-left: 10px; font-size:90%'>(&vandelay.auto.import.auto_overlay_best_ratio.desc;)</span>
+                    </td>
+                </tr>
+                <tr>
+                    <td>&vandelay.auto.import.ft_merge_profile;</td>
+                    <td colspan='4'>
+                        <div jsId='vlUploadFtMergeProfile2' dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
+                    </td>
+                </tr>
+                <tr>
+                    <td>
+                        <button dojoType='dijit.form.Button' jsId='queueItemsImportCancelButton'>Cancel</button>
+                    </td>
+                    <td>
+                        <button dojoType='dijit.form.Button' jsId='queueItemsImportGoButton'>Import</button>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
+</div>
+
+
+
diff --git a/Open-ILS/src/templates/vandelay/inc/queueselect.tt2 b/Open-ILS/src/templates/vandelay/inc/queueselect.tt2
new file mode 100644 (file)
index 0000000..2149dfa
--- /dev/null
@@ -0,0 +1,25 @@
+<!-- Form for choosing which queue to view -->
+<h1>&vandelay.select.queue;</h1><br/>
+<table class='form_table'>
+    <tr>
+        <td>&vandelay.queue.type;</td>
+        <td>
+            <select jsId='vlQueueSelectType' dojoType='dijit.form.FilteringSelect' onchange='vlShowQueueSelect();'>
+                <option value='bib' selected='selected'>&vandelay.bib.records;</option>
+                <option value='auth'>&vandelay.auth.records;</option>
+            </select>
+        </td>
+    </tr>
+    <tr>
+        <td>&vandelay.queue;</td>
+        <td>
+            <select jsId='vlQueueSelectQueueList' dojoType='dijit.form.FilteringSelect'>
+            </select>
+        </td>
+    </tr>
+    <tr>
+        <td colspan='2'>
+            <button dojoType='dijit.form.Button' onclick='vlFetchQueueFromForm();'>&vandelay.retrieve.queue;</button>
+        </td>
+    </tr>
+</table>
diff --git a/Open-ILS/src/templates/vandelay/inc/toolbar.tt2 b/Open-ILS/src/templates/vandelay/inc/toolbar.tt2
new file mode 100644 (file)
index 0000000..144cd45
--- /dev/null
@@ -0,0 +1,16 @@
+<div dojoType="dijit.Toolbar" id='toolbar'>
+    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy" id='vl-menu-marc-export'
+        onclick="displayGlobalDiv('vl-marc-export-div');" showLabel="true">&vandelay.export.records;</div>
+    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-marc-upload'
+        onclick="displayGlobalDiv('vl-marc-upload-div');" showLabel="true">&vandelay.import.records;</div>
+    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-queue-select'
+        onclick="vlShowQueueSelect();" showLabel="true">&vandelay.inspect.queue;</div>
+    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-attr-editor'
+        onclick="vlShowAttrEditor();" showLabel="true">&vandelay.edit.attributes;</div>
+    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-profile-editor'
+        onclick="vlShowProfileEditor();" showLabel="true">&vandelay.edit.profiles;</div>
+    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-match-set-editor'
+        onclick="vlShowMatchSetEditor();" showLabel="true">&vandelay.edit.match_set;</div>
+    <div dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconCopy"  id='vl-menu-import-item-attr-editor'
+        onclick="vlShowImportItemAttrEditor();" showLabel="true">&vandelay.edit.import_item_attrs;</div>
+</div>
diff --git a/Open-ILS/src/templates/vandelay/inc/upload.tt2 b/Open-ILS/src/templates/vandelay/inc/upload.tt2
new file mode 100644 (file)
index 0000000..0c1bbd5
--- /dev/null
@@ -0,0 +1,103 @@
+<h1>&vandelay.marc.file.upload;</h1><br/>
+<form id="vl-marc-upload-form" enctype="multipart/form-data">
+    <input type='hidden' name='ses' id='vl-ses-input'/>
+    <table class='form_table'>
+        <tr>
+            <td>&vandelay.record.type;</td>
+            <td colspan='4'>
+                <select id='vl-record-type' dojoType='dijit.form.FilteringSelect' 
+                        jsId='vlUploadRecordType' onchange='vlShowUploadForm();'>
+                    <option value='bib' selected='selected'>&vandelay.bib.records;</option>
+                    <option value='auth'>&vandelay.auth.records;</option>
+                </select>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.create.upload.queue;</td>
+            <td>
+                <input type='text' dojoType='dijit.form.TextBox' id='vl-queue-name' size='32'></input>
+            </td>
+            <td>&vandelay.add.existing.queue;</td>
+            <td>
+                <select jsId='vlUploadQueueSelector' dojoType='dijit.form.FilteringSelect' required='false'>
+                </select>
+            </td>
+        </tr>
+        <tr>
+            <td>Record Match Set</td>
+            <td>
+                <input jsId='vlUploadQueueMatchSet'
+                    dojoType='dijit.form.FilteringSelect' labelAttr='name' searchAttr='name'/>
+            </td>
+        </tr>
+        <tr>
+            <td>Holdings Import Profile</td>
+            <td>
+                <input jsId='vlUploadQueueHoldingsImportProfile'
+                    dojoType='dijit.form.FilteringSelect' labelAttr='name' searchAttr='name'/>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.import.bib_sources;</td>
+            <td>
+                <select name='bib_source' jsId='vlUploadSourceSelector' 
+                    dojoType='dijit.form.FilteringSelect' labelAttr='source' searchAttr='source'/>
+            </td>
+        </tr>
+        <tr><td colspan='2' style='margin-top:10px;border-bottom:1px solid #888;border-top:2px solid #888'>
+            <b>&vandelay.import.actions;</b>
+        </td></tr>
+        <tr>
+            <td>&vandelay.auto.import.merge_profile;</td>
+            <td colspan='4'>
+                <div jsId='vlUploadMergeProfile' dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.auto.import.noncolliding;</td>
+            <td colspan='4'>
+                <input jsId='vlUploadQueueImportNoMatch' dojoType='dijit.form.CheckBox'/>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.auto.import.auto_overlay_exact;</td>
+            <td colspan='4'>
+                <input jsId='vlUploadQueueAutoOverlayExact' dojoType='dijit.form.CheckBox'/>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.auto.import.auto_overlay_1match;</td>
+            <td colspan='4'>
+                <input jsId='vlUploadQueueAutoOverlay1Match' dojoType='dijit.form.CheckBox'/>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.auto.import.auto_overlay_best;</td>
+            <td colspan='4'><input jsId='vlUploadQueueAutoOverlayBestMatch' dojoType='dijit.form.CheckBox'/></td>
+        </tr>
+        <tr>
+            <td>&vandelay.auto.import.auto_overlay_best_ratio;</td>
+            <td colspan='4'>
+                <input style='width:3em' value='0.0' jsId='vlUploadQueueAutoOverlayBestMatchRatio' dojoType='dijit.form.TextBox'/>
+                <span style='padding-left: 10px; font-size:90%'>(&vandelay.auto.import.auto_overlay_best_ratio.desc;)</span>
+            </td>
+        </tr>
+        <tr>
+            <td>&vandelay.auto.import.ft_merge_profile;</td>
+            <td colspan='4'>
+                <div jsId='vlUploadFtMergeProfile' dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
+            </td>
+        </tr>
+
+        <tr><td colspan='2' style='border-bottom:2px solid #888;'></td></tr>
+        <tr><td colspan='2' style='padding-bottom: 10px;'></td></tr>
+        <tr>
+            <td colspan='5'>
+                <span id="vl-file-label">&vandelay.file.to.upload;</span>
+                <input size='48' style='border:1px solid #888;' type="file" name="marc_upload"/>
+                <span style='margin-left:10px;'><button dojoType="dijit.form.Button" onclick="batchUpload()">&vandelay.upload;</button></span>
+            </td>
+        </tr>
+    </table>
+</form>
+
diff --git a/Open-ILS/src/templates/vandelay/vandelay.tt2 b/Open-ILS/src/templates/vandelay/vandelay.tt2
new file mode 100644 (file)
index 0000000..7aaac3f
--- /dev/null
@@ -0,0 +1,50 @@
+[% WRAPPER 'base.tt2' %]
+[% ctx.page_title = 'MARC Import/Export' %]
+[% ctx.dtd = '<!DOCTYPE html SYSTEM "'_ ctx.web_dir _'/opac/locale/' _ ctx.locale _ '/vandelay.dtd">' %]
+
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/vandelay/vandelay.js'> </script>
+<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/skin/[% ctx.skin %]/vandelay.css'/>
+<link rel='stylesheet' type='text/css' href='[% ctx.media_prefix %]/css/theme/[% ctx.skin %]/vandelay.css'/>
+
+<div dojoType="dijit.layout.ContentPane" layoutAlign='top' id="vl-nav-bar" style="visibility: hidden;">
+    [% INCLUDE 'vandelay/inc/toolbar.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client'>
+    [% INCLUDE 'vandelay/inc/progress.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-marc-export-div' class='hidden content'>
+    [% INCLUDE 'vandelay/inc/export.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-marc-upload-div' class='hidden content'>
+    [% INCLUDE 'vandelay/inc/upload.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-queue-div' class='hidden content'>
+    [% INCLUDE 'vandelay/inc/queue.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-match-div' class='hidden content'>
+    [% INCLUDE 'vandelay/inc/matches.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-marc-html-div' class='hidden content'>
+    [% INCLUDE 'vandelay/inc/marchtml.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-queue-select-div' class='hidden content'>
+    [% INCLUDE 'vandelay/inc/queueselect.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign="client"  id="vl-attr-editor-div" 
+        class='hidden attr-editor-detail-content-pane content' title='&vandelay.edit.attrs;'>
+    [% INCLUDE 'vandelay/inc/attrs.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-profile-editor-div' class='hidden content'>
+    [% INCLUDE 'vandelay/inc/profiles.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-match-set-editor-div' class='hidden content'>
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-item-attr-editor-div' class='hidden content'>
+    [% INCLUDE 'vandelay/inc/item_attrs.tt2' %]
+</div>
+<div dojoType="dijit.layout.ContentPane" layoutAlign='client' id='vl-import-error-div' class='hidden content'>
+    [% INCLUDE 'vandelay/inc/import_errors.tt2' %]
+</div>
+
+
+[% END %]