diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 16:18:24 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 16:18:24 +0300 |
commit | 0653e08efd039a5905f3fa4f6e9cef9f5d2f799c (patch) | |
tree | 4dcc884cf6d81db44adae4aa99f8ec1233a41f55 /app/assets/javascripts/environments | |
parent | 744144d28e3e7fddc117924fef88de5d9674fe4c (diff) |
Add latest changes from gitlab-org/gitlab@14-3-stable-eev14.3.0-rc42
Diffstat (limited to 'app/assets/javascripts/environments')
12 files changed, 46 insertions, 98 deletions
diff --git a/app/assets/javascripts/environments/components/container.vue b/app/assets/javascripts/environments/components/container.vue index 9e058af56c4..cec53869aa8 100644 --- a/app/assets/javascripts/environments/components/container.vue +++ b/app/assets/javascripts/environments/components/container.vue @@ -22,10 +22,6 @@ export default { type: Object, required: true, }, - canReadEnvironment: { - type: Boolean, - required: true, - }, }, methods: { onChangePage(page) { @@ -42,7 +38,7 @@ export default { <slot name="empty-state"></slot> <div v-if="!isLoading && environments.length > 0" class="table-holder"> - <environment-table :environments="environments" :can-read-environment="canReadEnvironment" /> + <environment-table :environments="environments" /> <table-pagination v-if="pagination && pagination.totalPages > 1" diff --git a/app/assets/javascripts/environments/components/edit_environment.vue b/app/assets/javascripts/environments/components/edit_environment.vue index 1cd960d7cd6..96742a11ebb 100644 --- a/app/assets/javascripts/environments/components/edit_environment.vue +++ b/app/assets/javascripts/environments/components/edit_environment.vue @@ -18,6 +18,7 @@ export default { data() { return { formEnvironment: { + id: this.environment.id, name: this.environment.name, externalUrl: this.environment.external_url, }, @@ -33,7 +34,6 @@ export default { axios .put(this.updateEnvironmentPath, { id: this.environment.id, - name: this.formEnvironment.name, external_url: this.formEnvironment.externalUrl, }) .then(({ data: { path } }) => visitUrl(path)) diff --git a/app/assets/javascripts/environments/components/environment_form.vue b/app/assets/javascripts/environments/components/environment_form.vue index 6db8fe24e72..1d1d8d61b66 100644 --- a/app/assets/javascripts/environments/components/environment_form.vue +++ b/app/assets/javascripts/environments/components/environment_form.vue @@ -39,12 +39,17 @@ export default { ), nameLabel: __('Name'), nameFeedback: __('This field is required'), + nameDisabledHelp: __("You cannot rename an environment after it's created."), + nameDisabledLinkText: __('How do I rename an environment?'), urlLabel: __('External URL'), urlFeedback: __('The URL should start with http:// or https://'), save: __('Save'), cancel: __('Cancel'), }, helpPagePath: helpPagePath('ci/environments/index.md'), + renamingDisabledHelpPagePath: helpPagePath('ci/environments/index.md', { + anchor: 'rename-an-environment', + }), data() { return { visited: { @@ -54,6 +59,9 @@ export default { }; }, computed: { + isNameDisabled() { + return Boolean(this.environment.id); + }, valid() { return { name: this.visited.name && this.environment.name !== '', @@ -102,10 +110,17 @@ export default { :state="valid.name" :invalid-feedback="$options.i18n.nameFeedback" > + <template v-if="isNameDisabled" #description> + {{ $options.i18n.nameDisabledHelp }} + <gl-link :href="$options.renamingDisabledHelpPagePath" target="_blank"> + {{ $options.i18n.nameDisabledLinkText }} + </gl-link> + </template> <gl-form-input id="environment_name" :value="environment.name" :state="valid.name" + :disabled="isNameDisabled" name="environment[name]" required @input="onChange({ ...environment, name: $event })" diff --git a/app/assets/javascripts/environments/components/environment_item.vue b/app/assets/javascripts/environments/components/environment_item.vue index 897f6ce393e..d12863ee742 100644 --- a/app/assets/javascripts/environments/components/environment_item.vue +++ b/app/assets/javascripts/environments/components/environment_item.vue @@ -1,6 +1,5 @@ <script> -/* eslint-disable @gitlab/vue-require-i18n-strings */ -import { GlTooltipDirective, GlIcon, GlLink } from '@gitlab/ui'; +import { GlTooltipDirective, GlIcon, GlLink, GlSprintf } from '@gitlab/ui'; import { isEmpty } from 'lodash'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { __, s__, sprintf } from '~/locale'; @@ -32,6 +31,7 @@ export default { ExternalUrlComponent, GlIcon, GlLink, + GlSprintf, MonitoringButtonComponent, PinComponent, DeleteComponent, @@ -48,12 +48,6 @@ export default { mixins: [timeagoMixin], props: { - canReadEnvironment: { - type: Boolean, - required: false, - default: false, - }, - model: { type: Object, required: true, @@ -647,14 +641,17 @@ export default { </span> <span v-if="!isFolder && deploymentHasUser" class="text-break-word"> - by - <user-avatar-link - :link-href="deploymentUser.web_url" - :img-src="deploymentUser.avatar_url" - :img-alt="userImageAltDescription" - :tooltip-text="deploymentUser.username" - class="js-deploy-user-container float-none" - /> + <gl-sprintf :message="s__('Environments|by %{avatar}')"> + <template #avatar> + <user-avatar-link + :link-href="deploymentUser.web_url" + :img-src="deploymentUser.avatar_url" + :img-alt="userImageAltDescription" + :tooltip-text="deploymentUser.username" + class="js-deploy-user-container float-none" + /> + </template> + </gl-sprintf> </span> <div v-if="showNoDeployments" class="commit-title table-mobile-content"> @@ -743,13 +740,16 @@ export default { </div> <div class="gl-display-flex"> <span v-if="upcomingDeployment.user" class="text-break-word"> - by - <user-avatar-link - :link-href="upcomingDeployment.user.web_url" - :img-src="upcomingDeployment.user.avatar_url" - :img-alt="upcomingDeploymentUserImageAltDescription" - :tooltip-text="upcomingDeployment.user.username" - /> + <gl-sprintf :message="s__('Environments|by %{avatar}')"> + <template #avatar> + <user-avatar-link + :link-href="upcomingDeployment.user.web_url" + :img-src="upcomingDeployment.user.avatar_url" + :img-alt="upcomingDeploymentUserImageAltDescription" + :tooltip-text="upcomingDeployment.user.username" + /> + </template> + </gl-sprintf> </span> </div> </div> @@ -784,14 +784,14 @@ export default { /> <external-url-component - v-if="externalURL && canReadEnvironment" + v-if="externalURL" :external-url="externalURL" data-track-action="click_button" data-track-label="environment_url" /> <monitoring-button-component - v-if="monitoringUrl && canReadEnvironment" + v-if="monitoringUrl" :monitoring-url="monitoringUrl" data-track-action="click_button" data-track-label="environment_monitoring" diff --git a/app/assets/javascripts/environments/components/environments_app.vue b/app/assets/javascripts/environments/components/environments_app.vue index 105315dcf51..acc16ecd874 100644 --- a/app/assets/javascripts/environments/components/environments_app.vue +++ b/app/assets/javascripts/environments/components/environments_app.vue @@ -1,9 +1,7 @@ <script> -import { GlBadge, GlButton, GlModalDirective, GlTab, GlTabs, GlAlert } from '@gitlab/ui'; +import { GlBadge, GlButton, GlModalDirective, GlTab, GlTabs } from '@gitlab/ui'; import createFlash from '~/flash'; -import { setCookie, getCookie, parseBoolean } from '~/lib/utils/common_utils'; import { s__ } from '~/locale'; -import { ENVIRONMENTS_SURVEY_DISMISSED_COOKIE_NAME } from '../constants'; import eventHub from '../event_hub'; import environmentsMixin from '../mixins/environments_mixin'; import EnvironmentsPaginationApiMixin from '../mixins/environments_pagination_api_mixin'; @@ -17,12 +15,6 @@ export default { i18n: { newEnvironmentButtonLabel: s__('Environments|New environment'), reviewAppButtonLabel: s__('Environments|Enable review app'), - surveyAlertTitle: s__('Environments|Help us improve environments'), - surveyAlertText: s__( - 'Environments|Your feedback helps GitLab make environments better for you and other users. Participate and enter a sweepstake to win a USD 30 gift card.', - ), - surveyAlertButtonLabel: s__('Environments|Take the survey'), - surveyDismissButtonLabel: s__('Environments|Dismiss'), }, modal: { id: 'enable-review-app-info', @@ -33,7 +25,6 @@ export default { EnableReviewAppModal, GlBadge, GlButton, - GlAlert, GlTab, GlTabs, StopEnvironmentModal, @@ -52,10 +43,6 @@ export default { type: Boolean, required: true, }, - canReadEnvironment: { - type: Boolean, - required: true, - }, newEnvironmentPath: { type: String, required: true, @@ -65,13 +52,6 @@ export default { required: true, }, }, - data() { - return { - environmentsSurveyAlertDismissed: parseBoolean( - getCookie(ENVIRONMENTS_SURVEY_DISMISSED_COOKIE_NAME), - ), - }; - }, created() { eventHub.$on('toggleFolder', this.toggleFolder); @@ -121,11 +101,6 @@ export default { openFolders.forEach((folder) => this.fetchChildEnvironments(folder)); } }, - - onSurveyAlertDismiss() { - setCookie(ENVIRONMENTS_SURVEY_DISMISSED_COOKIE_NAME, 'true'); - this.environmentsSurveyAlertDismissed = true; - }, }, }; </script> @@ -156,19 +131,6 @@ export default { >{{ $options.i18n.newEnvironmentButtonLabel }}</gl-button > </div> - <gl-alert - v-if="!environmentsSurveyAlertDismissed" - class="gl-my-4" - :title="$options.i18n.surveyAlertTitle" - :primary-button-text="$options.i18n.surveyAlertButtonLabel" - variant="info" - dismissible - :dismiss-label="$options.i18n.surveyDismissButtonLabel" - primary-button-link="https://gitlab.fra1.qualtrics.com/jfe/form/SV_a2xyFsAA4D0w0Jg" - @dismiss="onSurveyAlertDismiss" - > - {{ $options.i18n.surveyAlertText }} - </gl-alert> <gl-tabs :value="activeTab" content-class="gl-display-none"> <gl-tab v-for="(tab, idx) in tabs" @@ -210,7 +172,6 @@ export default { :is-loading="isLoading" :environments="state.environments" :pagination="state.paginationInformation" - :can-read-environment="canReadEnvironment" @onChangePage="onChangePage" > <template v-if="!isLoading && state.environments.length === 0" #empty-state> diff --git a/app/assets/javascripts/environments/components/environments_detail_header.vue b/app/assets/javascripts/environments/components/environments_detail_header.vue index 467c89fd8b8..d71b553a878 100644 --- a/app/assets/javascripts/environments/components/environments_detail_header.vue +++ b/app/assets/javascripts/environments/components/environments_detail_header.vue @@ -27,10 +27,6 @@ export default { type: Object, required: true, }, - canReadEnvironment: { - type: Boolean, - required: true, - }, canAdminEnvironment: { type: Boolean, required: true, @@ -84,7 +80,7 @@ export default { return this.environment.isAvailable && Boolean(this.environment.autoStopAt); }, shouldShowExternalUrlButton() { - return this.canReadEnvironment && Boolean(this.environment.externalUrl); + return Boolean(this.environment.externalUrl); }, shouldShowStopButton() { return this.canStopEnvironment && this.environment.isAvailable; @@ -138,7 +134,7 @@ export default { >{{ $options.i18n.externalButtonText }}</gl-button > <gl-button - v-if="canReadEnvironment" + v-if="shouldShowExternalUrlButton" data-testid="metrics-button" :href="metricsPath" :title="$options.i18n.metricsButtonTitle" diff --git a/app/assets/javascripts/environments/components/environments_table.vue b/app/assets/javascripts/environments/components/environments_table.vue index 61438872afc..f1c728b84fd 100644 --- a/app/assets/javascripts/environments/components/environments_table.vue +++ b/app/assets/javascripts/environments/components/environments_table.vue @@ -23,11 +23,6 @@ export default { required: true, default: () => [], }, - canReadEnvironment: { - type: Boolean, - required: false, - default: false, - }, }, data() { return { @@ -155,7 +150,6 @@ export default { <environment-item :key="`environment-item-${i}`" :model="model" - :can-read-environment="canReadEnvironment" :table-data="tableData" data-qa-selector="environment_item" /> @@ -191,7 +185,6 @@ export default { <environment-item :key="`environment-row-${i}-${index}`" :model="child" - :can-read-environment="canReadEnvironment" :table-data="tableData" data-qa-selector="environment_item" /> diff --git a/app/assets/javascripts/environments/constants.js b/app/assets/javascripts/environments/constants.js index a02e72dfa72..6d427bef4e6 100644 --- a/app/assets/javascripts/environments/constants.js +++ b/app/assets/javascripts/environments/constants.js @@ -38,5 +38,3 @@ export const CANARY_STATUS = { }; export const CANARY_UPDATE_MODAL = 'confirm-canary-change'; - -export const ENVIRONMENTS_SURVEY_DISMISSED_COOKIE_NAME = 'environments_survey_alert_dismissed'; diff --git a/app/assets/javascripts/environments/folder/environments_folder_bundle.js b/app/assets/javascripts/environments/folder/environments_folder_bundle.js index 1be9a4608cb..206381e0b7e 100644 --- a/app/assets/javascripts/environments/folder/environments_folder_bundle.js +++ b/app/assets/javascripts/environments/folder/environments_folder_bundle.js @@ -1,7 +1,6 @@ import Vue from 'vue'; import VueApollo from 'vue-apollo'; import createDefaultClient from '~/lib/graphql'; -import { parseBoolean } from '../../lib/utils/common_utils'; import Translate from '../../vue_shared/translate'; import environmentsFolderApp from './environments_folder_view.vue'; @@ -31,7 +30,6 @@ export default () => { endpoint: environmentsData.environmentsDataEndpoint, folderName: environmentsData.environmentsDataFolderName, cssContainerClass: environmentsData.cssClass, - canReadEnvironment: parseBoolean(environmentsData.environmentsDataCanReadEnvironment), }; }, render(createElement) { @@ -40,7 +38,6 @@ export default () => { endpoint: this.endpoint, folderName: this.folderName, cssContainerClass: this.cssContainerClass, - canReadEnvironment: this.canReadEnvironment, }, }); }, diff --git a/app/assets/javascripts/environments/folder/environments_folder_view.vue b/app/assets/javascripts/environments/folder/environments_folder_view.vue index 8070f3f12f8..3c608ad0ba9 100644 --- a/app/assets/javascripts/environments/folder/environments_folder_view.vue +++ b/app/assets/javascripts/environments/folder/environments_folder_view.vue @@ -30,10 +30,6 @@ export default { required: false, default: '', }, - canReadEnvironment: { - type: Boolean, - required: true, - }, }, methods: { successCallback(resp) { @@ -72,7 +68,6 @@ export default { :is-loading="isLoading" :environments="state.environments" :pagination="state.paginationInformation" - :can-read-environment="canReadEnvironment" @onChangePage="onChangePage" /> </div> diff --git a/app/assets/javascripts/environments/index.js b/app/assets/javascripts/environments/index.js index b99872f7a6c..5e33923d518 100644 --- a/app/assets/javascripts/environments/index.js +++ b/app/assets/javascripts/environments/index.js @@ -9,7 +9,7 @@ Vue.use(Translate); Vue.use(VueApollo); const apolloProvider = new VueApollo({ - defaultClient: createDefaultClient(), + defaultClient: createDefaultClient({}, { assumeImmutableResults: true }), }); export default () => { @@ -32,7 +32,6 @@ export default () => { newEnvironmentPath: environmentsData.newEnvironmentPath, helpPagePath: environmentsData.helpPagePath, canCreateEnvironment: parseBoolean(environmentsData.canCreateEnvironment), - canReadEnvironment: parseBoolean(environmentsData.canReadEnvironment), }; }, render(createElement) { @@ -42,7 +41,6 @@ export default () => { newEnvironmentPath: this.newEnvironmentPath, helpPagePath: this.helpPagePath, canCreateEnvironment: this.canCreateEnvironment, - canReadEnvironment: this.canReadEnvironment, }, }); }, diff --git a/app/assets/javascripts/environments/mount_show.js b/app/assets/javascripts/environments/mount_show.js index f1c2dfec94b..6df4fad83f2 100644 --- a/app/assets/javascripts/environments/mount_show.js +++ b/app/assets/javascripts/environments/mount_show.js @@ -36,7 +36,6 @@ export const initHeader = () => { environment: this.environment, canDestroyEnvironment: dataset.canDestroyEnvironment, canUpdateEnvironment: dataset.canUpdateEnvironment, - canReadEnvironment: dataset.canReadEnvironment, canStopEnvironment: dataset.canStopEnvironment, canAdminEnvironment: dataset.canAdminEnvironment, cancelAutoStopPath: dataset.environmentCancelAutoStopPath, |