====== Template::Toolkit OPAC Development List ====== As of 2011-05-01, the [[dev:opac:template-toolkit|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 * Defaults to 5 volumes with unlimited copies per volume. Note that even though only a fraction of volumes are shown, in-db unapi is pathologically slow for records with 1000s of volumes / copies. -- //is this still true? dbs// * 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: * Notification preferences * Default search Location * Default search range * Font preferences (but do we really want to enable this, vs. just letting users use the standard browser font controls?) * Provide access to complete set of search indexes * Display serials holdings ===== Conifer session notes ===== Bill's TT OPAC server: http://dev198.esilibrary.com/eg/opac/home Backend logic in /usr/local/share/perl/OpenILS/WWW/EGCatLoader/* ==== 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 * miker: note, this can be done by configuring the facets in a less granular way, and not having individual search fields double as facet fields * berick: note also the templates already have access to the facet data on the results page (though the data may need rearranging) * berick: See final page of [[http://dev198.esilibrary.com/~berick/KCLS_review_2.pdf | a few KCLS enhancements]] for example pre-expanded facet display. ==== 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 [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/template-toolkit-integration-on-master|user/dbs/template-toolkit-integration-on-master]]. * Switch to in-database unapi-based fetch * **Done** for search results in [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/ttopac-display-uris-and-cps|user/dbs/ttopac-display-uris-and-cps]] * **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) * berick provided a [[http://git.evergreen-ils.org/?p=Evergreen.git;a=commit;h=a30820353694707a2096663a4b2b86fa9c2db4da|config.metabib_field editor]] (committed to master) * dbs provided the [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=commit;h=c596ba7f65b172b4b940345b556cfea4146131d9|database alteration bits]] (in the [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/ttopac-metabib-display-field|user/dbs/ttopac-metabib-display-field branch]]) * RefWorks export (single item, or search results list) * **Done** Single item export via [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/ttopac-refworks|user/dbs/ttopac-refworks]] - includes a config.tt2 file for consolidation of skin configuration options * **Todo** Add search results / list export options * Resolver integration - Ajax or inline? * **Done** - Art Rhyno contributed a working version for the Conifer repository [[http://git.evergreen-ils.org/?p=contrib/Conifer.git;a=shortlog;h=refs/heads/feature/ttopac-sfx-resolver|feature/ttopac-sfx-resolver]] * **Todo** - Factor out into base functionality for TT OPAC, use config.tt2 to control SFX URL and enable/disable * **Done** - Dan Scott refactored this into a configurable feature in the Evergreen working repository: [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/ttopac-sfx-integration|user/dbs/ttopac-sfx-integration]] * (Aside: the answer is //inline//, performance seems to be pretty acceptable for now) * 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 * **Done** in [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/ttopac-kill-dont-hide|user/dbs/ttopac-kill-dont-hide]] * 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 * What CSS files to touch for official colours * imagemagick command line for processing images * Where to edit text to name your institution * Semantic HTML5 Is Terrific! * Ensure is meaningful and distinct * **Done** - basic search results and record details in [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/ttopac-titles|user/dbs/ttopac-titles]] * **Todo** - advanced search results * 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 * **Done** in [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/ttopac-speech-input|user/dbs/ttopac-speech-input]] * Security hygiene: Move templates out of web-served directory /openils/var/web/templates and into /openils/var/templates * **Done** in [[http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/dbs/ttopac-move-templates|user/dbs/ttopac-move-templates]] * Accessibility testing * Browser testing * Firefox 4 / 5 * Chromium / Chrome * Internet Explorer 7 / 8 / 9 * Safari whatever * Opera * lynx / w3m * lynx: be sure REFERER_WITH_QUERY is set to SEND in your lynx.cfg; several of the ttopac pages rely on being able to redirect you to a previous Referer: page * Android (Gingerbread) * Android (Honeycomb 3.1) * Apple stuff? * Windows Phone stuff?