Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/releases')
-rw-r--r--app/assets/javascripts/releases/components/app_index.vue4
-rw-r--r--app/assets/javascripts/releases/components/app_show.vue4
-rw-r--r--app/assets/javascripts/releases/components/tag_field_new.vue92
-rw-r--r--app/assets/javascripts/releases/stores/modules/edit_new/actions.js17
-rw-r--r--app/assets/javascripts/releases/stores/modules/edit_new/getters.js1
-rw-r--r--app/assets/javascripts/releases/stores/modules/edit_new/mutation_types.js1
-rw-r--r--app/assets/javascripts/releases/stores/modules/edit_new/mutations.js4
-rw-r--r--app/assets/javascripts/releases/stores/modules/edit_new/state.js2
8 files changed, 93 insertions, 32 deletions
diff --git a/app/assets/javascripts/releases/components/app_index.vue b/app/assets/javascripts/releases/components/app_index.vue
index d63a83d1a08..6dc8240e680 100644
--- a/app/assets/javascripts/releases/components/app_index.vue
+++ b/app/assets/javascripts/releases/components/app_index.vue
@@ -1,6 +1,6 @@
<script>
import { GlButton } from '@gitlab/ui';
-import createFlash from '~/flash';
+import { createAlert } from '~/flash';
import { historyPushState } from '~/lib/utils/common_utils';
import { scrollUp } from '~/lib/utils/scroll_utils';
import { setUrlParams, getParameterByName } from '~/lib/utils/url_utility';
@@ -71,7 +71,7 @@ export default {
error(error) {
this.fullRequestError = true;
- createFlash({
+ createAlert({
message: this.$options.i18n.errorMessage,
captureError: true,
error,
diff --git a/app/assets/javascripts/releases/components/app_show.vue b/app/assets/javascripts/releases/components/app_show.vue
index fdb0f99b735..7147cfa01c8 100644
--- a/app/assets/javascripts/releases/components/app_show.vue
+++ b/app/assets/javascripts/releases/components/app_show.vue
@@ -1,5 +1,5 @@
<script>
-import createFlash from '~/flash';
+import { createAlert } from '~/flash';
import { s__ } from '~/locale';
import oneReleaseQuery from '../graphql/queries/one_release.query.graphql';
import { convertGraphQLRelease } from '../util';
@@ -51,7 +51,7 @@ export default {
},
methods: {
showFlash(error) {
- createFlash({
+ createAlert({
message: s__('Release|Something went wrong while getting the release details.'),
captureError: true,
error,
diff --git a/app/assets/javascripts/releases/components/tag_field_new.vue b/app/assets/javascripts/releases/components/tag_field_new.vue
index 08b727dcca0..2ddab5dddea 100644
--- a/app/assets/javascripts/releases/components/tag_field_new.vue
+++ b/app/assets/javascripts/releases/components/tag_field_new.vue
@@ -1,8 +1,15 @@
<script>
-import { GlFormGroup, GlDropdownItem, GlSprintf } from '@gitlab/ui';
+import {
+ GlCollapse,
+ GlLink,
+ GlFormGroup,
+ GlFormTextarea,
+ GlDropdownItem,
+ GlSprintf,
+} from '@gitlab/ui';
import { uniqueId } from 'lodash';
import { mapState, mapActions, mapGetters } from 'vuex';
-import { __ } from '~/locale';
+import { __, s__ } from '~/locale';
import RefSelector from '~/ref/components/ref_selector.vue';
import { REF_TYPE_TAGS } from '~/ref/constants';
import FormFieldContainer from './form_field_container.vue';
@@ -10,7 +17,10 @@ import FormFieldContainer from './form_field_container.vue';
export default {
name: 'TagFieldNew',
components: {
+ GlCollapse,
GlFormGroup,
+ GlFormTextarea,
+ GlLink,
RefSelector,
FormFieldContainer,
GlDropdownItem,
@@ -41,6 +51,14 @@ export default {
this.updateShowCreateFrom(false);
},
},
+ tagMessage: {
+ get() {
+ return this.release.tagMessage;
+ },
+ set(tagMessage) {
+ this.updateReleaseTagMessage(tagMessage);
+ },
+ },
createFromModel: {
get() {
return this.createFrom;
@@ -70,6 +88,7 @@ export default {
methods: {
...mapActions('editNew', [
'updateReleaseTagName',
+ 'updateReleaseTagMessage',
'updateCreateFrom',
'fetchTagNotes',
'updateShowCreateFrom',
@@ -113,9 +132,20 @@ export default {
noRefSelected: __('No source selected'),
searchPlaceholder: __('Search branches, tags, and commits'),
dropdownHeader: __('Select source'),
+ label: __('Create from'),
+ description: __('Existing branch name, tag, or commit SHA'),
+ },
+ annotatedTag: {
+ label: s__('CreateGitTag|Set tag message'),
+ description: s__(
+ 'CreateGitTag|Add a message to the tag. Leaving this blank creates a %{linkStart}lightweight tag%{linkEnd}.',
+ ),
},
},
+ tagMessageId: uniqueId('tag-message-'),
+
tagNameEnabledRefTypes: [REF_TYPE_TAGS],
+ gitTagDocsLink: 'https://git-scm.com/book/en/v2/Git-Basics-Tagging/',
};
</script>
<template>
@@ -156,23 +186,45 @@ export default {
</ref-selector>
</form-field-container>
</gl-form-group>
- <gl-form-group
- v-if="showCreateFrom"
- :label="__('Create from')"
- :label-for="createFromSelectorId"
- data-testid="create-from-field"
- >
- <form-field-container>
- <ref-selector
- :id="createFromSelectorId"
- v-model="createFromModel"
- :project-id="projectId"
- :translations="$options.translations.createFrom"
- />
- </form-field-container>
- <template #description>
- {{ __('Existing branch name, tag, or commit SHA') }}
- </template>
- </gl-form-group>
+ <gl-collapse :visible="showCreateFrom">
+ <div class="gl-pl-6 gl-border-l-1 gl-border-l-solid gl-border-gray-300">
+ <gl-form-group
+ v-if="showCreateFrom"
+ :label="$options.translations.createFrom.label"
+ :label-for="createFromSelectorId"
+ data-testid="create-from-field"
+ >
+ <form-field-container>
+ <ref-selector
+ :id="createFromSelectorId"
+ v-model="createFromModel"
+ :project-id="projectId"
+ :translations="$options.translations.createFrom"
+ />
+ </form-field-container>
+ <template #description>{{ $options.translations.createFrom.description }}</template>
+ </gl-form-group>
+ <gl-form-group
+ v-if="showCreateFrom"
+ :label="$options.translations.annotatedTag.label"
+ :label-for="$options.tagMessageId"
+ data-testid="annotated-tag-message-field"
+ >
+ <gl-form-textarea :id="$options.tagMessageId" v-model="tagMessage" />
+ <template #description>
+ <gl-sprintf :message="$options.translations.annotatedTag.description">
+ <template #link="{ content }">
+ <gl-link
+ :href="$options.gitTagDocsLink"
+ rel="noopener noreferrer"
+ target="_blank"
+ >{{ content }}</gl-link
+ >
+ </template>
+ </gl-sprintf>
+ </template>
+ </gl-form-group>
+ </div>
+ </gl-collapse>
</div>
</template>
diff --git a/app/assets/javascripts/releases/stores/modules/edit_new/actions.js b/app/assets/javascripts/releases/stores/modules/edit_new/actions.js
index 669e5928143..42ceed81c00 100644
--- a/app/assets/javascripts/releases/stores/modules/edit_new/actions.js
+++ b/app/assets/javascripts/releases/stores/modules/edit_new/actions.js
@@ -1,5 +1,5 @@
import { getTag } from '~/rest_api';
-import createFlash from '~/flash';
+import { createAlert } from '~/flash';
import { redirectTo } from '~/lib/utils/url_utility';
import { s__ } from '~/locale';
import createReleaseMutation from '~/releases/graphql/mutations/create_release.mutation.graphql';
@@ -48,7 +48,7 @@ export const fetchRelease = async ({ commit, state }) => {
commit(types.RECEIVE_RELEASE_SUCCESS, release);
} catch (error) {
commit(types.RECEIVE_RELEASE_ERROR, error);
- createFlash({
+ createAlert({
message: s__('Release|Something went wrong while getting the release details.'),
});
}
@@ -57,6 +57,9 @@ export const fetchRelease = async ({ commit, state }) => {
export const updateReleaseTagName = ({ commit }, tagName) =>
commit(types.UPDATE_RELEASE_TAG_NAME, tagName);
+export const updateReleaseTagMessage = ({ commit }, tagMessage) =>
+ commit(types.UPDATE_RELEASE_TAG_MESSAGE, tagMessage);
+
export const updateCreateFrom = ({ commit }, createFrom) =>
commit(types.UPDATE_CREATE_FROM, createFrom);
@@ -133,11 +136,11 @@ export const createRelease = async ({ commit, dispatch, getters }) => {
} catch (error) {
commit(types.RECEIVE_SAVE_RELEASE_ERROR, error);
if (error instanceof GraphQLError) {
- createFlash({
+ createAlert({
message: error.message,
});
} else {
- createFlash({
+ createAlert({
message: s__('Release|Something went wrong while creating a new release.'),
});
}
@@ -219,7 +222,7 @@ export const updateRelease = async ({ commit, dispatch, state, getters }) => {
dispatch('receiveSaveReleaseSuccess', state.release._links.self);
} catch (error) {
commit(types.RECEIVE_SAVE_RELEASE_ERROR, error);
- createFlash({
+ createAlert({
message: s__('Release|Something went wrong while saving the release details.'),
});
}
@@ -233,7 +236,7 @@ export const fetchTagNotes = ({ commit, state }, tagName) => {
commit(types.RECEIVE_TAG_NOTES_SUCCESS, data);
})
.catch((error) => {
- createFlash({
+ createAlert({
message: s__('Release|Unable to fetch the tag notes.'),
});
@@ -266,7 +269,7 @@ export const deleteRelease = ({ commit, getters, dispatch, state }) => {
})
.catch((error) => {
commit(types.RECEIVE_SAVE_RELEASE_ERROR, error);
- createFlash({
+ createAlert({
message: s__('Release|Something went wrong while deleting the release.'),
});
});
diff --git a/app/assets/javascripts/releases/stores/modules/edit_new/getters.js b/app/assets/javascripts/releases/stores/modules/edit_new/getters.js
index ccca9ca8250..0d77095d099 100644
--- a/app/assets/javascripts/releases/stores/modules/edit_new/getters.js
+++ b/app/assets/javascripts/releases/stores/modules/edit_new/getters.js
@@ -145,6 +145,7 @@ export const releaseCreateMutatationVariables = (state, getters) => {
input: {
...getters.releaseUpdateMutatationVariables.input,
ref: state.createFrom,
+ tagMessage: state.release.tagMessage,
assets: {
links: getters.releaseLinksToCreate.map(({ name, url, linkType }) => ({
name: name.trim(),
diff --git a/app/assets/javascripts/releases/stores/modules/edit_new/mutation_types.js b/app/assets/javascripts/releases/stores/modules/edit_new/mutation_types.js
index 0ef017f4eb4..e52eccd6a21 100644
--- a/app/assets/javascripts/releases/stores/modules/edit_new/mutation_types.js
+++ b/app/assets/javascripts/releases/stores/modules/edit_new/mutation_types.js
@@ -5,6 +5,7 @@ export const RECEIVE_RELEASE_SUCCESS = 'RECEIVE_RELEASE_SUCCESS';
export const RECEIVE_RELEASE_ERROR = 'RECEIVE_RELEASE_ERROR';
export const UPDATE_RELEASE_TAG_NAME = 'UPDATE_RELEASE_TAG_NAME';
+export const UPDATE_RELEASE_TAG_MESSAGE = 'UPDATE_RELEASE_TAG_MESSAGE';
export const UPDATE_CREATE_FROM = 'UPDATE_CREATE_FROM';
export const UPDATE_SHOW_CREATE_FROM = 'UPDATE_SHOW_CREATE_FROM';
export const UPDATE_RELEASE_TITLE = 'UPDATE_RELEASE_TITLE';
diff --git a/app/assets/javascripts/releases/stores/modules/edit_new/mutations.js b/app/assets/javascripts/releases/stores/modules/edit_new/mutations.js
index 34361f84a5a..f80e75501c9 100644
--- a/app/assets/javascripts/releases/stores/modules/edit_new/mutations.js
+++ b/app/assets/javascripts/releases/stores/modules/edit_new/mutations.js
@@ -10,6 +10,7 @@ export default {
[types.INITIALIZE_EMPTY_RELEASE](state) {
state.release = {
tagName: state.tagName,
+ tagMessage: '',
name: '',
description: '',
milestones: [],
@@ -40,6 +41,9 @@ export default {
[types.UPDATE_RELEASE_TAG_NAME](state, tagName) {
state.release.tagName = tagName;
},
+ [types.UPDATE_RELEASE_TAG_MESSAGE](state, tagMessage) {
+ state.release.tagMessage = tagMessage;
+ },
[types.UPDATE_CREATE_FROM](state, createFrom) {
state.createFrom = createFrom;
},
diff --git a/app/assets/javascripts/releases/stores/modules/edit_new/state.js b/app/assets/javascripts/releases/stores/modules/edit_new/state.js
index 11a2f9df59b..3112becfa9e 100644
--- a/app/assets/javascripts/releases/stores/modules/edit_new/state.js
+++ b/app/assets/javascripts/releases/stores/modules/edit_new/state.js
@@ -37,7 +37,7 @@ export default ({
* When creating a new release, this is the default from the URL
*/
tagName,
- showCreateFrom: !tagName,
+ showCreateFrom: false,
defaultBranch,
createFrom: defaultBranch,