Changes

Jump to: navigation, search

Umlaut partial html API javascript helper

12 bytes added, 15:37, 25 February 2009
no edit summary
If you want to include [[Umlaut]]-generated HTML directly on a third party page via javascript, there is a javascript helper script to make that very easy. This helper uses the [[Umlaut partial html API]], but does everything for you. The helper will update your divs, and keep polling Umlaut for new results, continuing to re-update your divs until Umlaut is finished. How often it polls is configured by application config 'poll_wait_seconds', which defaults to 4 seconds.
== Overview ==
You need to specify your Umlaut base URL in a global javascript variable called umlaut_base. This is not your link resolver base url which for Umlaut ends in /resolve, but the actual Umlaut application base URL, which should be the same, without the /resolve. (Link to JHU example removed, because i think it was attracting malicious bot/spider traffic)
You also need to put a URL-formatted (KEV) [[OpenURL ]] context object in a global js variable called umlaut_openurl_kev_co.
You then specify mappings from Umlaut html sections to HTML divs on your page in global js variable called umlaut_section_map containing a hash. Umlaut html sections are configured in Umlaut in the "partial_html_map" configuration param, which by default is set to the "bg_update_map" config params :divs key. To see the sections in a default Umlaut installation, see: [http://umlaut.rubyforge.org/svn/trunk/config/environment.rb environment.rb in svn], look for bg_update_map. The :divs key of the hash there is an array of hashes, each individual hash has a :div_id key that corresponds to the html_sections id in this api response. For Umlaut developers, the :partial key tells you what [[Rails ]] partial is used to generate this section.
You can also optionally use some javascript callbacks to perform behavior after or during loading. In the following example, we'll demo using a javascript callback to only show a div for search_inside functionality if there are search_inside tools provided.

Navigation menu