Skip to content
Snippets Groups Projects
instance.js 1.12 KiB
Newer Older
  • Learn to ignore specific revisions
  • import axios from 'axios'
    import logger from '@/logging'
    import _ from 'lodash'
    
    export default {
      namespaced: true,
      state: {
        settings: {
    
    Eliot Berriot's avatar
    Eliot Berriot committed
          users: {
            registration_enabled: {
              value: true
            }
          },
    
          raven: {
            front_enabled: {
              value: false
            },
            front_dsn: {
              value: null
            }
          }
        }
      },
      mutations: {
        settings: (state, value) => {
          _.merge(state.settings, value)
        }
      },
      actions: {
        // Send a request to the login URL and save the returned JWT
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        fetchSettings ({commit}, {callback}) {
    
          return axios.get('instance/settings/').then(response => {
            logger.default.info('Successfully fetched instance settings')
            let sections = {}
            response.data.forEach(e => {
              sections[e.section] = {}
            })
            response.data.forEach(e => {
              sections[e.section][e.name] = e
            })
            commit('settings', sections)
    
    Eliot Berriot's avatar
    Eliot Berriot committed
            if (callback) {
              callback()
            }
    
          }, response => {
            logger.default.error('Error while fetching settings', response.data)
          })
        }
      }
    }