| 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>
 |