ソースを参照

add loading indicator

Daniel Sheffield 1 年間 前
コミット
093bdc1674
2 ファイル変更54 行追加1 行削除
  1. 51 0
      app/rest/loading.html
  2. 3 1
      app/rest/pyapi.py

+ 51 - 0
app/rest/loading.html

@@ -0,0 +1,51 @@
+<html>
+    <head>
+        <style>
+.lds-ring {
+  left: 45vw;
+  top: 45vh;
+  display: inline-block;
+  position: relative;
+  width: 80px;
+  height: 80px;
+}
+.lds-ring div {
+  box-sizing: border-box;
+  display: block;
+  position: absolute;
+  width: 10vh;
+  height: 10vh;
+  margin: 8px;
+  border: 8px solid #000;
+  border-radius: 50%;
+  animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
+  border-color: #000 transparent transparent transparent;
+}
+.lds-ring div:nth-child(1) {
+  animation-delay: -0.45s;
+}
+.lds-ring div:nth-child(2) {
+  animation-delay: -0.3s;
+}
+.lds-ring div:nth-child(3) {
+  animation-delay: -0.15s;
+}
+@keyframes lds-ring {
+  0% {
+    transform: rotate(0deg);
+  }
+  100% {
+    transform: rotate(360deg);
+  }
+}
+iframe {
+    overflow: hidden;
+    pointer-events: none;
+}
+        </style>
+    </head>
+    <body>
+        <div class="lds-ring"><div></div><div></div><div></div><div></div></div>
+        <meta http-equiv="Refresh" content="0;" />
+    </body>
+</html>

+ 3 - 1
app/rest/pyapi.py

@@ -19,6 +19,7 @@ from bottle import (
     redirect,
     template,
     HTTPError,
+    static_file,
 )
 from psycopg import connect
 from psycopg.sql import SQL, Literal
@@ -186,7 +187,8 @@ def trend():
         return next(CACHE[request.query_string], None)
     
     CACHE[request.query_string] = trend_internal(path, request.query)
-    return next(CACHE[request.query_string])
+
+    return static_file("loading.html", root="app/rest")
 
 def trend_internal(path, query):
     try: