index.ejs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5. <meta name="robots" content="NONE,NOARCHIVE" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <meta name="theme-color" content="#000000">
  8. <title><%= htmlWebpackPlugin.options.title || 'Sentry Dev'%></title>
  9. <script type="text/javascript">
  10. try {
  11. var reg = new RegExp(/\/organizations\/(.+?(?=(\/|$)))(\/|$)/, 'i');
  12. var organization = window.location.pathname;
  13. var slug = organization.match(reg)[1];
  14. function promiseRequest(url) {
  15. return new Promise(function (resolve, reject) {
  16. var xhr = new XMLHttpRequest();
  17. xhr.open('GET', url);
  18. xhr.onload = function () {
  19. try {
  20. this.status >= 200 && this.status < 300
  21. ? resolve(JSON.parse(xhr.response))
  22. : reject([this.status, this.statusText]);
  23. } catch(e) {
  24. reject();
  25. }
  26. };
  27. xhr.onerror = function () {
  28. reject([this.status, this.statusText]);
  29. };
  30. xhr.send();
  31. });
  32. }
  33. function makeUrl(suffix) {
  34. return '/api/0/organizations/' + slug + suffix;
  35. }
  36. var preloadPromises = { orgSlug: slug };
  37. window.__sentry_preload = preloadPromises;
  38. preloadPromises.organization = promiseRequest(makeUrl('/?detailed=0'));
  39. preloadPromises.projects = promiseRequest(makeUrl('/projects/?all_projects=1&collapse=latestDeploys'));
  40. preloadPromises.teams = promiseRequest(makeUrl('/teams/'));
  41. } catch(_) {}
  42. </script>
  43. </head>
  44. <body>
  45. <% if (htmlWebpackPlugin.options.unsupportedBrowser) { %>
  46. <style>.unsupported-browser { display: none; }</style>
  47. <div class="unsupported-browser">
  48. Sorry, your browser is not supported. Please upgrade to
  49. the latest version or switch your browser to use this site.
  50. See <a href="http://outdatedbrowser.com/">outdatedbrowser.com</a>
  51. for options.
  52. </div>
  53. <% } %>
  54. <div id="blk_router">
  55. <div class="loading triangle">
  56. <div class="loading-mask"></div>
  57. <div class="loading-indicator">
  58. <img src="<%=require('sentry-images/sentry-loader.svg')%>" />
  59. </div>
  60. <div class="loading-message">
  61. <p>Please wait while we load an obnoxious amount of JavaScript.</p>
  62. <p>
  63. <small>You may need to disable adblocking extensions to load Sentry.</small>
  64. </p>
  65. </div>
  66. </div>
  67. </div>
  68. <% if (htmlWebpackPlugin.options.window) { %>
  69. <script>
  70. <% for (var varName in htmlWebpackPlugin.options.window) { %>
  71. window['<%=varName%>'] = <%= JSON.stringify(htmlWebpackPlugin.options.window[varName]) %>;
  72. <% } %>
  73. </script>
  74. <% } %>
  75. </body>
  76. </html>