aboutsummaryrefslogtreecommitdiff
path: root/src/components/settings_modal/admin_tabs/frontends_tab.js
blob: a2c27c2a4c7d5cd8e48ccdb0e685062aaff13e36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import BooleanSetting from '../helpers/boolean_setting.vue'
import ChoiceSetting from '../helpers/choice_setting.vue'
import IntegerSetting from '../helpers/integer_setting.vue'
import StringSetting from '../helpers/string_setting.vue'
import GroupSetting from '../helpers/group_setting.vue'
import Popover from 'src/components/popover/popover.vue'

import SharedComputedObject from '../helpers/shared_computed_object.js'
import { library } from '@fortawesome/fontawesome-svg-core'
import {
  faGlobe
} from '@fortawesome/free-solid-svg-icons'

library.add(
  faGlobe
)

const FrontendsTab = {
  provide () {
    return {
      defaultDraftMode: true,
      defaultSource: 'admin'
    }
  },
  components: {
    BooleanSetting,
    ChoiceSetting,
    IntegerSetting,
    StringSetting,
    GroupSetting,
    Popover
  },
  created () {
    if (this.user.rights.admin) {
      this.$store.dispatch('loadFrontendsStuff')
    }
  },
  computed: {
    frontends () {
      return this.$store.state.adminSettings.frontends
    },
    ...SharedComputedObject()
  },
  methods: {
    update (frontend, suggestRef) {
      const ref = suggestRef || frontend.refs[0]
      const { name } = frontend
      const payload = { name, ref }

      this.$store.state.api.backendInteractor.installFrontend({ payload })
        .then((externalUser) => {
          this.$store.dispatch('loadFrontendsStuff')
        })
    },
    setDefault (frontend, suggestRef) {
      const ref = suggestRef || frontend.refs[0]
      const { name } = frontend

      this.$store.commit('updateAdminDraft', { path: [':pleroma', ':frontends', ':primary'], value: { name, ref } })
    }
  }
}

export default FrontendsTab