page.html 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>{% block title %}Jupyter Server{% endblock %}</title>
  6. {% block favicon %}<link id="favicon" rel="shortcut icon" type="image/x-icon" href="{{ static_url("favicon.ico") }}">
  7. {% endblock %}
  8. <link rel="stylesheet" href="{{static_url("style/bootstrap.min.css") }}" />
  9. <link rel="stylesheet" href="{{static_url("style/bootstrap-theme.min.css") }}" />
  10. <link rel="stylesheet" href="{{static_url("style/index.css") }}" />
  11. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  12. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  13. {% block stylesheet %}
  14. {% endblock stylesheet %}
  15. {% block meta %}
  16. {% endblock meta %}
  17. </head>
  18. <body class="{% block bodyclasses %}{% endblock %}" {% block params %} {% if logged_in and token %}
  19. data-jupyter-api-token="{{token | urlencode}}" {% endif %} {% endblock params %} dir="ltr">
  20. <noscript>
  21. <div id='noscript'>
  22. {% trans %}Jupyter Server requires JavaScript.{% endtrans %}<br>
  23. {% trans %}Please enable it to proceed. {% endtrans %}
  24. </div>
  25. </noscript>
  26. <div id="header" role="navigation" aria-label="{% trans %}Top Menu{% endtrans %}">
  27. <div id="header-container" class="container">
  28. <div id="jupyter_server" class="nav navbar-brand"><a href="{{default_url}}" title='{% trans %}dashboard{% endtrans %}'>
  29. {% block logo %}<img src='{{static_url("logo/logo.png") }}' alt='Jupyter Server' />{% endblock %}
  30. </a></div>
  31. {% block headercontainer %}
  32. {% endblock headercontainer %}
  33. {% block header_buttons %}
  34. {% endblock header_buttons %}
  35. </div>
  36. <div class="header-bar"></div>
  37. {% block header %}
  38. {% endblock header %}
  39. </div>
  40. <div id="site">
  41. {% block site %}
  42. {% endblock site %}
  43. </div>
  44. {% block after_site %}
  45. {% endblock after_site %}
  46. {% block script %}
  47. {% endblock script %}
  48. <script type='text/javascript'>
  49. function _remove_token_from_url() {
  50. if (window.location.search.length <= 1) {
  51. return;
  52. }
  53. var search_parameters = window.location.search.slice(1).split('&');
  54. for (var i = 0; i < search_parameters.length; i++) {
  55. if (search_parameters[i].split('=')[0] === 'token') {
  56. // remote token from search parameters
  57. search_parameters.splice(i, 1);
  58. var new_search = '';
  59. if (search_parameters.length) {
  60. new_search = '?' + search_parameters.join('&');
  61. }
  62. var new_url = window.location.origin +
  63. window.location.pathname +
  64. new_search +
  65. window.location.hash;
  66. window.history.replaceState({}, "", new_url);
  67. return;
  68. }
  69. }
  70. }
  71. _remove_token_from_url();
  72. </script>
  73. </body>
  74. </html>