diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-08 15:11:10 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-08 15:11:10 +0300 |
commit | af97e4dd4beb0ba1aa0cb3c31df413333cbce77d (patch) | |
tree | 499b6ca6ce2881fe7c0449d680e1c45dbc4e26c0 /app/assets | |
parent | d4c5231ca2df8cb4aa919c5bfa2dd570de32c0c3 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets')
12 files changed, 51 insertions, 127 deletions
diff --git a/app/assets/javascripts/cycle_analytics/constants.js b/app/assets/javascripts/cycle_analytics/constants.js index c1be2ce7096..c205aa1e831 100644 --- a/app/assets/javascripts/cycle_analytics/constants.js +++ b/app/assets/javascripts/cycle_analytics/constants.js @@ -44,7 +44,7 @@ export const METRICS_POPOVER_CONTENT = { }, 'cycle-time': { description: s__( - 'ValueStreamAnalytics|Median time from issue first merge request created to issue closed.', + "ValueStreamAnalytics|Median time from the earliest commit of a linked issue's merge request to when that issue is closed.", ), }, 'new-issue': { description: s__('ValueStreamAnalytics|Number of new issues created.') }, diff --git a/app/assets/javascripts/registry/explorer/components/details_page/tags_list_row.vue b/app/assets/javascripts/registry/explorer/components/details_page/tags_list_row.vue index 45eb2ce51e4..81546151acf 100644 --- a/app/assets/javascripts/registry/explorer/components/details_page/tags_list_row.vue +++ b/app/assets/javascripts/registry/explorer/components/details_page/tags_list_row.vue @@ -1,5 +1,12 @@ <script> -import { GlFormCheckbox, GlTooltipDirective, GlSprintf, GlIcon } from '@gitlab/ui'; +import { + GlFormCheckbox, + GlTooltipDirective, + GlSprintf, + GlIcon, + GlDropdown, + GlDropdownItem, +} from '@gitlab/ui'; import { formatDate } from '~/lib/utils/datetime_utility'; import { numberToHumanSize } from '~/lib/utils/number_utils'; import { n__ } from '~/locale'; @@ -11,22 +18,22 @@ import { REMOVE_TAG_BUTTON_TITLE, DIGEST_LABEL, CREATED_AT_LABEL, - REMOVE_TAG_BUTTON_DISABLE_TOOLTIP, PUBLISHED_DETAILS_ROW_TEXT, MANIFEST_DETAILS_ROW_TEST, CONFIGURATION_DETAILS_ROW_TEST, MISSING_MANIFEST_WARNING_TOOLTIP, NOT_AVAILABLE_TEXT, NOT_AVAILABLE_SIZE, + MORE_ACTIONS_TEXT, } from '../../constants/index'; -import DeleteButton from '../delete_button.vue'; export default { components: { GlSprintf, GlFormCheckbox, GlIcon, - DeleteButton, + GlDropdown, + GlDropdownItem, ListItem, ClipboardButton, TimeAgoTooltip, @@ -60,11 +67,11 @@ export default { REMOVE_TAG_BUTTON_TITLE, DIGEST_LABEL, CREATED_AT_LABEL, - REMOVE_TAG_BUTTON_DISABLE_TOOLTIP, PUBLISHED_DETAILS_ROW_TEXT, MANIFEST_DETAILS_ROW_TEST, CONFIGURATION_DETAILS_ROW_TEST, MISSING_MANIFEST_WARNING_TOOLTIP, + MORE_ACTIONS_TEXT, }, computed: { formattedSize() { @@ -173,15 +180,26 @@ export default { </span> </template> <template #right-action> - <delete-button - :disabled="isDeleteDisabled" - :title="$options.i18n.REMOVE_TAG_BUTTON_TITLE" - :tooltip-title="$options.i18n.REMOVE_TAG_BUTTON_DISABLE_TOOLTIP" - :tooltip-disabled="tag.canDelete" - data-qa-selector="tag_delete_button" - data-testid="single-delete-button" - @delete="$emit('delete')" - /> + <gl-dropdown + v-if="!isDeleteDisabled" + icon="ellipsis_v" + :text="$options.i18n.MORE_ACTIONS_TEXT" + :text-sr-only="true" + category="tertiary" + no-caret + right + data-testid="additional-actions" + data-qa-selector="more_actions_menu" + > + <gl-dropdown-item + variant="danger" + data-testid="single-delete-button" + data-qa-selector="tag_delete_button" + @click="$emit('delete')" + > + {{ $options.i18n.REMOVE_TAG_BUTTON_TITLE }} + </gl-dropdown-item> + </gl-dropdown> </template> <template v-if="!isInvalidTag" #details-published> diff --git a/app/assets/javascripts/registry/explorer/constants/common.js b/app/assets/javascripts/registry/explorer/constants/common.js index dc71ef8450b..f7beec2c935 100644 --- a/app/assets/javascripts/registry/explorer/constants/common.js +++ b/app/assets/javascripts/registry/explorer/constants/common.js @@ -1,3 +1,4 @@ -import { s__ } from '~/locale'; +import { s__, __ } from '~/locale'; export const ROOT_IMAGE_TEXT = s__('ContainerRegistry|Root image'); +export const MORE_ACTIONS_TEXT = __('More actions'); diff --git a/app/assets/javascripts/registry/explorer/constants/details.js b/app/assets/javascripts/registry/explorer/constants/details.js index 0836260b71e..19e1a75fb2f 100644 --- a/app/assets/javascripts/registry/explorer/constants/details.js +++ b/app/assets/javascripts/registry/explorer/constants/details.js @@ -30,7 +30,7 @@ export const CONFIGURATION_DETAILS_ROW_TEST = s__( 'ContainerRegistry|Configuration digest: %{digest}', ); -export const REMOVE_TAG_BUTTON_TITLE = s__('ContainerRegistry|Remove tag'); +export const REMOVE_TAG_BUTTON_TITLE = s__('ContainerRegistry|Delete tag'); export const REMOVE_TAGS_BUTTON_TITLE = s__('ContainerRegistry|Delete selected tags'); export const REMOVE_TAG_CONFIRMATION_TEXT = s__( @@ -61,10 +61,6 @@ export const ADMIN_GARBAGE_COLLECTION_TIP = s__( 'ContainerRegistry|Remember to run %{docLinkStart}garbage collection%{docLinkEnd} to remove the stale data from storage.', ); -export const REMOVE_TAG_BUTTON_DISABLE_TOOLTIP = s__( - 'ContainerRegistry|Deletion disabled due to missing or insufficient permissions.', -); - export const MISSING_MANIFEST_WARNING_TOOLTIP = s__( 'ContainerRegistry|Invalid tag: missing manifest digest', ); diff --git a/app/assets/javascripts/right_sidebar.js b/app/assets/javascripts/right_sidebar.js index 23254fcc2eb..381421cdc23 100644 --- a/app/assets/javascripts/right_sidebar.js +++ b/app/assets/javascripts/right_sidebar.js @@ -111,7 +111,7 @@ Sidebar.prototype.toggleTodo = function (e) { }; Sidebar.prototype.sidebarCollapseClicked = function (e) { - if ($(e.currentTarget).hasClass('dont-change-state')) { + if ($(e.currentTarget).hasClass('js-dont-change-state')) { return; } const sidebar = e.data; diff --git a/app/assets/javascripts/runner/admin_runners/admin_runners_app.vue b/app/assets/javascripts/runner/admin_runners/admin_runners_app.vue index 35476cc411e..c8513a0b803 100644 --- a/app/assets/javascripts/runner/admin_runners/admin_runners_app.vue +++ b/app/assets/javascripts/runner/admin_runners/admin_runners_app.vue @@ -9,7 +9,6 @@ import RunnerList from '../components/runner_list.vue'; import RunnerManualSetupHelp from '../components/runner_manual_setup_help.vue'; import RunnerName from '../components/runner_name.vue'; import RunnerPagination from '../components/runner_pagination.vue'; -import RunnerTypeHelp from '../components/runner_type_help.vue'; import { statusTokenConfig } from '../components/search_tokens/status_token_config'; import { tagTokenConfig } from '../components/search_tokens/tag_token_config'; import { typeTokenConfig } from '../components/search_tokens/type_token_config'; @@ -29,7 +28,6 @@ export default { RunnerFilteredSearchBar, RunnerList, RunnerManualSetupHelp, - RunnerTypeHelp, RunnerName, RunnerPagination, }, @@ -128,17 +126,10 @@ export default { </script> <template> <div> - <div class="row"> - <div class="col-sm-6"> - <runner-type-help /> - </div> - <div class="col-sm-6"> - <runner-manual-setup-help - :registration-token="registrationToken" - :type="$options.INSTANCE_TYPE" - /> - </div> - </div> + <runner-manual-setup-help + :registration-token="registrationToken" + :type="$options.INSTANCE_TYPE" + /> <runner-filtered-search-bar v-model="search" diff --git a/app/assets/javascripts/runner/components/runner_type_help.vue b/app/assets/javascripts/runner/components/runner_type_help.vue deleted file mode 100644 index 2326f66ebb8..00000000000 --- a/app/assets/javascripts/runner/components/runner_type_help.vue +++ /dev/null @@ -1,74 +0,0 @@ -<script> -import { - INSTANCE_TYPE, - GROUP_TYPE, - PROJECT_TYPE, - I18N_INSTANCE_RUNNER_DESCRIPTION, - I18N_GROUP_RUNNER_DESCRIPTION, - I18N_PROJECT_RUNNER_DESCRIPTION, - I18N_LOCKED_RUNNER_DESCRIPTION, - I18N_PAUSED_RUNNER_DESCRIPTION, -} from '../constants'; -import RunnerTypeBadge from './runner_type_badge.vue'; -import RunnerStateLockedBadge from './runner_state_locked_badge.vue'; -import RunnerStatePausedBadge from './runner_state_paused_badge.vue'; - -export default { - components: { - RunnerTypeBadge, - RunnerStateLockedBadge, - RunnerStatePausedBadge, - }, - runnerTypes: { - INSTANCE_TYPE, - GROUP_TYPE, - PROJECT_TYPE, - }, - i18n: { - I18N_INSTANCE_RUNNER_DESCRIPTION, - I18N_GROUP_RUNNER_DESCRIPTION, - I18N_PROJECT_RUNNER_DESCRIPTION, - I18N_LOCKED_RUNNER_DESCRIPTION, - I18N_PAUSED_RUNNER_DESCRIPTION, - }, -}; -</script> - -<template> - <div class="bs-callout"> - <p>{{ __('Runners are processes that pick up and execute CI/CD jobs for GitLab.') }}</p> - <p> - {{ - __( - 'You can register runners as separate users, on separate servers, and on your local machine. Register as many runners as you want.', - ) - }} - </p> - - <div> - <span> {{ __('Runners can be:') }}</span> - <ul> - <li> - <runner-type-badge :type="$options.runnerTypes.INSTANCE_TYPE" size="sm" /> - - {{ $options.i18n.I18N_INSTANCE_RUNNER_DESCRIPTION }} - </li> - <li> - <runner-type-badge :type="$options.runnerTypes.GROUP_TYPE" size="sm" /> - - {{ $options.i18n.I18N_GROUP_RUNNER_DESCRIPTION }} - </li> - <li> - <runner-type-badge :type="$options.runnerTypes.PROJECT_TYPE" size="sm" /> - - {{ $options.i18n.I18N_PROJECT_RUNNER_DESCRIPTION }} - </li> - <li> - <runner-state-locked-badge size="sm" /> - - {{ $options.i18n.I18N_LOCKED_RUNNER_DESCRIPTION }} - </li> - <li> - <runner-state-paused-badge size="sm" /> - - {{ $options.i18n.I18N_PAUSED_RUNNER_DESCRIPTION }} - </li> - </ul> - </div> - </div> -</template> diff --git a/app/assets/javascripts/runner/group_runners/group_runners_app.vue b/app/assets/javascripts/runner/group_runners/group_runners_app.vue index 083b2666b7b..4bb28796dfa 100644 --- a/app/assets/javascripts/runner/group_runners/group_runners_app.vue +++ b/app/assets/javascripts/runner/group_runners/group_runners_app.vue @@ -10,7 +10,6 @@ import RunnerList from '../components/runner_list.vue'; import RunnerManualSetupHelp from '../components/runner_manual_setup_help.vue'; import RunnerName from '../components/runner_name.vue'; import RunnerPagination from '../components/runner_pagination.vue'; -import RunnerTypeHelp from '../components/runner_type_help.vue'; import { statusTokenConfig } from '../components/search_tokens/status_token_config'; import { typeTokenConfig } from '../components/search_tokens/type_token_config'; @@ -36,7 +35,6 @@ export default { RunnerList, RunnerManualSetupHelp, RunnerName, - RunnerTypeHelp, RunnerPagination, }, props: { @@ -146,17 +144,7 @@ export default { <template> <div> - <div class="row"> - <div class="col-sm-6"> - <runner-type-help /> - </div> - <div class="col-sm-6"> - <runner-manual-setup-help - :registration-token="registrationToken" - :type="$options.GROUP_TYPE" - /> - </div> - </div> + <runner-manual-setup-help :registration-token="registrationToken" :type="$options.GROUP_TYPE" /> <runner-filtered-search-bar v-model="search" diff --git a/app/assets/javascripts/sidebar/components/todo_toggle/todo.vue b/app/assets/javascripts/sidebar/components/todo_toggle/todo.vue index f7e76cc2b7f..d5782e4b371 100644 --- a/app/assets/javascripts/sidebar/components/todo_toggle/todo.vue +++ b/app/assets/javascripts/sidebar/components/todo_toggle/todo.vue @@ -41,7 +41,7 @@ export default { computed: { buttonClasses() { return this.collapsed - ? 'btn-blank btn-todo sidebar-collapsed-icon dont-change-state' + ? 'btn-blank btn-todo sidebar-collapsed-icon js-dont-change-state' : 'gl-button btn btn-default btn-todo issuable-header-btn float-right'; }, buttonLabel() { diff --git a/app/assets/javascripts/vue_merge_request_widget/components/extensions/base.vue b/app/assets/javascripts/vue_merge_request_widget/components/extensions/base.vue index b2c9d28a88b..c4e5fa06cd6 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/extensions/base.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/extensions/base.vue @@ -60,7 +60,7 @@ export default { this.isCollapsed ? s__('mrWidget|Show %{widget} details') : s__('mrWidget|Hide %{widget} details'), - { widget: this.$options.name }, + { widget: this.$options.label || this.$options.name }, ); }, statusIconName() { @@ -120,7 +120,7 @@ export default { <section class="media-section" data-testid="widget-extension"> <div class="media gl-p-5"> <status-icon - :name="$options.name" + :name="$options.label || $options.name" :is-loading="isLoadingSummary" :icon-name="statusIconName" /> @@ -133,7 +133,10 @@ export default { </template> <div v-else v-safe-html="summary(collapsedData)"></div> </div> - <actions :widget="$options.name" :tertiary-buttons="tertiaryActionsButtons" /> + <actions + :widget="$options.label || $options.name" + :tertiary-buttons="tertiaryActionsButtons" + /> <div class="gl-float-right gl-align-self-center gl-border-l-1 gl-border-l-solid gl-border-gray-100 gl-ml-3 gl-pl-3" > diff --git a/app/assets/javascripts/vue_merge_request_widget/extensions/issues.js b/app/assets/javascripts/vue_merge_request_widget/extensions/issues.js index 0b96b2844c2..21e0b95431b 100644 --- a/app/assets/javascripts/vue_merge_request_widget/extensions/issues.js +++ b/app/assets/javascripts/vue_merge_request_widget/extensions/issues.js @@ -7,6 +7,7 @@ export default { // Give the extension a name // Make it easier to track in Vue dev tools name: 'Issues', + label: 'Issues', // Add an array of props // These then get mapped to values stored in the MR Widget store props: ['targetProjectFullPath', 'conflictsDocsPath'], diff --git a/app/assets/javascripts/vue_shared/components/sidebar/copyable_field.vue b/app/assets/javascripts/vue_shared/components/sidebar/copyable_field.vue index 5c3a6852219..6538de085b0 100644 --- a/app/assets/javascripts/vue_shared/components/sidebar/copyable_field.vue +++ b/app/assets/javascripts/vue_shared/components/sidebar/copyable_field.vue @@ -62,7 +62,7 @@ export default { <div> <clipboard-button v-if="!isLoading" - css-class="sidebar-collapsed-icon dont-change-state gl-rounded-0! gl-hover-bg-transparent" + css-class="sidebar-collapsed-icon js-dont-change-state gl-rounded-0! gl-hover-bg-transparent" v-bind="clipboardProps" /> |