diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-10-06 18:08:33 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-10-06 18:08:33 +0300 |
commit | 4d922922a97e5ac6a1617aba00642ad7657d2727 (patch) | |
tree | 7d1756c03d9c7654c42071c6b252bb7af1c9f55b /app/assets/javascripts/releases | |
parent | 6ab9cdec264a9caf7e4eb5519fcae5ac65a18b15 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/releases')
9 files changed, 47 insertions, 297 deletions
diff --git a/app/assets/javascripts/releases/components/asset_links_form.vue b/app/assets/javascripts/releases/components/asset_links_form.vue index 07fab840067..331cc8ade6c 100644 --- a/app/assets/javascripts/releases/components/asset_links_form.vue +++ b/app/assets/javascripts/releases/components/asset_links_form.vue @@ -10,7 +10,6 @@ import { GlFormInput, GlFormSelect, } from '@gitlab/ui'; -import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import { DEFAULT_ASSET_LINK_TYPE, ASSET_LINK_TYPE } from '../constants'; import { s__ } from '~/locale'; @@ -26,7 +25,6 @@ export default { GlFormSelect, }, directives: { GlTooltip: GlTooltipDirective }, - mixins: [glFeatureFlagsMixin()], computed: { ...mapState('detail', ['release', 'releaseAssetsDocsPath']), ...mapGetters('detail', ['validationErrors']), @@ -195,7 +193,6 @@ export default { </gl-form-group> <gl-form-group - v-if="glFeatures.releaseAssetLinkType" class="link-type-field col-auto px-sm-2" :label="__('Type')" :label-for="`asset-type-${index}`" diff --git a/app/assets/javascripts/releases/components/release_block.vue b/app/assets/javascripts/releases/components/release_block.vue index 2629df08be7..7fee2bee6a0 100644 --- a/app/assets/javascripts/releases/components/release_block.vue +++ b/app/assets/javascripts/releases/components/release_block.vue @@ -11,7 +11,6 @@ import EvidenceBlock from './evidence_block.vue'; import ReleaseBlockAssets from './release_block_assets.vue'; import ReleaseBlockFooter from './release_block_footer.vue'; import ReleaseBlockHeader from './release_block_header.vue'; -import ReleaseBlockMetadata from './release_block_metadata.vue'; import ReleaseBlockMilestoneInfo from './release_block_milestone_info.vue'; export default { @@ -21,7 +20,6 @@ export default { ReleaseBlockAssets, ReleaseBlockFooter, ReleaseBlockHeader, - ReleaseBlockMetadata, ReleaseBlockMilestoneInfo, }, mixins: [glFeatureFlagsMixin()], @@ -57,19 +55,13 @@ export default { shouldShowEvidence() { return this.glFeatures.releaseEvidenceCollection; }, - shouldShowFooter() { - return this.glFeatures.releaseIssueSummary; - }, shouldRenderAssets() { return Boolean( this.assets.links.length || (this.assets.sources && this.assets.sources.length), ); }, - shouldRenderReleaseMetaData() { - return !this.glFeatures.releaseIssueSummary; - }, shouldRenderMilestoneInfo() { - return Boolean(this.glFeatures.releaseIssueSummary && !isEmpty(this.release.milestones)); + return Boolean(!isEmpty(this.release.milestones)); }, }, @@ -105,7 +97,6 @@ export default { <hr class="mb-3 mt-0" /> </div> - <release-block-metadata v-if="shouldRenderReleaseMetaData" :release="release" /> <release-block-assets v-if="shouldRenderAssets" :assets="assets" /> <evidence-block v-if="hasEvidence && shouldShowEvidence" :release="release" /> @@ -115,7 +106,6 @@ export default { </div> <release-block-footer - v-if="shouldShowFooter" class="card-footer" :commit="release.commit" :commit-path="release.commitPath" diff --git a/app/assets/javascripts/releases/components/release_block_assets.vue b/app/assets/javascripts/releases/components/release_block_assets.vue index 60d2b3adfc9..eb83d8657c0 100644 --- a/app/assets/javascripts/releases/components/release_block_assets.vue +++ b/app/assets/javascripts/releases/components/release_block_assets.vue @@ -1,7 +1,6 @@ <script> import { GlTooltipDirective, GlLink, GlButton, GlCollapse, GlIcon, GlBadge } from '@gitlab/ui'; import { difference, get } from 'lodash'; -import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import { ASSET_LINK_TYPE } from '../constants'; import { __, s__, sprintf } from '~/locale'; @@ -17,7 +16,6 @@ export default { directives: { GlTooltip: GlTooltipDirective, }, - mixins: [glFeatureFlagsMixin()], props: { assets: { type: Object, @@ -30,9 +28,6 @@ export default { }; }, computed: { - hasAssets() { - return Boolean(this.assets.count); - }, imageLinks() { return this.linksForType(ASSET_LINK_TYPE.IMAGE); }, @@ -95,94 +90,50 @@ export default { <template> <div class="card-text gl-mt-3"> - <template v-if="glFeatures.releaseAssetLinkType"> - <gl-button - data-testid="accordion-button" - variant="link" - class="gl-font-weight-bold" - @click="toggleAssetsExpansion" - > - <gl-icon - name="chevron-right" - class="gl-transition-medium" - :class="{ 'gl-rotate-90': isAssetsExpanded }" - /> - {{ __('Assets') }} - <gl-badge size="sm" variant="neutral" class="gl-display-inline-block">{{ - assets.count - }}</gl-badge> - </gl-button> - <gl-collapse v-model="isAssetsExpanded"> - <div class="gl-pl-6 gl-pt-3 js-assets-list"> - <template v-for="(section, index) in sections"> - <h5 v-if="section.title" :key="`section-header-${index}`" class="gl-mb-2"> - {{ section.title }} - </h5> - <ul :key="`section-body-${index}`" class="list-unstyled gl-m-0"> - <li v-for="link in section.links" :key="link.url" class="gl-display-flex"> - <gl-link - :href="link.directAssetUrl || link.url" - class="gl-display-flex gl-align-items-center gl-line-height-24" - > - <gl-icon - :name="section.iconName" - class="gl-mr-2 gl-flex-shrink-0 gl-flex-grow-0" - /> - {{ link.name }} - <gl-icon - v-if="link.external" - v-gl-tooltip - name="external-link" - :aria-label="$options.externalLinkTooltipText" - :title="$options.externalLinkTooltipText" - data-testid="external-link-indicator" - class="gl-ml-2 gl-flex-shrink-0 gl-flex-grow-0 gl-text-gray-400" - /> - </gl-link> - </li> - </ul> - </template> - </div> - </gl-collapse> - </template> - - <template v-else> - <b> - {{ __('Assets') }} - <span class="js-assets-count badge badge-pill">{{ assets.count }}</span> - </b> - - <ul v-if="assets.links.length" class="pl-0 mb-0 gl-mt-3 list-unstyled js-assets-list"> - <li v-for="link in assets.links" :key="link.name" class="gl-mb-3"> - <gl-link v-gl-tooltip.bottom :title="__('Download asset')" :href="link.directAssetUrl"> - <gl-icon name="package" class="align-middle gl-mr-2 align-text-bottom" /> - {{ link.name }} - <span v-if="link.external" data-testid="external-link-indicator">{{ - __('(external source)') - }}</span> - </gl-link> - </li> - </ul> - - <div v-if="hasAssets" class="dropdown"> - <button - type="button" - class="btn btn-link" - data-toggle="dropdown" - aria-haspopup="true" - aria-expanded="false" - > - <gl-icon name="doc-code" class="align-top gl-mr-2" /> - {{ __('Source code') }} - <gl-icon name="chevron-down" /> - </button> - - <div class="js-sources-dropdown dropdown-menu"> - <li v-for="asset in assets.sources" :key="asset.url"> - <gl-link :href="asset.url">{{ __('Download') }} {{ asset.format }}</gl-link> - </li> - </div> + <gl-button + data-testid="accordion-button" + variant="link" + class="gl-font-weight-bold" + @click="toggleAssetsExpansion" + > + <gl-icon + name="chevron-right" + class="gl-transition-medium" + :class="{ 'gl-rotate-90': isAssetsExpanded }" + /> + {{ __('Assets') }} + <gl-badge size="sm" variant="neutral" class="gl-display-inline-block">{{ + assets.count + }}</gl-badge> + </gl-button> + <gl-collapse v-model="isAssetsExpanded"> + <div class="gl-pl-6 gl-pt-3 js-assets-list"> + <template v-for="(section, index) in sections"> + <h5 v-if="section.title" :key="`section-header-${index}`" class="gl-mb-2"> + {{ section.title }} + </h5> + <ul :key="`section-body-${index}`" class="list-unstyled gl-m-0"> + <li v-for="link in section.links" :key="link.url" class="gl-display-flex"> + <gl-link + :href="link.directAssetUrl || link.url" + class="gl-display-flex gl-align-items-center gl-line-height-24" + > + <gl-icon :name="section.iconName" class="gl-mr-2 gl-flex-shrink-0 gl-flex-grow-0" /> + {{ link.name }} + <gl-icon + v-if="link.external" + v-gl-tooltip + name="external-link" + :aria-label="$options.externalLinkTooltipText" + :title="$options.externalLinkTooltipText" + data-testid="external-link-indicator" + class="gl-ml-2 gl-flex-shrink-0 gl-flex-grow-0 gl-text-gray-400" + /> + </gl-link> + </li> + </ul> + </template> </div> - </template> + </gl-collapse> </div> </template> diff --git a/app/assets/javascripts/releases/components/release_block_author.vue b/app/assets/javascripts/releases/components/release_block_author.vue deleted file mode 100644 index 72c578068cd..00000000000 --- a/app/assets/javascripts/releases/components/release_block_author.vue +++ /dev/null @@ -1,42 +0,0 @@ -<script> -import { GlSprintf } from '@gitlab/ui'; -import { __, sprintf } from '~/locale'; -import UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue'; - -export default { - name: 'ReleaseBlockAuthor', - components: { - GlSprintf, - UserAvatarLink, - }, - props: { - author: { - type: Object, - required: true, - }, - }, - computed: { - userImageAltDescription() { - return this.author && this.author.username - ? sprintf(__("%{username}'s avatar"), { username: this.author.username }) - : null; - }, - }, -}; -</script> - -<template> - <div class="d-flex"> - <gl-sprintf :message="__('by %{user}')"> - <template #user> - <user-avatar-link - class="gl-ml-2" - :link-href="author.webUrl" - :img-src="author.avatarUrl" - :img-alt="userImageAltDescription" - :tooltip-text="author.username" - /> - </template> - </gl-sprintf> - </div> -</template> diff --git a/app/assets/javascripts/releases/components/release_block_metadata.vue b/app/assets/javascripts/releases/components/release_block_metadata.vue deleted file mode 100644 index 2247b4c0064..00000000000 --- a/app/assets/javascripts/releases/components/release_block_metadata.vue +++ /dev/null @@ -1,90 +0,0 @@ -<script> -import { GlTooltipDirective, GlLink, GlIcon } from '@gitlab/ui'; -import { __, sprintf } from '~/locale'; -import timeagoMixin from '~/vue_shared/mixins/timeago'; -import ReleaseBlockAuthor from './release_block_author.vue'; -import ReleaseBlockMilestones from './release_block_milestones.vue'; - -export default { - name: 'ReleaseBlockMetadata', - components: { - GlIcon, - GlLink, - ReleaseBlockAuthor, - ReleaseBlockMilestones, - }, - directives: { - GlTooltip: GlTooltipDirective, - }, - mixins: [timeagoMixin], - props: { - release: { - type: Object, - required: true, - }, - }, - computed: { - author() { - return this.release.author; - }, - commit() { - return this.release.commit || {}; - }, - commitUrl() { - return this.release.commitPath; - }, - hasAuthor() { - return Boolean(this.author); - }, - releasedTimeAgo() { - const now = new Date(); - const isFuture = now < new Date(this.release.releasedAt); - const time = this.timeFormatted(this.release.releasedAt); - return isFuture - ? sprintf(__('will be released %{time}'), { time }) - : sprintf(__('released %{time}'), { time }); - }, - shouldRenderMilestones() { - return Boolean(this.release.milestones?.length); - }, - tagUrl() { - return this.release.tagPath; - }, - }, -}; -</script> - -<template> - <div class="card-subtitle d-flex flex-wrap text-secondary"> - <div class="gl-mr-3"> - <gl-icon name="commit" class="align-middle" /> - <gl-link v-if="commitUrl" v-gl-tooltip.bottom :title="commit.title" :href="commitUrl"> - {{ commit.shortId }} - </gl-link> - <span v-else v-gl-tooltip.bottom :title="commit.title">{{ commit.shortId }}</span> - </div> - - <div class="gl-mr-3"> - <gl-icon name="tag" class="align-middle" /> - <gl-link v-if="tagUrl" v-gl-tooltip.bottom :title="__('Tag')" :href="tagUrl"> - {{ release.tagName }} - </gl-link> - <span v-else v-gl-tooltip.bottom :title="__('Tag')">{{ release.tagName }}</span> - </div> - - <release-block-milestones v-if="shouldRenderMilestones" :milestones="release.milestones" /> - - <div class="gl-mr-2"> - • - <span - v-gl-tooltip.bottom - class="js-release-date-info" - :title="tooltipTitle(release.releasedAt)" - > - {{ releasedTimeAgo }} - </span> - </div> - - <release-block-author v-if="hasAuthor" :author="author" /> - </div> -</template> diff --git a/app/assets/javascripts/releases/components/release_block_milestones.vue b/app/assets/javascripts/releases/components/release_block_milestones.vue deleted file mode 100644 index 1da683764b3..00000000000 --- a/app/assets/javascripts/releases/components/release_block_milestones.vue +++ /dev/null @@ -1,50 +0,0 @@ -<script> -import { GlTooltipDirective, GlLink, GlIcon } from '@gitlab/ui'; -import { n__ } from '~/locale'; - -export default { - name: 'ReleaseBlockMilestones', - components: { - GlLink, - GlIcon, - }, - directives: { - GlTooltip: GlTooltipDirective, - }, - props: { - milestones: { - type: Array, - required: true, - }, - }, - computed: { - labelText() { - return n__('Milestone', 'Milestones', this.milestones.length); - }, - }, -}; -</script> - -<template> - <div> - <div class="js-milestone-list-label"> - <gl-icon name="flag" class="align-middle" /> - <span class="js-label-text">{{ labelText }}</span> - </div> - - <template v-for="(milestone, index) in milestones"> - <gl-link - :key="milestone.id" - v-gl-tooltip - :title="milestone.description" - :href="milestone.webUrl" - class="mx-1 js-milestone-link" - > - {{ milestone.title }} - </gl-link> - <template v-if="index !== milestones.length - 1"> - • - </template> - </template> - </div> -</template> diff --git a/app/assets/javascripts/releases/mount_edit.js b/app/assets/javascripts/releases/mount_edit.js index 623b18591a0..2f4b0e64e36 100644 --- a/app/assets/javascripts/releases/mount_edit.js +++ b/app/assets/javascripts/releases/mount_edit.js @@ -13,9 +13,6 @@ export default () => { modules: { detail: createDetailModule(el.dataset), }, - featureFlags: { - releaseShowPage: Boolean(gon.features?.releaseShowPage), - }, }); return new Vue({ diff --git a/app/assets/javascripts/releases/mount_new.js b/app/assets/javascripts/releases/mount_new.js index 10725e47740..5c481498ffb 100644 --- a/app/assets/javascripts/releases/mount_new.js +++ b/app/assets/javascripts/releases/mount_new.js @@ -13,9 +13,6 @@ export default () => { modules: { detail: createDetailModule(el.dataset), }, - featureFlags: { - releaseShowPage: Boolean(gon.features?.releaseShowPage), - }, }); return new Vue({ diff --git a/app/assets/javascripts/releases/stores/modules/detail/actions.js b/app/assets/javascripts/releases/stores/modules/detail/actions.js index 2f298faf37e..4b1e4fdaad6 100644 --- a/app/assets/javascripts/releases/stores/modules/detail/actions.js +++ b/app/assets/javascripts/releases/stores/modules/detail/actions.js @@ -68,9 +68,9 @@ export const removeAssetLink = ({ commit }, linkIdToRemove) => { commit(types.REMOVE_ASSET_LINK, linkIdToRemove); }; -export const receiveSaveReleaseSuccess = ({ commit, state, rootState }, release) => { +export const receiveSaveReleaseSuccess = ({ commit }, release) => { commit(types.RECEIVE_SAVE_RELEASE_SUCCESS); - redirectTo(rootState.featureFlags.releaseShowPage ? release._links.self : state.releasesPagePath); + redirectTo(release._links.self); }; export const saveRelease = ({ commit, dispatch, getters }) => { |