summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/clusters/components/knative_domain_editor.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/clusters/components/knative_domain_editor.vue')
-rw-r--r--app/assets/javascripts/clusters/components/knative_domain_editor.vue232
1 files changed, 0 insertions, 232 deletions
diff --git a/app/assets/javascripts/clusters/components/knative_domain_editor.vue b/app/assets/javascripts/clusters/components/knative_domain_editor.vue
deleted file mode 100644
index 89446680173..00000000000
--- a/app/assets/javascripts/clusters/components/knative_domain_editor.vue
+++ /dev/null
@@ -1,232 +0,0 @@
-<script>
-import {
- GlDropdown,
- GlDropdownDivider,
- GlDropdownItem,
- GlLoadingIcon,
- GlSearchBoxByType,
- GlSprintf,
- GlButton,
- GlAlert,
-} from '@gitlab/ui';
-import { APPLICATION_STATUS } from '~/clusters/constants';
-import { __, s__ } from '~/locale';
-
-import ClipboardButton from '../../vue_shared/components/clipboard_button.vue';
-
-const { UPDATING, UNINSTALLING } = APPLICATION_STATUS;
-
-export default {
- components: {
- GlButton,
- ClipboardButton,
- GlLoadingIcon,
- GlDropdown,
- GlDropdownDivider,
- GlDropdownItem,
- GlSearchBoxByType,
- GlSprintf,
- GlAlert,
- },
- props: {
- knative: {
- type: Object,
- required: true,
- },
- ingressDnsHelpPath: {
- type: String,
- default: '',
- required: false,
- },
- },
- data() {
- return {
- searchQuery: '',
- };
- },
- computed: {
- saveButtonDisabled() {
- return [UNINSTALLING, UPDATING].includes(this.knative.status);
- },
- saving() {
- return [UPDATING].includes(this.knative.status);
- },
- saveButtonLabel() {
- return this.saving ? __('Saving') : __('Save changes');
- },
- knativeInstalled() {
- return this.knative.installed;
- },
- knativeExternalEndpoint() {
- return this.knative.externalIp || this.knative.externalHostname;
- },
- knativeUpdateSuccessful() {
- return this.knative.updateSuccessful;
- },
- knativeHostname: {
- get() {
- return this.knative.hostname;
- },
- set(hostname) {
- this.selectCustomDomain(hostname);
- },
- },
- domainDropdownText() {
- return this.knativeHostname || s__('ClusterIntegration|Select existing domain or use new');
- },
- availableDomains() {
- return this.knative.availableDomains || [];
- },
- filteredDomains() {
- const query = this.searchQuery.toLowerCase();
- return this.availableDomains.filter(({ domain }) => domain.toLowerCase().includes(query));
- },
- showDomainsDropdown() {
- return this.availableDomains.length > 0;
- },
- validationError() {
- return this.knative.validationError;
- },
- },
- watch: {
- knativeUpdateSuccessful(updateSuccessful) {
- if (updateSuccessful) {
- this.$toast.show(s__('ClusterIntegration|Knative domain name was updated successfully.'));
- }
- },
- },
- methods: {
- selectDomain({ id, domain }) {
- this.$emit('set', { domain, domainId: id });
- },
- selectCustomDomain(domain) {
- this.$emit('set', { domain, domainId: null });
- },
- },
-};
-</script>
-
-<template>
- <div class="row">
- <gl-alert
- v-if="knative.updateFailed"
- class="gl-mb-5 col-12 js-cluster-knative-domain-name-failure-message"
- variant="danger"
- >
- {{ s__('ClusterIntegration|Something went wrong while updating Knative domain name.') }}
- </gl-alert>
-
- <div
- :class="{ 'col-md-6': knativeInstalled, 'col-12': !knativeInstalled }"
- class="form-group col-sm-12 mb-0"
- >
- <label for="knative-domainname">
- <strong>{{ s__('ClusterIntegration|Knative Domain Name:') }}</strong>
- </label>
-
- <gl-dropdown
- v-if="showDomainsDropdown"
- :text="domainDropdownText"
- toggle-class="dropdown-menu-toggle"
- class="w-100 mb-2"
- >
- <gl-search-box-by-type
- v-model.trim="searchQuery"
- :placeholder="s__('ClusterIntegration|Search domains')"
- />
- <gl-dropdown-item
- v-for="domain in filteredDomains"
- :key="domain.id"
- @click="selectDomain(domain)"
- >
- <span class="ml-1">{{ domain.domain }}</span>
- </gl-dropdown-item>
- <template v-if="searchQuery">
- <gl-dropdown-divider />
- <gl-dropdown-item key="custom-domain" @click="selectCustomDomain(searchQuery)">
- <span class="ml-1">
- <gl-sprintf :message="s__('ClusterIntegration|Use %{query}')">
- <template #query>
- <code>{{ searchQuery }}</code>
- </template>
- </gl-sprintf>
- </span>
- </gl-dropdown-item>
- </template>
- </gl-dropdown>
-
- <input
- v-else
- id="knative-domainname"
- v-model="knativeHostname"
- type="text"
- class="form-control js-knative-domainname"
- />
-
- <span v-if="validationError" class="gl-field-error">{{ validationError }}</span>
- </div>
-
- <template v-if="knativeInstalled">
- <div class="form-group col-sm-12 col-md-6 pl-md-0 mb-0 mt-3 mt-md-0">
- <label for="knative-endpoint">
- <strong>{{ s__('ClusterIntegration|Knative Endpoint:') }}</strong>
- </label>
- <div v-if="knativeExternalEndpoint" class="input-group">
- <input
- id="knative-endpoint"
- :value="knativeExternalEndpoint"
- type="text"
- class="form-control js-knative-endpoint"
- readonly
- />
- <span class="input-group-append">
- <clipboard-button
- :text="knativeExternalEndpoint"
- :title="s__('ClusterIntegration|Copy Knative Endpoint')"
- class="input-group-text js-knative-endpoint-clipboard-btn"
- />
- </span>
- </div>
- <div v-else class="input-group">
- <input type="text" class="form-control js-endpoint" readonly />
- <gl-loading-icon
- class="position-absolute align-self-center ml-2 js-knative-ip-loading-icon"
- />
- </div>
- </div>
-
- <p class="form-text text-muted col-12">
- {{
- s__(
- `ClusterIntegration|To access your application after deployment, point a wildcard DNS to the Knative Endpoint.`,
- )
- }}
- <a :href="ingressDnsHelpPath" target="_blank" rel="noopener noreferrer">{{
- __('More information')
- }}</a>
- </p>
-
- <p
- v-if="!knativeExternalEndpoint"
- class="settings-message js-no-knative-endpoint-message mt-2 mr-3 mb-0 ml-3"
- >
- {{
- s__(`ClusterIntegration|The endpoint is in
- the process of being assigned. Please check your Kubernetes
- cluster or Quotas on Google Kubernetes Engine if it takes a long time.`)
- }}
- </p>
-
- <gl-button
- class="js-knative-save-domain-button gl-mt-5 gl-ml-5"
- variant="success"
- category="primary"
- :loading="saving"
- :disabled="saveButtonDisabled"
- @click="$emit('save')"
- >
- {{ saveButtonLabel }}
- </gl-button>
- </template>
- </div>
-</template>