From 3963ed8ff7488a0e2f7f3876461f909e6be08e25 Mon Sep 17 00:00:00 2001 From: tamaina Date: Sat, 23 May 2020 13:19:31 +0900 Subject: feat(client): 翻訳をIndexedDBに保存・プッシュ通知を翻訳 (#6396) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip * tabun ok * better msg * oops * fix lint * Update gulpfile.ts Co-authored-by: Acid Chicken (硫酸鶏) * Update src/client/scripts/set-i18n-contexts.ts Co-authored-by: Acid Chicken (硫酸鶏) * refactor Co-authored-by: acid-chicken * ✨ * wip * fix lint * たぶんおk * fix flush * Translate Notification * remove console.log * fix * add notifications * remove san * wip * ok * :v: * Update src/prelude/array.ts Co-authored-by: Acid Chicken (硫酸鶏) * wip * i18n refactor * Update init.ts * :v: Co-authored-by: Acid Chicken (硫酸鶏) Co-authored-by: syuilo --- src/server/web/index.ts | 3 ++- src/server/web/views/flush.pug | 32 +++++++++++++++++++++++++------- 2 files changed, 27 insertions(+), 8 deletions(-) (limited to 'src/server/web') diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 3da86944d7..5bb052a693 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -245,7 +245,8 @@ router.get('/notes/:note', async ctx => { const meta = await fetchMeta(); await ctx.render('note', { note: _note, - summary: getNoteSummary(_note), + // TODO: Let locale changeable by instance setting + summary: getNoteSummary(_note, locales['ja-JP']), instanceName: meta.name || 'Misskey', icon: meta.iconUrl }); diff --git a/src/server/web/views/flush.pug b/src/server/web/views/flush.pug index f279c23605..59fed1f15d 100644 --- a/src/server/web/views/flush.pug +++ b/src/server/web/views/flush.pug @@ -1,20 +1,38 @@ doctype html html + #msg script. - localStorage.removeItem('locale'); + const msg = document.getElementById('msg'); try { - navigator.serviceWorker.controller.postMessage('clear'); + localStorage.clear(); + message('localStorage cleared'); - navigator.serviceWorker.getRegistrations().then(registrations => { - return Promise.all(registrations.map(registration => registration.unregister())); - }).then(() => { - location = '/'; - }); + const delidb = indexedDB.deleteDatabase('MisskeyClient'); + delidb.onsuccess = () => message('indexedDB cleared'); + + if (navigator.serviceWorker.controller) { + navigator.serviceWorker.controller.postMessage('clear'); + navigator.serviceWorker.getRegistrations() + .then(registrations => { + return Promise.all(registrations.map(registration => registration.unregister())); + }) + .then(() => { + message('Success Flush! Please reopen Misskey.\n成功しました。Misskeyを開き直してください。'); + }) + .catch(e => { throw Error(e) }); + } else { + message('Success Flush! Please reopen Misskey.\n成功しました。Misskeyを開き直してください。'); + } } catch (e) { console.error(e); + message(`${e}¥n¥nFlush Failed. Please reopen Misskey.\n失敗しました。Misskeyを開き直してください。`); setTimeout(() => { location = '/'; }, 10000) } + + function message(text) { + msg.insertAdjacentHTML('beforeend', `

[${(new Date()).toString()}] ${text.replace(/¥n/g,'
')}

`) + } -- cgit v1.2.3-freya