refactor(ui): global environment
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
class="input floating-input"
|
class="input floating-input"
|
||||||
placeholder=" "
|
placeholder=" "
|
||||||
type="text"
|
type="text"
|
||||||
|
:disabled="editingEnvironmentIndex === 'global'"
|
||||||
@keyup.enter="saveEnvironment"
|
@keyup.enter="saveEnvironment"
|
||||||
/>
|
/>
|
||||||
<label for="selectLabelEnvEdit">
|
<label for="selectLabelEnvEdit">
|
||||||
@@ -101,8 +102,11 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import clone from "lodash/clone"
|
import clone from "lodash/clone"
|
||||||
import { defineComponent, PropType } from "@nuxtjs/composition-api"
|
import { defineComponent, PropType } from "@nuxtjs/composition-api"
|
||||||
import type { Environment } from "~/newstore/environments"
|
import {
|
||||||
import { updateEnvironment } from "~/newstore/environments"
|
Environment,
|
||||||
|
setGlobalEnvVariables,
|
||||||
|
updateEnvironment,
|
||||||
|
} from "~/newstore/environments"
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
props: {
|
props: {
|
||||||
@@ -111,7 +115,10 @@ export default defineComponent({
|
|||||||
type: Object as PropType<Environment | null>,
|
type: Object as PropType<Environment | null>,
|
||||||
default: null,
|
default: null,
|
||||||
},
|
},
|
||||||
editingEnvironmentIndex: { type: Number, default: null },
|
editingEnvironmentIndex: {
|
||||||
|
type: [Number, String] as PropType<number | "global">,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -161,7 +168,9 @@ export default defineComponent({
|
|||||||
variables: this.vars,
|
variables: this.vars,
|
||||||
}
|
}
|
||||||
|
|
||||||
updateEnvironment(this.editingEnvironmentIndex, environmentUpdated)
|
if (this.editingEnvironmentIndex === "global")
|
||||||
|
setGlobalEnvVariables(environmentUpdated.variables)
|
||||||
|
else updateEnvironment(this.editingEnvironmentIndex, environmentUpdated)
|
||||||
this.hideModal()
|
this.hideModal()
|
||||||
},
|
},
|
||||||
hideModal() {
|
hideModal() {
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<SmartItem
|
<SmartItem
|
||||||
|
v-if="!(environmentIndex === 'global')"
|
||||||
icon="remove_circle_outline"
|
icon="remove_circle_outline"
|
||||||
color="red"
|
color="red"
|
||||||
:label="$t('delete')"
|
:label="$t('delete')"
|
||||||
@@ -60,13 +61,17 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { PropType } from "@nuxtjs/composition-api"
|
||||||
import Vue from "vue"
|
import Vue from "vue"
|
||||||
import { deleteEnvironment } from "~/newstore/environments"
|
import { deleteEnvironment } from "~/newstore/environments"
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: {
|
props: {
|
||||||
environment: { type: Object, default: () => {} },
|
environment: { type: Object, default: () => {} },
|
||||||
environmentIndex: { type: Number, default: null },
|
environmentIndex: {
|
||||||
|
type: [Number, String] as PropType<number | "global">,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -75,7 +80,8 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
removeEnvironment() {
|
removeEnvironment() {
|
||||||
deleteEnvironment(this.environmentIndex)
|
if (this.environmentIndex !== "global")
|
||||||
|
deleteEnvironment(this.environmentIndex)
|
||||||
this.$toast.error(this.$t("deleted").toString(), {
|
this.$toast.error(this.$t("deleted").toString(), {
|
||||||
icon: "delete",
|
icon: "delete",
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -75,6 +75,21 @@
|
|||||||
:show="showModalImportExport"
|
:show="showModalImportExport"
|
||||||
@hide-modal="displayModalImportExport(false)"
|
@hide-modal="displayModalImportExport(false)"
|
||||||
/>
|
/>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<EnvironmentsEnvironment
|
||||||
|
environment-index="global"
|
||||||
|
:environment="globalEnvironment"
|
||||||
|
class="border-b border-dashed border-dividerLight"
|
||||||
|
@edit-environment="editEnvironment(globalEnvironment, 'global')"
|
||||||
|
/>
|
||||||
|
<EnvironmentsEnvironment
|
||||||
|
v-for="(environment, index) in environments"
|
||||||
|
:key="`environment-${index}`"
|
||||||
|
:environment-index="index"
|
||||||
|
:environment="environment"
|
||||||
|
@edit-environment="editEnvironment(environment, index)"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="environments.length === 0"
|
v-if="environments.length === 0"
|
||||||
class="flex flex-col text-secondaryLight p-4 items-center justify-center"
|
class="flex flex-col text-secondaryLight p-4 items-center justify-center"
|
||||||
@@ -88,15 +103,6 @@
|
|||||||
@click.native="displayModalAdd(true)"
|
@click.native="displayModalAdd(true)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col">
|
|
||||||
<EnvironmentsEnvironment
|
|
||||||
v-for="(environment, index) in environments"
|
|
||||||
:key="`environment-${index}`"
|
|
||||||
:environment-index="index"
|
|
||||||
:environment="environment"
|
|
||||||
@edit-environment="editEnvironment(environment, index)"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</AppSection>
|
</AppSection>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -108,12 +114,23 @@ import {
|
|||||||
setCurrentEnvironment,
|
setCurrentEnvironment,
|
||||||
selectedEnvIndex$,
|
selectedEnvIndex$,
|
||||||
Environment,
|
Environment,
|
||||||
|
globalEnv$,
|
||||||
} from "~/newstore/environments"
|
} from "~/newstore/environments"
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
setup() {
|
setup() {
|
||||||
|
const globalEnv = useReadonlyStream(globalEnv$, [])
|
||||||
|
const globalEnvName = {
|
||||||
|
name: "Global",
|
||||||
|
}
|
||||||
|
const globalEnvVariables = {
|
||||||
|
variables: globalEnv.value,
|
||||||
|
}
|
||||||
|
const globalEnvironment = Object.assign(globalEnvName, globalEnvVariables)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
environments: useReadonlyStream(environments$, []),
|
environments: useReadonlyStream(environments$, []),
|
||||||
|
globalEnvironment,
|
||||||
selectedEnvironmentIndex: useStream(
|
selectedEnvironmentIndex: useStream(
|
||||||
selectedEnvIndex$,
|
selectedEnvIndex$,
|
||||||
-1,
|
-1,
|
||||||
|
|||||||
Reference in New Issue
Block a user