123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <template lang='pug'>
- v-card
- v-toolbar(flat, color='primary', dark, dense)
- .subtitle-1 {{ $t('admin:utilities.cacheTitle') }}
- v-card-text
- .subtitle-1.pb-3.primary--text Flush Pages and Assets Cache
- .body-2 Pages and Assets are cached to disk for better performance. You can flush the cache to force all content to be fetched from the DB again.
- v-btn(outlined, color='primary', @click='flushCache', :disabled='loading').ml-0.mt-3
- v-icon(left) mdi-gesture-double-tap
- span Proceed
- v-divider.my-5
- .subtitle-1.pb-3.primary--text Flush Temporary Uploads
- .body-2 New uploads are temporarily saved to disk while they are being processed. They are automatically deleted after processing, but you can force an immediate cleanup using this tool.
- .body-2.red--text Note that performing this action while an upload is in progress can result in a failed upload.
- v-btn(outlined, color='primary', @click='flushUploads', :disabled='loading').ml-0.mt-3
- v-icon(left) mdi-gesture-double-tap
- span Proceed
- v-divider.my-5
- .subtitle-1.pb-3.primary--text Flush Client-Side Locale Cache
- .body-2 Locale strings are cached in the browser local storage for 24h. You can delete your current cache in order to fetch the latest data during the next page load.
- .body-2 Note that this affects only #[strong your own browser] and not everyone.
- v-btn(outlined, color='primary', @click='flushClientLocaleCache', :disabled='loading').ml-0.mt-3
- v-icon(left) mdi-gesture-double-tap
- span Proceed
- </template>
- <script>
- import _ from 'lodash'
- import utilityCacheFlushCacheMutation from 'gql/admin/utilities/utilities-mutation-cache-flushcache.gql'
- import utilityCacheFlushUploadsMutation from 'gql/admin/utilities/utilities-mutation-cache-flushuploads.gql'
- export default {
- data() {
- return {
- loading: false
- }
- },
- methods: {
- async flushCache() {
- this.loading = true
- this.$store.commit(`loadingStart`, 'admin-utilities-cache-flushCache')
- try {
- const respRaw = await this.$apollo.mutate({
- mutation: utilityCacheFlushCacheMutation
- })
- const resp = _.get(respRaw, 'data.pages.flushCache.responseResult', {})
- if (resp.succeeded) {
- this.$store.commit('showNotification', {
- message: 'Cache flushed successfully.',
- style: 'success',
- icon: 'check'
- })
- } else {
- throw new Error(resp.message)
- }
- } catch (err) {
- this.$store.commit('pushGraphError', err)
- }
- this.$store.commit(`loadingStop`, 'admin-utilities-cache-flushCache')
- this.loading = false
- },
- async flushUploads() {
- this.loading = true
- this.$store.commit(`loadingStart`, 'admin-utilities-cache-flushUploads')
- try {
- const respRaw = await this.$apollo.mutate({
- mutation: utilityCacheFlushUploadsMutation
- })
- const resp = _.get(respRaw, 'data.assets.flushTempUploads.responseResult', {})
- if (resp.succeeded) {
- this.$store.commit('showNotification', {
- message: 'Temporary Uploads flushed successfully.',
- style: 'success',
- icon: 'check'
- })
- } else {
- throw new Error(resp.message)
- }
- } catch (err) {
- this.$store.commit('pushGraphError', err)
- }
- this.$store.commit(`loadingStop`, 'admin-utilities-cache-flushUploads')
- this.loading = false
- },
- async flushClientLocaleCache () {
- for (let i = 0; i < window.localStorage.length; i++) {
- const lsKey = window.localStorage.key(i)
- if (_.startsWith(lsKey, 'i18next_res')) {
- window.localStorage.removeItem(lsKey)
- }
- }
- this.$store.commit('showNotification', {
- message: 'Locale Client-Side Cache flushed successfully.',
- style: 'success',
- icon: 'check'
- })
- }
- }
- }
- </script>
- <style lang='scss'>
- </style>
|