Changes

Jump to: navigation, search

Umlaut partial html API javascript helper

2,189 bytes added, 16:22, 19 June 2012
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. =WARNING: 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. Outdated Documentation!!!!=
'''THIS IS OUTDATED DOCUMENTATION''' See new Umlaut documentation at http://www.mlivegithub.com/forumsteam-umlaut/profileumlaut/wiki--------- THE CODE DOCUMENTED HERE IS DEPRECATED.ssf?nickname=mommygotbo5 mommy got boobsPLEASE SEE INSTEAD: [[JQuery HTML Updater]]http://wwwIf 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.mliveThis helper uses the [[Umlaut partial html API]], but does everything for you.com/forums/profile The helper will update your divs, and keep polling Umlaut for new results, continuing to re-update your divs until Umlaut is finished.ssf?nickname How often it polls is configured by application config 'poll_wait_seconds', which defaults to 4 seconds.  == Overview ==bouncingbo0 bouncing boobshttp://wwwYour page needs to include the JS Prototype library.mlive Currently, automatic inclusion of the Prototype library isn't working, so you'll need to include a <script> line to do so.com/forums/profileYou can link to the prototype library in Umlaut, see example below.ssf?nickname You will then include an Umlaut javascript file, and then call the embedUmlaut() js function it supplies. You'll need to pass some arguments to embedUmlaut:  === Umlaut base URL ===perfectboo5 perfect boobshttp://wwwThe first argument is your Umlaut base URL.mlive.comThis is not your link resolver base url which for Umlaut ends in /forumsresolve, but the actual Umlaut application base URL, which should be the same, without the /profileresolve.ssf?nickname (Link to JHU example removed, because i think it was attracting malicious bot/spider traffic) === Context object ===lanasbigbo5 lanas big boobshttp://wwwThe second argument is a URL-formatted (KEV) [[OpenURL]] context object.mlive.com/forums/profile.ssf?nickname === Display section mappings ===niceboobs nice boobshttpThe third argument is a javascript hash providing mappings from Umlaut html sections to HTML divs on your page. 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 ://wwwdivs key.mliveTo see the sections in a default Umlaut installation, see: AppConfig::Base.com/forums/profile.ssf?nickname=bigboobsal4 big boobs alertbg_update_map [http://wwwumlaut.mliverubyforge.comorg/forumssvn/profile.ssf?nickname=bigblackbo5 big black boobshttp:trunk/config/www.mlive.cominitializers/forumsumlaut/profileresolve_views.ssf?nickname=smallboobs small boobshttprb in resolve_views in svn]. The :divs key of the hash there is an array of hashes, each individual hash has a ://wwwdiv_id key that corresponds to the html_sections id in this api response.mliveFor Umlaut developers, the :partial key tells you what [[Rails]] partial is used to generate this section.com/forums/profile.ssf?nickname=perfectboo2 perfect boobshttp://wwwThis mapping hash can also optionally use some javascript callbacks to perform behavior after or during loading of a particular section.mliveIn 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.com/forums/profile.ssf?nickname === General options ===nakedboobs naked boobshttp://wwwThe fourth argument is a hash of additional options to embedUmlaut.mlive.com/forums/profile.ssf?nickname === Other Details ===lanasbigbo3 lanas big boobshttp://wwwThe umlaut_embed.mlivejs script will check if the javascript Prototype library is loaded into the host page, and load it if not.com/forums/profileAmong other things, this means you can use Prototype in your callbacks.ssf?nickname=teenboobs teen boobshttpThe html loaded will sometimes include a "spinner" with a message "loading more", if the content is not yet loaded.  An example is best://www.mlive.com/forums/profile.ssf?nickname=epicboobs epic boobs
== Example ==
<script type="text/javascript">
// You have to generate an OpenURL context object somehow, and set it in a js global var.
// Normally this would be generated dynamically, not static HTML like this, of course.
// You may want to include a rfr_id to identify your application as a source, demo below.
umlaut_openurl_kev_co = 'url_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft_id=info:doi/10.1002/jez.1401770202&rfr_id=info:sid/university.edu:myapplication&rft.genre=article&rft.jtitle=J.%20Exp.%20Zool&rft.date=1971&rft.atitle=Cytoplasmic%20control%20of%20nuclear%20behavior&rft.aulast=Masui';
// set global js var to tell script where to find umlaut
umlaut_base = 'http://umlaut.university.edu';
umlaut_section_map = {
'fulltext_wrapperfulltext': 'my_fulltext',
'highlighted_links': 'my_see_also',
'excerpts_wrapperexcerpts': 'my_excerpts',
'cover_image': 'my_cover',
'search_inside_wrappersearch_inside': {'host_div_id': 'my_search_inside',
'after_update':
function(count) {
}
}
};
 
//global embedUmlaut options
//demonstrate putting up an alert when Umlaut is done loading all content, which you
//wouldn't want to do, but anyway.
umlaut_options = {
'all-complete-callback': function() { alert('All done!'); }
};
</script>
 
<!-- include the prototype library -->
<script type="text/javascript" src="http://umlaut.university.edu/javascripts/prototype.js"></script>
 
<!-- now actually load the umlaut js helper, which will do the magic for you -->
<script type="text/javascript" src="http://umlaut.university.edu/javascripts/embed/umlaut-embed-func.js"></script>  <!-- and call embedUmlaut --> <script type="text/javascript"> embedUmlaut(umlaut_base, umlaut_openurl_kev_co, umlaut_section_map, umlaut_options); </script> 

Navigation menu