As of 2011-05-01, the Template::Toolkit OPAC is currently under development, with two major goals:
(Short term): Provide a more functional replacement for the current "Basic catalogue aka SlimPAC"
(Longer term): Provide a replacement for the Ajax-heavy catalogue that has been the primary catalogue of Evergreen since 1.0.
This document is an attempt to summarize the pieces needed to achieve each of these goals. Note that subtasks of Replace the main catalogue may be completed before all of Replace the SlimPAC as the basic catalogue is complete, depending on development focus.
Replace the SlimPAC as the basic catalogue
The goal here is to ensure that the TT OPAC meets all of the requirements that the current SlimPAC offers:
Complete the process of removing all KCLS references from the skin
Hide any non-functional stubs
Display asset.uri links on record details page
Display copy summaries / asset.uris on search results page
Update "Basic Catalogue" links to point to the TT OPAC instead
Expose support for locales
OpenSearch
Links to RSS/Atom feeds
Replace the main catalogue
Expose support for multiple skins
Add account preference functionality - mostly there but seem to be missing:
Provide access to complete set of search indexes
Display serials holdings
Conifer session notes
Bill Erickson's notes on TT OPAC facets
Add facets
berick: Configurable top-level facet groups to collapse, for example, "Personal Author" and "Other Author" into "Author", etc.
berick: groups could be configured as easily-overridable template variables
berick: note also the templates already have access to the facet data on the results page (though the data may need rearranging)
-
Dan's plane-based brainstorming
Since the brainstorming and the Conifer-hosted TT OPAC dev session, I've updated with notes on branches we pushed for the various enhancements that we made. The complete set of changes is available, integrated with master, in user/dbs/template-toolkit-integration-on-master.
Switch to in-database unapi-based fetch
-
NOTE berick has warned that the in-db unapi calls result in a performance hit that could be significant to a high-traffic site, and requested that display of copy summaries / URIs be made configurable as a consequence. This opens a bigger discussion about can we make in-db unapi perform better, particularly for pathological numbers of volumes/copies on a bib record, as well as why we're bothering to force the database to marshal all of this relational data into an XML format that then gets serialized in JSON, deserialized from JSON back into native values on the client, before we parse the XML again just to get a list of volumes, copies, and URIs that are applicable to a given scope…
Academic skin
Templates with more detailed info
Plan: rather than painstakingly define all of the elements that we want via XPath inside TT2 files, we'll add a display_field column to config.metabib_field and use the definitions there (single sourcing, yay)
RefWorks export (single item, or search results list)
Resolver integration - Ajax or inline?
Added content integration - Ajax or inline?
Better Zotero integration via RIS (hack unapi formats listing?)
dbs did hack OpenILS::WWW::SuperCat rather horrendously to prevent MODS from being offered up by unAPI, and the results were better (leading articles preserved in citations, yay!) but something less drastic is required
Add a search builder (granular search indexes, boolean connectors, phrase)
Markup cleanup
Instead of setting class="hide_me" for empty table rows, don't create the table rows in the first place
Move style attribute
CSS into stylesheet (inline) - see default/opac/parts/result/table.tt2
Less tables, more paragraphs, divs, and spans?
Death to icons with text (or a better solution for generating them and using them in multilingual catalogues)
Document process for applying standard branding elements
Semantic HTML5 Is Terrific!
Ensure <title> is meaningful and distinct
Inline microdata / RDFa
Direct links to MARCXML source, MODS, Dublin Core, etc instead of only relying on unAPI dance?
Add x-webkit-speech
attribute for speech input
Security hygiene: Move templates out of web-served directory /openils/var/web/templates and into /openils/var/templates
Accessibility testing
Browser testing