123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- <template lang='pug'>
- v-container(fluid, grid-list-lg)
- v-layout(row wrap)
- v-flex(xs12)
- .admin-header
- img.animated.fadeInUp(src='/_assets/svg/icon-installing-updates.svg', alt='Extensions', style='width: 80px;')
- .admin-header-title
- .headline.primary--text.animated.fadeInLeft {{ $t('admin:extensions.title') }}
- .subtitle-1.grey--text.animated.fadeInLeft {{ $t('admin:extensions.subtitle') }}
- v-form.pt-3
- v-layout(row wrap)
- v-flex(xl6 lg8 xs12)
- v-alert.mb-4(outlined, color='error', icon='mdi-alert')
- span New extensions cannot be installed at the moment. This feature is coming in a future release.
- v-expansion-panels.admin-extensions-exp(hover, popout)
- v-expansion-panel(v-for='ext of extensions', :key='`ext-` + ext.key')
- v-expansion-panel-header(disable-icon-rotate)
- span {{ext.title}}
- template(v-slot:actions)
- v-chip(label, color='success', small, v-if='ext.isInstalled') Installed
- v-chip(label, color='warning', small, v-else) Not Installed
- v-expansion-panel-content.pa-0
- v-card(flat, :class='$vuetify.theme.dark ? `grey darken-3` : `grey lighten-5`', tile)
- v-card-text
- .body-2 {{ext.description}}
- v-divider.my-4
- .body-2
- strong.mr-2 This extension is
- v-chip.mr-2(v-if='ext.isCompatible', label, outlined, small, color='success') compatible
- v-chip.mr-2(v-else, label, small, color='error') not compatible
- strong with your host.
- v-card-chin
- v-spacer
- v-btn(disabled)
- v-icon(left) mdi-plus
- span Install
- </template>
- <script>
- import _ from 'lodash'
- import gql from 'graphql-tag'
- export default {
- data() {
- return {
- extensions: []
- }
- },
- methods: {
- async save () {
- // try {
- // await this.$apollo.mutate({
- // mutation: gql`
- // mutation (
- // $host: String!
- // ) {
- // site {
- // updateConfig(
- // host: $host
- // ) {
- // responseResult {
- // succeeded
- // errorCode
- // slug
- // message
- // }
- // }
- // }
- // }
- // `,
- // variables: {
- // host: _.get(this.config, 'host', '')
- // },
- // watchLoading (isLoading) {
- // this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-extensions-update')
- // }
- // })
- // this.$store.commit('showNotification', {
- // style: 'success',
- // message: 'Configuration saved successfully.',
- // icon: 'check'
- // })
- // } catch (err) {
- // this.$store.commit('pushGraphError', err)
- // }
- }
- },
- apollo: {
- extensions: {
- query: gql`
- {
- system {
- extensions {
- key
- title
- description
- isInstalled
- isCompatible
- }
- }
- }
- `,
- fetchPolicy: 'network-only',
- update: (data) => _.cloneDeep(data.system.extensions),
- watchLoading (isLoading) {
- this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-extensions-refresh')
- }
- }
- }
- }
- </script>
- <style lang='scss'>
- .admin-extensions-exp {
- .v-expansion-panel-content__wrap {
- padding: 0;
- }
- }
- </style>
|