59 lines
1.4 KiB
Vue
59 lines
1.4 KiB
Vue
|
<script>
|
||
|
import createFlash from '~/flash';
|
||
|
import axios from '~/lib/utils/axios_utils';
|
||
|
import { visitUrl } from '~/lib/utils/url_utility';
|
||
|
import EnvironmentForm from './environment_form.vue';
|
||
|
|
||
|
export default {
|
||
|
components: {
|
||
|
EnvironmentForm,
|
||
|
},
|
||
|
inject: ['projectEnvironmentsPath', 'updateEnvironmentPath'],
|
||
|
props: {
|
||
|
environment: {
|
||
|
required: true,
|
||
|
type: Object,
|
||
|
},
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
formEnvironment: {
|
||
|
name: this.environment.name,
|
||
|
externalUrl: this.environment.external_url,
|
||
|
},
|
||
|
loading: false,
|
||
|
};
|
||
|
},
|
||
|
methods: {
|
||
|
onChange(environment) {
|
||
|
this.formEnvironment = environment;
|
||
|
},
|
||
|
onSubmit() {
|
||
|
this.loading = true;
|
||
|
axios
|
||
|
.put(this.updateEnvironmentPath, {
|
||
|
id: this.environment.id,
|
||
|
name: this.formEnvironment.name,
|
||
|
external_url: this.formEnvironment.externalUrl,
|
||
|
})
|
||
|
.then(({ data: { path } }) => visitUrl(path))
|
||
|
.catch((error) => {
|
||
|
const message = error.response.data.message[0];
|
||
|
createFlash({ message });
|
||
|
this.loading = false;
|
||
|
});
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
</script>
|
||
|
<template>
|
||
|
<environment-form
|
||
|
:cancel-path="projectEnvironmentsPath"
|
||
|
:environment="formEnvironment"
|
||
|
:title="__('Edit environment')"
|
||
|
:loading="loading"
|
||
|
@change="onChange"
|
||
|
@submit="onSubmit"
|
||
|
/>
|
||
|
</template>
|