Restart application on button click

This commit is contained in:
Angelina Filippova 2020-02-18 23:08:07 +03:00
parent 610349f24b
commit 7f2d61bc15
3 changed files with 28 additions and 5 deletions

View file

@ -40,4 +40,13 @@ export async function removeSettings(configs, authHost, token) {
})
}
export async function restartApp(authHost, token) {
return await request({
baseURL: baseName(authHost),
url: `/api/pleroma/admin/restart`,
method: 'get',
headers: authHeaders(token)
})
}
const authHeaders = (token) => token ? { 'Authorization': `Bearer ${getToken()}` } : {}

View file

@ -1,4 +1,4 @@
import { fetchDescription, fetchSettings, removeSettings, updateSettings } from '@/api/settings'
import { fetchDescription, fetchSettings, removeSettings, restartApp, updateSettings } from '@/api/settings'
import { checkPartialUpdate, parseNonTuples, parseTuples, valueHasTuples, wrapUpdatedSettings } from './normalizers'
import _ from 'lodash'
@ -9,10 +9,9 @@ const settings = {
db: {},
description: [],
loading: true,
needReboot: true,
needReboot: false,
settings: {},
updatedSettings: {}
},
mutations: {
CLEAR_UPDATED_SETTINGS: (state) => {
@ -52,6 +51,9 @@ const settings = {
state.settings = newSettings
state.db = newDbSettings
},
TOGGLE_REBOOT: (state, needReboot) => {
state.needReboot = needReboot || false
},
TOGGLE_TABS: (state, status) => {
state.configDisabled = status
},
@ -76,6 +78,7 @@ const settings = {
const description = await fetchDescription(getters.authHost, getters.token)
commit('SET_DESCRIPTION', description.data)
commit('SET_SETTINGS', response.data.configs)
commit('TOGGLE_REBOOT', response.data.need_reboot)
} catch (_e) {
commit('TOGGLE_TABS', true)
commit('SET_ACTIVE_TAB', 'relays')
@ -90,8 +93,13 @@ const settings = {
const response = await fetchSettings(getters.authHost, getters.token)
const { group, key, subkeys } = configs[0]
commit('SET_SETTINGS', response.data.configs)
commit('TOGGLE_REBOOT', response.data.need_reboot)
commit('REMOVE_SETTING_FROM_UPDATED', { group, key, subkeys: subkeys || [] })
},
async RestartApplication({ commit, getters }) {
await restartApp(getters.authHost, getters.token)
commit('TOGGLE_REBOOT', false)
},
SetActiveTab({ commit }, tab) {
commit('SET_ACTIVE_TAB', tab)
},
@ -104,6 +112,7 @@ const settings = {
await updateSettings(configs, getters.authHost, getters.token)
const response = await fetchSettings(getters.authHost, getters.token)
commit('SET_SETTINGS', response.data.configs)
commit('TOGGLE_REBOOT', response.data.need_reboot)
commit('CLEAR_UPDATED_SETTINGS')
},
UpdateSettings({ commit }, { group, key, input, value, type }) {

View file

@ -4,7 +4,7 @@
<div class="settings-header-container">
<h1 class="settings-header">{{ $t('settings.settings') }}</h1>
<div>
<el-button v-if="needReboot" class="settings-reboot-button">
<el-button v-if="needReboot" class="settings-reboot-button" @click="restartApp">
<span>
<i class="el-icon-refresh"/>
{{ $t('settings.instanceReboot') }}
@ -89,7 +89,7 @@
<div v-if="isMobile || isTablet">
<div class="settings-header-container">
<h1 class="settings-header">{{ $t('settings.settings') }}</h1>
<el-button v-if="needReboot" class="settings-reboot-button">
<el-button v-if="needReboot" class="settings-reboot-button" @click="restartApp">
<span>
<i class="el-icon-refresh"/>
{{ $t('settings.instanceReboot') }}
@ -242,6 +242,11 @@ export default {
},
mounted: function() {
this.$store.dispatch('FetchSettings')
},
methods: {
restartApp() {
this.$store.dispatch('RestartApplication')
}
}
}
</script>