summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/environments/components/edit_environment.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/environments/components/edit_environment.vue')
-rw-r--r--app/assets/javascripts/environments/components/edit_environment.vue58
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>