I will post a patch for the next/previous functionality as soon as
possible (probably Thursday or Friday).
For the automatic search suggestions, we used jQuery with an autofill
plugin to make development easier and because we are more familiar with
jQuery. This could be converted to use another library if needed. The
architecture for this is fairly robust. We added a SearchSuggestions
class which has messages for getting common search suggestions, spelling
suggestions, or both. Additional forms of suggestions could be easily
added. I will post our patch for this Thursday or Friday as well.
On 6/2/2010 6:55 AM, Demian Katz wrote:
> Thanks for updating the tickets -- regarding the next/previous
> functionality, it sounds like our solutions are similar enough that I
> might as well wait for you to post your patch. I might end up making
> some minor modifications based on my original ideas if it seems
> beneficial (i.e. to simplify URLs or allow more configurability), but
> I'll wait and see exactly what you come up with first!
> Regarding your automatic search suggestions, feel free to attach a
> patch to VUFIND-275 now that the ticket exists. What sort of
> concerns about adding this kind of functionality are that I would
> prefer not to add a second JS library on top of YUI if it can be
> would like the suggestion capabilities to be modular so that users can
> plug in separate recommendation generators without having to rebuild
> the whole infrastructure to make the suggestions appear. Of course,
> even if your implementation doesn't align with my preferences for
> inclusion in the trunk, there's nothing stopping you from posting a
> patch to JIRA so others can use it right away.
> - Demian
> *From:* Mark Noble [mailto:mnoble@...]
> *Sent:* Wednesday, June 02, 2010 12:59 AM
> *To:* Demian Katz
> *Cc:* vufind-general@...
> *Subject:* Re: [VuFind-General] Marmot Libraries VuFind Implementation
> Thanks Demian,
> It's been a lot of very fun work. VuFind is a great platform to build
> I updated the wiki with a direct link to the opac as well as adding
> some of the other fields. I have also updated the two Jira tickets you
> referenced. Hopefully I included the right amount of information and
> didn't go into too much of the boring stuff. I think we have at least
> an initial implementation for each of these issues as long as the code
> can be made more generic as needed.
> I'm working now on merging with trunk and hope to be done in the next
> day or two. I will definitely let you know if I have questions! I'm
> currently showing that about half the files have changed since we
> branched from the trunk so there is a lot to go through.
> After I get merged back in, we would be happy to build some patches
> for you for the features we have added if they would be of use to the
> entire community.
> - Mark
> On 6/1/2010 12:55 PM, Demian Katz wrote:
> Thanks for the update -- it sounds like you have done a lot of
> interesting work!
> A few comments:
> 1.) I see you've been added to the installation status page
> (http://vufind.org/wiki/installation_status), but without an obvious
> link to opac.marmot.org -- it might be worth adding a link there so
> it's easier to locate your VuFind!
> 2.) Thanks for your offer to help incorporate new features into the
> trunk -- it sounds like you have much to offer! One starting point
> (if you have the time) might be to read and comment on the JIRA issue
> devoted to consortial support
> (http://vufind.org/jira/browse/VUFIND-180). I'd really like to see
> better native support for consortia in the trunk, but it's such a
> complex issue that it's hard to know where to start -- it sounds like
> your experience could be valuable in helping move the process along.
> For smaller, more stand-alone features, feel free to either share
> patches via JIRA or email me directly to work on moving them into the
> trunk -- I'm happy to work with you in whatever way is most convenient!
> 3.) I was actually just about to start work on the "next/previous
> links" feature. I have just written down my planned implementation
> details in the JIRA comment at
> If possible, please take a look at this and let me know if you were
> thinking along the same lines. If this sounds good to you and you
> haven't already done the work on your end, I can go ahead and
> implement it so you can simply merge it in from the trunk. If you had
> a different design in mind or have already written some code, please
> let me know -- I would like to avoid duplicated effort if possible,
> and this might be a good starting point for collaboration.
> 4.) Please feel free to email me if you run into any trouble merging
> the latest trunk or have any questions/comments on recent design
> decisions. Since I've been doing most of the day-to-day trunk coding
> on my own for the past few months, feedback from other developers is
> always appreciated.
> *From:* Mark Noble [mailto:mnoble@...]
> *Sent:* Tuesday, June 01, 2010 1:12 PM
> *To:* vufind-general@...
> *Subject:* [VuFind-General] Marmot Libraries VuFind Implementation
> We have been working on a VuFind implementation for the Marmot Library
> Network for nearly 3 months now and would like to give a progress
> report on what we have achieved.
> First, a little background on the Marmot Library Network though. The
> Marmot Library Network serves a consortium of academic, public, and
> school libraries in Western Colorado. Because so many different types
> of libraries are served, we have had to constantly consider the needs
> of each type of library and the unique needs of their patrons.
> The VuFind implementation project team consists of Keith Dedman --
> product owner, C.J. O'Hara -- developer and designer, Mark Noble -
> developer and Scrum Master, Jimmy Thomas -- project sponsor. The team
> works in 2-3 week sprints which consist of planning, implementation,
> and demonstration of new functionality. At the end of each sprint new
> code is deployed to the production server at http://opac.marmot.org
> The current production site was developed with code forked from the
> post RC2 trunk. We will be merging with the current trunk during the
> current sprint which ends June 4^th .
> Some of the customization features which have been added and are
> available on the production server include:
> Complete integration with Millennium 2009A including:
> Patron Login
> Hold integration
> View active holds
> Place Holds
> Cancel Holds
> Change Pickup Location
> Freeze Holds
> Checked Out items
> View currently checked out items
> Renew items
> Modification of Personal Information
> Modification of the OPAC based on library systemEach of the 18 library
> systems has been given it's own sub-domain which allows us to change
> the images, facets, colors, etc. dynamically based on the library
> system in use. The full list of sub-domains is:
> http://adams.opac.marmot.org <http://adams.opac.marmot.org/> -- Adams
> State College
> http://aspen.opac.marmot.org <http://aspen.opac.marmot.org/> -- Aspen
> School District
> http://basalt.opac.marmot.org <http://basalt.opac.marmot.org/> --
> Basalt Regional Library District
> http://cmc.opac.marmot.org <http://cmc.opac.marmot.org/> -- Colorado
> Mountain College
> http://evld.opac.marmot.org <http://evld.opac.marmot.org/> -- Eagle
> Valley Library District
> http://garfield.opac.marmot.org <http://garfield.opac.marmot.org/> --
> Garfield Public Library
> http://gcld.opac.marmot.org <http://gcld.opac.marmot.org/> -- Grand
> County Library District
> http://gcpl.opac.marmot.org <http://gcpl.opac.marmot.org/> -- Gunnison
> County Library District
> http://mesa.opac.marmot.org <http://mesa.opac.marmot.org/> -- Mesa
> County Libraries
> http://mesast.opac.marmot.org <http://mesast.opac.marmot.org/> -- Mesa
> State College
> http://mvsd.opac.marmot.org <http://mvsd.marmot.org/> -- Mesa Valley
> School District
> http://pitkin.opac.marmot.org <http://pitkin.opac.marmot.org/> --
> Pitkin County Library
> http://plateau.opac.marmot.org <http://plateau.opac.marmot.org/> --
> Plateau Valley School
> http://steam.opac.marmot.org <http://steam.opac.marmot.org/> --
> Steamboat Springs Community Libraries
> http://summit.opac.marmot.org <http://summit.opac.marmot.org/> --
> Summit County Public Library
> http://vail.opac.marmot.org <http://vail.opac.marmot.org/> -- Town of
> Vail Public Library
> http://west.opac.marmot.org <http://west.opac.marmot.org/> -- Western
> State College Library
> http://wilkinson.opac.marmot.org <http://wilkinson.opac.marmot.org/>
> -- Wilkinson Public Library
> Each system can currently customize the following features:
> Logos for home page and internal pages
> Colors - currently just the home page colors in practice, but a full
> css file is included so anything can be customized eventually.
> Facets -- see evld subdomain for an example where the facets have been
> refined to include only minimal faceting.
> Whether or not holdings are filtered to only include holdings from the
> library system. See aspen or mvsd for an example.
> Whether or not patrons can place holds. If not, the Request This Item
> link is not shown. This is especially useful for school districts that
> do not allow their students to place holds without librarian assistance.
> Whether or not patrons can login to the system. Again this will be
> used primarily by school districts.
> The information available in the OPAC and what patrons can do within
> the interface including can be enabled or disabled:
> showing and linking to Amazon
> showing standard reviews from Content Cafe and/or Syndetics
> text this functionality
> email this functionality
> user comments
> user tagging
> user favorites lists
> ILL Links -- each library can optionally specify a link to a ILL page
> on their main site
> Ask a Librarian Link -- each library can override the default Ask a
> Librarian link
> Filtering of pickup locations -- Pickup locations can be filtered so
> that only locations in the same system are shown.
> Modification of the OPAC for specific branches. The IP addresses of
> each branch have been entered into the VuFind database and when we
> detect that the OPAC is being used within a physical branch, we can do
> additional customization for the branch. To simplify testing of this
> functionality we added an optional marmot_ip parameter which allows
> the browser IP address to be overridden. The following items can be
> customized per branch.
> Whether or not the location can be used as a pickup branch for holds
> Whether or not the user will be shown only items within the branch
> when searching the OPAC and viewing holdings.
> Filtering to hide "bad words". A list of objectionable words have been
> included in the database and user entered data can be filtered to
> avoid showing the objectionable words top patrons. Comments, tags,
> lists, and searches can be filtered. Depending on library settings,
> information with "bad words" can be either completely hidden or masked
> with stars.
> Converted Full Record View from tabbed view to displaying all
> information on a single page. We felt this would be better for user
> experience since all pertinent information was displayed immediately.
> Holdings Refinement -- We have reordered the holdings list and divided
> them into 4 possible sections depending on information about the
> patron as well as whether or not the patron is in a branch. The 4
> sections are:
> It's here -- if the patron is in a branch, any items physically in the
> library show in the It's Here section with the call number where they
> can go find the book. Patrons are not given hold links to items where
> they are since it is more efficient to go get the book.
> Your Library -- if the patron is logged in or has a cookie set for
> their home branch, this section will show any holdings for their home
> Nearby Libraries -- the user can set 2 different branches that are
> close to them or that they enjoy going to. The system provides
> sensible defaults based on geographic location.
> Locations You Can Request From -- shows all other locations that own
> the item with the call number and status for the item.
> We have also revised the holdings list so that each item is shown in a
> single line to conserve space.
> Holdings Summary -- In addition to showing the list of holdings as
> described above at the bottom of each full record page, we also show a
> summary of the holdings at the top of the page and in the search
> results. If the item is available at the physical location where the
> user is, they will be shown It's here with the call number where they
> can find the item. If the item is available at the patron's home
> branch or one of their nearby locations, they will be shown where it
> is located as well as a link to place a hold on the item. If the item
> is available at another location, they are shown a message that the
> title is Available by Request with a link to request the item. If all
> copies are checked out, the title will be shown as Checked Out and the
> patron can place a hold. If no copies of the title are available, the
> Title will be shown as Unavailable.
> Format Category links -- At the top of the search results, the user is
> presented with a set of icons so they can easily narrow their search
> to specific formats including books, video, audio, electronic
> resources, etc.
> Content Cafe review integration -- In addition to the Amazon and
> Syndetics review types that come with the standard VuFind
> distribution, we added integration of Content Cafe reviews for
> evaluation purposes.
> Repeat search -- The user can repeat a search in the Prospector
> catalog (additional options to be provided later).
> In addition to the functionality described above which is currently on
> the production server, the following functionality is currently being
> developed and will be available on the production server at the end of
> the current sprint.
> Series data -- This functionality utilizes NoveList Series information
> to present a list of all titles in a series in a scrollable window
> similar to suggested items on Amazon.
> Similar Authors -- This also uses NoveList to present authors similar
> to the author of a title or the author being displayed while viewing
> an Author.
> Similar Titles -- Uses NoveList to get other titles that patrons may
> enjoy which are similar to the selected title.
> 5 star rating system -- Allows patrons to rate titles and view ratings
> from other patrons. Average ratings from all users are displayed as
> well as the rating the user has given the title if any. Summary
> information for all ratings is also displayed on full record views.
> Automatic Search Suggestions -- When the user types in the search box,
> we query the Solr Statistics database for similar searches to what the
> user has typed so far and present these searches to the user. The
> similar search list is augmented with spelling suggestions for words
> that sound like or start with the information which has been typed so
> Next/Previous Links -- When a user opens a title from the search
> results, they can navigate between records in the search results using
> next/previous links without having to go back to the search results.
> While some of this work is specific to our needs and situation, we do
> feel that much of it can be made generic to serve a wider audience.
> With that in mind, we would be happy to incorporate any of these
> changes into the VuFind trunk or work with other libraries to help
> incorporate any of these changes into their customized versions of
> Mark Noble