diff options
Diffstat (limited to 'app/assets/javascripts/environments/components/edit_environment.vue')
-rw-r--r-- | app/assets/javascripts/environments/components/edit_environment.vue | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/app/assets/javascripts/environments/components/edit_environment.vue b/app/assets/javascripts/environments/components/edit_environment.vue new file mode 100644 index 00000000000..1cd960d7cd6 --- /dev/null +++ b/app/assets/javascripts/environments/components/edit_environment.vue @@ -0,0 +1,58 @@ +<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> |