index.ejs 2.7 KB

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