summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-11-28 16:10:31 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-11-28 16:10:31 +0900
commitc157644110b68de7c05882e6645495db7bfa5fc6 (patch)
tree01c3b6798dea9c892881c69af41a8ef77c084018 /src
parentv3219 (diff)
downloadsharkey-c157644110b68de7c05882e6645495db7bfa5fc6.tar.gz
sharkey-c157644110b68de7c05882e6645495db7bfa5fc6.tar.bz2
sharkey-c157644110b68de7c05882e6645495db7bfa5fc6.zip
Fix #952
Diffstat (limited to 'src')
-rw-r--r--src/web/assets/404.js (renamed from src/web/assets/help.js)7
-rw-r--r--src/web/assets/recover.html32
-rw-r--r--src/web/server.ts4
3 files changed, 42 insertions, 1 deletions
diff --git a/src/web/assets/help.js b/src/web/assets/404.js
index 475c506789..46fd004f14 100644
--- a/src/web/assets/help.js
+++ b/src/web/assets/404.js
@@ -2,6 +2,13 @@ const yn = window.confirm(
'サーバー上に存在しないスクリプトがリクエストされました。お使いのMisskeyのバージョンが古いことが原因の可能性があります。Misskeyを更新しますか?');
if (yn) {
+ // Clear cache (serive worker)
+ try {
+ navigator.serviceWorker.controller.postMessage('clear');
+ } catch (e) {
+ console.error(e);
+ }
+
location.reload(true);
} else {
alert('問題が解決しない場合はサーバー管理者までお問い合せください。');
diff --git a/src/web/assets/recover.html b/src/web/assets/recover.html
new file mode 100644
index 0000000000..8042d438c4
--- /dev/null
+++ b/src/web/assets/recover.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Misskeyのリカバリ</title>
+ <script>
+
+ const yn = window.confirm('キャッシュをクリアしますか?\y\yDo you want to clear caches?');
+
+ if (yn) {
+ try {
+ navigator.serviceWorker.controller.postMessage('clear');
+
+ navigator.serviceWorker.getRegistrations().then(registrations => {
+ registrations.forEach(registration => registration.unregister());
+ });
+
+ } catch (e) {
+ console.error(e);
+ }
+
+ localStorage.setItem('should-refresh', 'true');
+
+ alert('キャッシュをクリアしました。');
+ } else {
+ alert('問題が解決しない場合はサーバー管理者までお問い合せください。');
+ }
+
+ </script>
+ </head>
+</html>
diff --git a/src/web/server.ts b/src/web/server.ts
index 791b75ce09..1d3687f89e 100644
--- a/src/web/server.ts
+++ b/src/web/server.ts
@@ -39,11 +39,13 @@ app.get('/apple-touch-icon.png', (req, res) => res.sendFile(`${__dirname}/assets
app.use('/assets', express.static(`${__dirname}/assets`, {
maxAge: ms('7 days')
}));
-app.use('/assets/*.js', (req, res) => res.sendFile(`${__dirname}/assets/help.js`));
+app.use('/assets/*.js', (req, res) => res.sendFile(`${__dirname}/assets/404.js`));
app.use('/assets', (req, res) => {
res.sendStatus(404);
});
+app.use('/recover', (req, res) => res.sendFile(`${__dirname}/assets/recover.html`));
+
/**
* ServiceWroker
*/