/templates/visualization/display.mako

https://bitbucket.org/cistrome/cistrome-harvard/ · Mako · 105 lines · 83 code · 16 blank · 6 comment · 6 complexity · f15209340e82b3e01999e32fff53dd0a MD5 · raw file

  1. <%inherit file="/display_base.mako"/>
  2. <%def name="javascripts()">
  3. <% config = item_data %>
  4. ${parent.javascripts()}
  5. <!--[if lt IE 9]>
  6. <script type='text/javascript' src="${h.url_for('/static/scripts/excanvas.js')}"></script>
  7. <![endif]-->
  8. ${h.js( "jquery.event.drag", "jquery.autocomplete", "jquery.mousewheel", "jquery.autocomplete", "trackster", "trackster_ui", "jquery.ui.sortable.slider", "jquery.scrollTo", "farbtastic" )}
  9. </%def>
  10. <%def name="stylesheets()">
  11. ${parent.stylesheets()}
  12. ## For page:
  13. <style type="text/css">
  14. .page-body {
  15. padding: 0px;
  16. }
  17. </style>
  18. ## For visualization (TODO: copied from browser.mako):
  19. ${h.css( "trackster", "overcast/jquery-ui-1.8.5.custom" )}
  20. <style type="text/css">
  21. #browser-container {
  22. overflow: none;
  23. }
  24. .nav-container {
  25. width: 100%;
  26. ## Overriding styles from trackster.css to push nav up into title bar
  27. height: 0;
  28. text-align: center;
  29. }
  30. .nav {
  31. ## Overriding styles from trackster.css to push nav up into title bar
  32. position: relative;
  33. display: inline-block;
  34. top: -2em;
  35. background: transparent;
  36. border: none;
  37. }
  38. </style>
  39. </%def>
  40. <%def name="render_item_header( item )">
  41. ## Don't need to show header
  42. </%def>
  43. <%def name="render_item_links( visualization )">
  44. <a
  45. href="${h.url_for( controller='/visualization', action='imp', id=trans.security.encode_id( visualization.id ) )}"
  46. class="icon-button import"
  47. ## Needed to overwide initial width so that link is floated left appropriately.
  48. style="width: 100%"
  49. title="Import visualization">Import visualization</a>
  50. </%def>
  51. <%def name="render_item( visualization, config )">
  52. <div id="${trans.security.encode_id( visualization.id )}" class="unified-panel-body" style="overflow:none;top:0px;"></div>
  53. <script type="text/javascript">
  54. // TODO: much of this code is copied from browser.mako -- create shared base and use in both places.
  55. //
  56. // Place URLs here so that url_for can be used to generate them.
  57. //
  58. var default_data_url = "${h.url_for( controller='/tracks', action='data' )}",
  59. raw_data_url = "${h.url_for( controller='/tracks', action='raw_data' )}",
  60. run_tool_url = "${h.url_for( controller='/tracks', action='run_tool' )}",
  61. rerun_tool_url = "${h.url_for( controller='/tracks', action='rerun_tool' )}",
  62. reference_url = "${h.url_for( controller='/tracks', action='reference' )}",
  63. chrom_url = "${h.url_for( controller='/tracks', action='chroms' )}",
  64. dataset_state_url = "${h.url_for( controller='/tracks', action='dataset_state' )}",
  65. converted_datasets_state_url = "${h.url_for( controller='/tracks', action='converted_datasets_state' )}",
  66. addable_track_types = { "LineTrack": LineTrack, "FeatureTrack": FeatureTrack, "ReadTrack": ReadTrack },
  67. view,
  68. container_element = $("#${trans.security.encode_id( visualization.id )}");
  69. $(function() {
  70. if (container_element.parents(".item-content").length > 0) { // Embedded viz
  71. container_element.parents(".item-content").css( { "max-height": "none", "overflow": "visible" } );
  72. } else { // Viewing just one shared viz
  73. $("#right-border").click(function() { view.resize_window(); });
  74. }
  75. // Create visualization.
  76. var callback;
  77. %if 'viewport' in config:
  78. var callback = function() { view.change_chrom( '${config['viewport']['chrom']}', ${config['viewport']['start']}, ${config['viewport']['end']} ); }
  79. %endif
  80. view = create_visualization( container_element, "${config.get('title') | h}",
  81. "${config.get('vis_id')}", "${config.get('dbkey')}", callback,
  82. JSON.parse('${ h.to_json_string( config.get('tracks') ) }'),
  83. JSON.parse('${ h.to_json_string( config.get('bookmarks') ) }')
  84. );
  85. // Set up keyboard navigation.
  86. init_keyboard_nav(view);
  87. });
  88. </script>
  89. </%def>