index.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="viewport" content="width=device-width"/><meta name="theme-color" content="#000"/><title>[[.AppTitle]]</title><base href="[[.AppSubUrl]]/"/><link rel="preload" href="[[.ContentDeliveryURL]]public/fonts/roboto/RxZJdnzeo3R5zSexge8UUVtXRa8TVwTICgirnJhmVJw.woff2" as="font" crossorigin/><link rel="icon" type="image/png" href="[[.FavIcon]]"/><link rel="apple-touch-icon" sizes="180x180" href="[[.AppleTouchIcon]]"/><link rel="mask-icon" href="[[.ContentDeliveryURL]]public/img/grafana_mask_icon.svg" color="#F05A28"/>[[ if eq .Theme "light" ]]<link rel="stylesheet" href="[[.ContentDeliveryURL]]public/build/grafana.light.974ddb06f8133af58758.css"/>[[ else ]]<link rel="stylesheet" href="[[.ContentDeliveryURL]]public/build/grafana.dark.4abbc783977ac5086f80.css"/>[[ end ]]<script nonce="[[.Nonce]]">performance.mark('frontend_boot_css_time_seconds');</script><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black"/><meta name="msapplication-TileColor" content="#2b5797"/><meta name="msapplication-config" content="public/img/browserconfig.xml"/></head><body class="theme-[[ .Theme ]] [[.AppNameBodyClass]]"><style>.preloader {
  2. height: 100%;
  3. flex-direction: column;
  4. display: flex;
  5. justify-content: center;
  6. align-items: center;
  7. }
  8. .preloader__enter {
  9. opacity: 0;
  10. animation-name: preloader-fade-in;
  11. animation-iteration-count: 1;
  12. animation-duration: 0.9s;
  13. animation-delay: 1.35s;
  14. animation-fill-mode: forwards;
  15. }
  16. .preloader__bounce {
  17. text-align: center;
  18. animation-name: preloader-bounce;
  19. animation-duration: 0.9s;
  20. animation-iteration-count: infinite;
  21. }
  22. .preloader__logo {
  23. display: inline-block;
  24. animation-name: preloader-squash;
  25. animation-duration: 0.9s;
  26. animation-iteration-count: infinite;
  27. width: 60px;
  28. height: 60px;
  29. background-repeat: no-repeat;
  30. background-size: contain;
  31. background-image: url('[[.LoadingLogo]]');
  32. }
  33. .preloader__text {
  34. margin-top: 16px;
  35. font-weight: 500;
  36. font-size: 14px;
  37. font-family: Sans-serif;
  38. opacity: 0;
  39. animation-name: preloader-fade-in;
  40. animation-duration: 0.9s;
  41. animation-delay: 1.8s;
  42. animation-fill-mode: forwards;
  43. }
  44. .theme-light .preloader__text {
  45. color: #52545c;
  46. }
  47. .theme-dark .preloader__text {
  48. color: #d8d9da;
  49. }
  50. @keyframes preloader-fade-in {
  51. 0% {
  52. opacity: 0;
  53. /*animation-timing-function: linear;*/
  54. animation-timing-function: cubic-bezier(0, 0, 0.5, 1);
  55. }
  56. 100% {
  57. opacity: 1;
  58. }
  59. }
  60. @keyframes preloader-bounce {
  61. from,
  62. to {
  63. transform: translateY(0px);
  64. animation-timing-function: cubic-bezier(0.3, 0, 0.1, 1);
  65. }
  66. 50% {
  67. transform: translateY(-50px);
  68. animation-timing-function: cubic-bezier(0.9, 0, 0.7, 1);
  69. }
  70. }
  71. @keyframes preloader-squash {
  72. 0% {
  73. transform: scaleX(1.3) scaleY(0.8);
  74. animation-timing-function: cubic-bezier(0.3, 0, 0.1, 1);
  75. transform-origin: bottom center;
  76. }
  77. 15% {
  78. transform: scaleX(0.75) scaleY(1.25);
  79. animation-timing-function: cubic-bezier(0, 0, 0.7, 0.75);
  80. transform-origin: bottom center;
  81. }
  82. 55% {
  83. transform: scaleX(1.05) scaleY(0.95);
  84. animation-timing-function: cubic-bezier(0.9, 0, 1, 1);
  85. transform-origin: top center;
  86. }
  87. 95% {
  88. transform: scaleX(0.75) scaleY(1.25);
  89. animation-timing-function: cubic-bezier(0, 0, 0, 1);
  90. transform-origin: bottom center;
  91. }
  92. 100% {
  93. transform: scaleX(1.3) scaleY(0.8);
  94. transform-origin: bottom center;
  95. animation-timing-function: cubic-bezier(0, 0, 0.7, 1);
  96. }
  97. }
  98. /* Fail info */
  99. .preloader__text--fail {
  100. display: none;
  101. }
  102. /* stop logo animation */
  103. .preloader--done .preloader__bounce,
  104. .preloader--done .preloader__logo {
  105. animation-name: none;
  106. display: none;
  107. }
  108. .preloader--done .preloader__logo,
  109. .preloader--done .preloader__text {
  110. display: none;
  111. color: #ff5705 !important;
  112. font-size: 15px;
  113. }
  114. .preloader--done .preloader__text--fail {
  115. display: block;
  116. }
  117. [ng\:cloak],
  118. [ng-cloak],
  119. .ng-cloak {
  120. display: none !important;
  121. }</style><div class="preloader"><div class="preloader__enter"><div class="preloader__bounce"><div class="preloader__logo"></div></div></div><div class="preloader__text">Loading Grafana</div><div class="preloader__text preloader__text--fail"><p><strong>If you're seeing this Grafana has failed to load its application files</strong><br/><br/></p><p>1. This could be caused by your reverse proxy settings.<br/><br/>2. If you host grafana under subpath make sure your grafana.ini root_url setting includes subpath. If not using a reverse proxy make sure to set serve_from_sub_path to true.<br/><br/>3. If you have a local dev build make sure you build frontend using: yarn start, yarn start:hot, or yarn build<br/><br/>4. Sometimes restarting grafana-server can help<br/><br/>5. Check if you are using a non-supported browser. For more information, refer to the list of <a href="https://grafana.com/docs/grafana/latest/installation/requirements/#supported-web-browsers">supported browsers</a>.</p></div><script nonce="[[.Nonce]]">// Check to see if browser is not supported by Grafana
  122. // Source file in app/core/utils/browser.ts & tests make edits there and copy compiled typescript here
  123. function checkBrowserCompatibility() {
  124. var isIE = navigator.userAgent.indexOf('MSIE') > -1;
  125. var isEdge = navigator.userAgent.indexOf('Edge/') > -1 || navigator.userAgent.indexOf('Edg/') > -1;
  126. var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
  127. var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
  128. /* Check for
  129. <= IE11 (Trident 7)
  130. Edge <= 16
  131. Firefox <= 64
  132. Chrome <= 54
  133. */
  134. var isEdgeVersion = /Edge\/([0-9.]+)/.exec(navigator.userAgent);
  135. if (isIE && parseFloat(/Trident\/([0-9.]+)/.exec(navigator.userAgent)[1]) <= 7) {
  136. return false;
  137. } else if (
  138. isEdge &&
  139. ((isEdgeVersion && parseFloat(isEdgeVersion[1]) <= 16) ||
  140. parseFloat(/Edg\/([0-9.]+)/.exec(navigator.userAgent)[1]) <= 16)
  141. ) {
  142. return false;
  143. } else if (isFirefox && parseFloat(/Firefox\/([0-9.]+)/.exec(navigator.userAgent)[1]) <= 64) {
  144. return false;
  145. } else if (isChrome && parseFloat(/Chrome\/([0-9.]+)/.exec(navigator.userAgent)[1]) <= 54) {
  146. return false;
  147. }
  148. return true;
  149. }
  150. if (!checkBrowserCompatibility()) {
  151. alert('Your browser is not fully supported, please try newer version.');
  152. }</script></div><div id="reactRoot"></div><script nonce="[[.Nonce]]">window.grafanaBootData = {
  153. user: [[.User]],
  154. settings: [[.Settings]],
  155. navTree: [[.NavTree]],
  156. themePaths: {
  157. light: '[[.ContentDeliveryURL]]public/build/grafana.light.974ddb06f8133af58758.css',
  158. dark: '[[.ContentDeliveryURL]]public/build/grafana.dark.4abbc783977ac5086f80.css'
  159. }
  160. };
  161. window.__grafana_load_failed = function() {
  162. var preloader = document.getElementsByClassName("preloader");
  163. if (preloader.length) {
  164. preloader[0].className = "preloader preloader--done";
  165. }
  166. }
  167. // In case the js files fails to load the code below will show an info message.
  168. window.onload = function() {
  169. if (window.__grafana_app_bundle_loaded) {
  170. return;
  171. }
  172. window.__grafana_load_failed();
  173. };
  174. [[if .ContentDeliveryURL]]
  175. window.public_cdn_path = '[[.ContentDeliveryURL]]public/build/';
  176. [[end]]
  177. [[if .Nonce]]
  178. window.nonce = '[[.Nonce]]';
  179. [[end]]</script>[[if .GoogleTagManagerId]]<script nonce="[[.Nonce]]">dataLayer = [
  180. {
  181. IsSignedIn: '[[.User.IsSignedIn]]',
  182. Email: '[[.User.Email]]',
  183. Name: '[[.User.Name]]',
  184. UserId: '[[.User.Id]]',
  185. OrgId: '[[.User.OrgId]]',
  186. OrgName: '[[.User.OrgName]]',
  187. },
  188. ];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=[[.GoogleTagManagerId]]" height="0" width="0" style="display: none; visibility: hidden"></iframe></noscript><script nonce="[[.Nonce]]">(function (w, d, s, l, i) {
  189. w[l] = w[l] || [];
  190. w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
  191. var f = d.getElementsByTagName(s)[0],
  192. j = d.createElement(s),
  193. dl = l != 'dataLayer' ? '&l=' + l : '';
  194. j.async = true;
  195. j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl;
  196. f.parentNode.insertBefore(j, f);
  197. })(window, document, 'script', 'dataLayer', '[[.GoogleTagManagerId]]');</script>[[end]]<script nonce="[[.Nonce]]" src="[[.ContentDeliveryURL]]public/build/runtime.cb875a781e8d7adbe6a2.js"></script><script nonce="[[.Nonce]]" src="[[.ContentDeliveryURL]]public/build/4129.4dc8186d5d7e26353925.js"></script><script nonce="[[.Nonce]]" src="[[.ContentDeliveryURL]]public/build/9809.fda1ab8a7d47805687a6.js"></script><script nonce="[[.Nonce]]" src="[[.ContentDeliveryURL]]public/build/7846.b323e600ed179be1fd21.js"></script><script nonce="[[.Nonce]]" src="[[.ContentDeliveryURL]]public/build/3372.9b926486c82f244ef995.js"></script><script nonce="[[.Nonce]]" src="[[.ContentDeliveryURL]]public/build/app.f433cbcd9097ca5974b9.js"></script><script nonce="[[.Nonce]]">performance.mark('frontend_boot_js_done_time_seconds');</script></body></html>