summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/releases
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-08 12:06:32 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-08 12:06:32 +0000
commit61f0c58946ebac453b55a657cd4be1ac50a01e11 (patch)
tree7b164c1cc9dc8ab1d100ca4fe90decf6d72e984b /app/assets/javascripts/releases
parentd23b2a0871f3ca507aafa949e0314625f1f0c6a7 (diff)
downloadgitlab-ce-61f0c58946ebac453b55a657cd4be1ac50a01e11.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/releases')
-rw-r--r--app/assets/javascripts/releases/list/components/release_block.vue18
-rw-r--r--app/assets/javascripts/releases/list/components/release_block_footer.vue112
2 files changed, 129 insertions, 1 deletions
diff --git a/app/assets/javascripts/releases/list/components/release_block.vue b/app/assets/javascripts/releases/list/components/release_block.vue
index 1b78901d771..2b6aa6aeff9 100644
--- a/app/assets/javascripts/releases/list/components/release_block.vue
+++ b/app/assets/javascripts/releases/list/components/release_block.vue
@@ -10,6 +10,7 @@ import { slugify } from '~/lib/utils/text_utility';
import { getLocationHash } from '~/lib/utils/url_utility';
import { scrollToElement } from '~/lib/utils/common_utils';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
+import ReleaseBlockFooter from './release_block_footer.vue';
export default {
name: 'ReleaseBlock',
@@ -19,6 +20,7 @@ export default {
GlButton,
Icon,
UserAvatarLink,
+ ReleaseBlockFooter,
},
directives: {
GlTooltip: GlTooltipDirective,
@@ -79,6 +81,9 @@ export default {
this.glFeatures.releaseEditPage && this.release._links && this.release._links.edit_url,
);
},
+ shouldShowFooter() {
+ return this.glFeatures.releaseIssueSummary;
+ },
},
mounted() {
const hash = getLocationHash();
@@ -164,7 +169,7 @@ export default {
by
<user-avatar-link
class="prepend-left-4"
- :link-href="author.path"
+ :link-href="author.web_url"
:img-src="author.avatar_url"
:img-alt="userImageAltDescription"
:tooltip-text="author.username"
@@ -216,5 +221,16 @@ export default {
<div v-html="release.description_html"></div>
</div>
</div>
+
+ <release-block-footer
+ v-if="shouldShowFooter"
+ class="card-footer"
+ :commit="release.commit"
+ :commit-path="release.commit_path"
+ :tag-name="release.tag_name"
+ :tag-path="release.tag_path"
+ :author="release.author"
+ :released-at="release.released_at"
+ />
</div>
</template>
diff --git a/app/assets/javascripts/releases/list/components/release_block_footer.vue b/app/assets/javascripts/releases/list/components/release_block_footer.vue
new file mode 100644
index 00000000000..5659f0e530b
--- /dev/null
+++ b/app/assets/javascripts/releases/list/components/release_block_footer.vue
@@ -0,0 +1,112 @@
+<script>
+import Icon from '~/vue_shared/components/icon.vue';
+import { GlTooltipDirective, GlLink } from '@gitlab/ui';
+import UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue';
+import timeagoMixin from '~/vue_shared/mixins/timeago';
+import { __, sprintf } from '~/locale';
+
+export default {
+ name: 'ReleaseBlockFooter',
+ components: {
+ Icon,
+ GlLink,
+ UserAvatarLink,
+ },
+ directives: {
+ GlTooltip: GlTooltipDirective,
+ },
+ mixins: [timeagoMixin],
+ props: {
+ commit: {
+ type: Object,
+ required: false,
+ default: null,
+ },
+ commitPath: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ tagName: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ tagPath: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ author: {
+ type: Object,
+ required: false,
+ default: null,
+ },
+ releasedAt: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ },
+ computed: {
+ releasedAtTimeAgo() {
+ return this.timeFormated(this.releasedAt);
+ },
+ userImageAltDescription() {
+ return this.author && this.author.username
+ ? sprintf(__("%{username}'s avatar"), { username: this.author.username })
+ : null;
+ },
+ },
+};
+</script>
+<template>
+ <div>
+ <div v-if="commit" class="float-left mr-3 d-flex align-items-center js-commit-info">
+ <icon ref="commitIcon" name="commit" class="mr-1" />
+ <div v-gl-tooltip.bottom :title="commit.title">
+ <gl-link v-if="commitPath" :href="commitPath">
+ {{ commit.short_id }}
+ </gl-link>
+ <span v-else>{{ commit.short_id }}</span>
+ </div>
+ </div>
+
+ <div v-if="tagName" class="float-left mr-3 d-flex align-items-center js-tag-info">
+ <icon name="tag" class="mr-1" />
+ <div v-gl-tooltip.bottom :title="__('Tag')">
+ <gl-link v-if="tagPath" :href="tagPath">
+ {{ tagName }}
+ </gl-link>
+ <span v-else>{{ tagName }}</span>
+ </div>
+ </div>
+
+ <div
+ v-if="releasedAt || author"
+ class="float-left d-flex align-items-center js-author-date-info"
+ >
+ <span class="text-secondary">{{ __('Created') }}&nbsp;</span>
+ <template v-if="releasedAt">
+ <span
+ v-gl-tooltip.bottom
+ :title="tooltipTitle(releasedAt)"
+ class="text-secondary flex-shrink-0"
+ >
+ {{ releasedAtTimeAgo }}&nbsp;
+ </span>
+ </template>
+
+ <div v-if="author" class="d-flex">
+ <span class="text-secondary">{{ __('by') }}&nbsp;</span>
+ <user-avatar-link
+ :link-href="author.web_url"
+ :img-src="author.avatar_url"
+ :img-alt="userImageAltDescription"
+ :tooltip-text="author.username"
+ tooltip-placement="bottom"
+ />
+ </div>
+ </div>
+ </div>
+</template>