Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-05-27 21:17:05 +00:00
parent 9a66377d7f
commit e1833ba983
122 changed files with 382 additions and 305 deletions

View File

@ -242,19 +242,6 @@ Layout/ArgumentAlignment:
- 'lib/gitlab/diff/rendered/notebook/diff_file.rb'
- 'lib/gitlab/diff/suggestions_parser.rb'
- 'lib/gitlab/email/hook/delivery_metrics_observer.rb'
- 'lib/gitlab/error_tracking/detailed_error.rb'
- 'lib/gitlab/external_authorization/access.rb'
- 'lib/gitlab/gfm/reference_rewriter.rb'
- 'lib/gitlab/git/blob.rb'
- 'lib/gitlab/git/conflict/file.rb'
- 'lib/gitlab/git/repository.rb'
- 'lib/gitlab/git_access.rb'
- 'lib/gitlab/gitaly_client/object_pool_service.rb'
- 'lib/gitlab/gitaly_client/operation_service.rb'
- 'lib/gitlab/gitaly_client/remote_service.rb'
- 'lib/gitlab/gitaly_client/repository_service.rb'
- 'lib/gitlab/gitaly_client/util.rb'
- 'lib/gitlab/github_gists_import/importer/gist_importer.rb'
- 'lib/gitlab/github_import/importer/issue_importer.rb'
- 'lib/gitlab/github_import/importer/pull_request_importer.rb'
- 'lib/gitlab/github_import/representation/issue.rb'

View File

@ -20,18 +20,6 @@ Layout/SpaceInLambdaLiteral:
- 'app/models/namespace_statistics.rb'
- 'app/models/note.rb'
- 'app/models/note_diff_file.rb'
- 'app/serializers/analytics/cycle_analytics/stage_entity.rb'
- 'app/serializers/base_discussion_entity.rb'
- 'app/serializers/blob_entity.rb'
- 'app/serializers/build_action_entity.rb'
- 'app/serializers/build_details_entity.rb'
- 'app/serializers/ci/dag_job_entity.rb'
- 'app/serializers/ci/job_entity.rb'
- 'app/serializers/ci/pipeline_entity.rb'
- 'app/serializers/ci/trigger_entity.rb'
- 'app/serializers/concerns/user_status_tooltip.rb'
- 'app/serializers/container_repository_entity.rb'
- 'app/serializers/container_tag_entity.rb'
- 'app/serializers/deploy_keys/basic_deploy_key_entity.rb'
- 'app/serializers/deployment_cluster_entity.rb'
- 'app/serializers/deployment_entity.rb'

View File

@ -76,10 +76,7 @@ export default {
@close="closeDrawer"
>
<template #title>
<h2
class="gl-font-size-h2 gl-mt-0 gl-mb-0 gl-line-height-24"
data-testid="category-drawer-title"
>
<h2 class="gl-font-size-h2 gl-mt-0 gl-mb-0 gl-leading-24" data-testid="category-drawer-title">
{{ $options.i18n.title }}
</h2>
</template>

View File

@ -42,7 +42,7 @@ export default {
};
</script>
<template>
<div class="file-header-content d-flex gl-align-items-center gl-line-height-1">
<div class="file-header-content d-flex gl-align-items-center gl-leading-1">
<slot name="filepath-prepend"></slot>
<template v-if="fileName">

View File

@ -155,7 +155,7 @@ export default {
:data-item-path="item.referencePath"
:style="cardStyle"
data-testid="board-card"
class="board-card gl-p-5 gl-rounded-base gl-line-height-normal gl-relative gl-mb-3"
class="board-card gl-p-5 gl-rounded-base gl-leading-normal gl-relative gl-mb-3"
@click="toggleIssue($event)"
>
<board-card-inner

View File

@ -286,7 +286,7 @@ export default {
<div
class="gl-display-flex align-items-start gl-flex-wrap-reverse board-card-number-container gl-overflow-hidden"
>
<span class="board-info-items gl-mt-3 gl-line-height-20 gl-display-inline-block">
<span class="board-info-items gl-mt-3 gl-leading-20 gl-display-inline-block">
<gl-loading-icon v-if="isLoading" size="lg" class="gl-mt-5" />
<span
v-if="showBoardCardNumber"
@ -368,7 +368,7 @@ export default {
v-if="shouldRenderCounter"
v-gl-tooltip
:title="assigneeCounterTooltip"
class="avatar-counter gl-bg-gray-100 gl-text-gray-900 gl-cursor-help gl-font-weight-bold gl-border-0 gl-line-height-24 gl-ml-n3"
class="avatar-counter gl-bg-gray-100 gl-text-gray-900 gl-cursor-help gl-font-weight-bold gl-border-0 gl-leading-24 gl-ml-n3"
data-placement="bottom"
>{{ assigneeCounterLabel }}</span
>

View File

@ -185,7 +185,7 @@ export default {
@close="handleClose"
>
<template #title>
<h2 class="gl-my-0 gl-font-size-h2 gl-line-height-24">{{ sidebarTitle }}</h2>
<h2 class="gl-my-0 gl-font-size-h2 gl-leading-24">{{ sidebarTitle }}</h2>
</template>
<template #header>
<sidebar-todo-widget

View File

@ -141,7 +141,7 @@ export default {
@close="unsetActiveListId"
>
<template #title>
<h2 class="gl-my-0 gl-font-size-h2 gl-line-height-24">
<h2 class="gl-my-0 gl-font-size-h2 gl-leading-24">
{{ $options.listSettingsText }}
</h2>
</template>

View File

@ -35,7 +35,7 @@ export default {
:status="status"
:show-tooltip="false"
:use-link="false"
class="gl-line-height-0"
class="gl-leading-0"
/>
<span class="gl-text-truncate mw-70p gl-pl-3 gl-display-inline-block" :title="name">
{{ name }}

View File

@ -72,7 +72,7 @@ export default {
</div>
<div class="gl-empty-state-content gl-mx-auto gl-my-0 gl-m-auto gl-p-5">
<h1
class="gl-font-size-h-display gl-line-height-36 gl-mt-0 gl-mb-0"
class="gl-font-size-h-display gl-leading-36 gl-mt-0 gl-mb-0"
data-testid="job-empty-state-title"
>
{{ title }}

View File

@ -39,7 +39,7 @@ export default {
};
</script>
<template>
<p class="build-sidebar-item gl-line-height-normal gl-display-flex gl-mb-3">
<p class="build-sidebar-item gl-leading-normal gl-display-flex gl-mb-3">
<b v-if="hasTitle" class="gl-mr-3">{{ title }}:</b>
<gl-link
v-if="path"

View File

@ -327,7 +327,7 @@ export default {
<ci-icon :status="job.status" :use-link="false" :show-tooltip="false" />
<div class="gl-pl-3 gl-pr-3 gl-display-flex gl-flex-direction-column gl-pipeline-job-width">
<div
class="gl-text-truncate gl-pr-9 gl-line-height-normal gl-text-left gl-text-gray-700"
class="gl-text-truncate gl-pr-9 gl-leading-normal gl-text-left gl-text-gray-700"
:title="job.name"
>
{{ job.name }}
@ -335,7 +335,7 @@ export default {
<div
v-if="showStageName"
data-testid="stage-name-in-job"
class="gl-text-truncate gl-pr-9 gl-font-sm gl-text-gray-500 gl-line-height-normal gl-text-left"
class="gl-text-truncate gl-pr-9 gl-font-sm gl-text-gray-500 gl-leading-normal gl-text-left"
>
{{ stageName }}
</div>

View File

@ -251,7 +251,7 @@ export default {
/>
<div v-else class="gl-pr-3"><gl-loading-icon size="sm" inline /></div>
<div
class="gl-display-flex gl-flex-direction-column gl-line-height-normal gl-downstream-pipeline-job-width"
class="gl-display-flex gl-flex-direction-column gl-leading-normal gl-downstream-pipeline-job-width"
>
<span class="gl-text-truncate" data-testid="downstream-title-content">
{{ downstreamTitle }}

View File

@ -62,7 +62,7 @@ export default {
'gl-font-weight-bold',
'gl-pipeline-job-width',
'gl-text-truncate',
'gl-line-height-36',
'gl-leading-36',
],
minWidth: `${ONE_COL_WIDTH}px`,
computed: {

View File

@ -129,7 +129,7 @@ export default {
<template #stages>
<div
data-testid="stage-column-title"
class="stage-column-title gl-display-flex gl-justify-content-space-between gl-relative gl-font-weight-bold gl-pipeline-job-width gl-text-truncate gl-line-height-36 gl-pl-4 -gl-mb-2"
class="stage-column-title gl-display-flex gl-justify-content-space-between gl-relative gl-font-weight-bold gl-pipeline-job-width gl-text-truncate gl-leading-36 gl-pl-4 -gl-mb-2"
>
<span :title="name" class="gl-text-truncate gl-pr-3 gl-w-17/20">
{{ name }}

View File

@ -9,7 +9,7 @@ import GettingStartedCard from './cards/getting_started_card.vue';
import PipelineConfigReferenceCard from './cards/pipeline_config_reference_card.vue';
import VisualizeAndLintCard from './cards/visualize_and_lint_card.vue';
const DRAWER_CARD_STYLES = ['gl-border-bottom-0', 'gl-pt-6!', 'gl-pb-0!', 'gl-line-height-20'];
const DRAWER_CARD_STYLES = ['gl-border-bottom-0', 'gl-pt-6!', 'gl-pb-0!', 'gl-leading-20'];
export default {
DRAWER_CARD_STYLES,

View File

@ -137,7 +137,7 @@ export default {
<template #header>
<div
class="gl-display-flex gl-align-items-center gl-p-4! gl-min-h-8 gl-border-b-1 gl-border-b-solid gl-border-b-gray-200 gl-font-sm gl-font-weight-bold gl-line-height-1"
class="gl-display-flex gl-align-items-center gl-p-4! gl-min-h-8 gl-border-b-1 gl-border-b-solid gl-border-b-gray-200 gl-font-sm gl-font-weight-bold gl-leading-1"
>
<template v-if="isLoading">
<span>{{ $options.i18n.stage }}</span>
@ -155,7 +155,7 @@ export default {
data-testid="pipeline-stage-loading-state"
>
<gl-loading-icon size="sm" class="gl-mr-3" />
<p class="gl-line-height-normal gl-mb-0">{{ $options.i18n.loadingText }}</p>
<p class="gl-leading-normal gl-mb-0">{{ $options.i18n.loadingText }}</p>
</div>
<ul
v-else

View File

@ -134,7 +134,7 @@ export default {
</gl-link>
<gl-popover :target="autoDevopsTagId" triggers="focus" placement="top">
<template #title>
<div class="gl-font-weight-normal gl-line-height-normal">
<div class="gl-font-weight-normal gl-leading-normal">
<gl-sprintf
:message="
__(

View File

@ -188,7 +188,7 @@ export default {
<div class="media-body gl-display-flex gl-align-items-flex-start gl-flex-direction-row!">
<div class="js-code-text code-text gl-align-self-center gl-flex-grow-1">
<div class="gl-display-flex gl-align-items-center">
<p class="gl-line-height-normal gl-m-0">{{ headerText }}</p>
<p class="gl-leading-normal gl-m-0">{{ headerText }}</p>
<slot :name="slotName"></slot>
<help-popover
v-if="hasPopover"

View File

@ -76,7 +76,7 @@ export default {
@close="onClose"
>
<template #title>
<h2 class="gl-my-0 gl-font-size-h2 gl-line-height-24">
<h2 class="gl-my-0 gl-font-size-h2 gl-leading-24">
{{ s__('Runners|Install GitLab Runner') }}
</h2>
</template>

View File

@ -86,7 +86,7 @@ export default {
:key="idx"
:title="tab.title"
:query-param-value="tab.queryParamValue"
class="gl-line-height-20 gl-mt-5"
class="gl-leading-20 gl-mt-5"
>
<component
:is="tab.component"

View File

@ -168,7 +168,7 @@ export default {
v-if="showEditor"
class="design-description-form common-note-form"
:label="$options.i18n.descriptionLabel"
label-class="gl-line-height-20! gl-font-lg!"
label-class="!gl-leading-20 gl-font-lg!"
>
<div v-if="errorMessage" class="gl-pb-3">
<gl-alert variant="danger" @dismiss="errorMessage = null">
@ -220,7 +220,7 @@ export default {
<div
class="design-description-header gl-display-flex gl-justify-content-space-between gl-mb-2"
>
<h3 class="gl-line-height-20! gl-font-lg gl-m-0">
<h3 class="!gl-leading-20 gl-font-lg gl-m-0">
{{ $options.i18n.descriptionLabel }}
</h3>
<gl-button

View File

@ -164,10 +164,7 @@ export default {
<gl-skeleton-loader />
</div>
<template v-else>
<h3
data-testid="unresolved-discussion-count"
class="gl-line-height-20! gl-font-lg gl-my-5"
>
<h3 data-testid="unresolved-discussion-count" class="!gl-leading-20 gl-font-lg gl-my-5">
{{ unresolvedDiscussionsCount }}
</h3>
<gl-empty-state

View File

@ -16,7 +16,7 @@ export default {
</script>
<template>
<li class="gl-mb-4">
<p class="gl-line-height-20">
<p class="gl-leading-20">
<span
data-testid="findings-drawer-item-description"
class="gl-font-weight-bold gl-display-block gl-mb-1"

View File

@ -36,7 +36,7 @@ export default {
label: [
'gl-font-base',
'gl-font-weight-normal',
'gl-line-height-normal',
'gl-leading-normal',
'gl-shadow-inner-1-gray-200',
'gl-py-3',
'gl-px-4',

View File

@ -69,6 +69,7 @@ export default {
data() {
return {
error: '',
filterOption: '',
};
},
computed: {
@ -100,6 +101,12 @@ export default {
podsCount() {
return this.k8sPods?.length || 0;
},
filteredPods() {
if (!this.k8sPods) return [];
if (!this.filterOption) return this.k8sPods;
return this.k8sPods.filter((pod) => pod.status === this.filterOption);
},
},
methods: {
countPodsByPhase(phase) {
@ -116,6 +123,9 @@ export default {
onRemoveSelection() {
this.$emit('remove-selection');
},
filterPods(status) {
this.filterOption = status;
},
},
i18n: {
podsTitle: s__('Environment|Pods'),
@ -133,10 +143,10 @@ export default {
<gl-loading-icon v-if="loading" />
<template v-else-if="!error">
<workload-stats v-if="podStats" :stats="podStats" class="gl-mt-3" />
<workload-stats v-if="podStats" :stats="podStats" class="gl-mt-3" @select="filterPods" />
<workload-table
v-if="k8sPods"
:items="k8sPods"
:items="filteredPods"
:page-size="$options.PAGE_SIZE"
class="gl-mt-8"
@select-item="onItemSelect"

View File

@ -18,7 +18,7 @@ export default {
:title="$options.translations.emptyStateTitle"
:primary-button-text="$options.translations.emptyStatePrimaryButton"
:primary-button-link="$options.actionButtonUrl"
class="gl-line-height-20"
class="gl-leading-20"
>
<template #description>
<gl-sprintf :message="$options.translations.emptyStateDescription">

View File

@ -204,7 +204,7 @@ export default {
/>
</div>
</gl-form-group>
<p class="gl-ml-3 gl-align-self-end gl-line-height-32">{{ __('UTC') }}</p>
<p class="gl-ml-3 gl-align-self-end gl-leading-32">{{ __('UTC') }}</p>
</div>
</div>
<gl-form-group>

View File

@ -44,7 +44,7 @@ export default {
</script>
<template>
<li class="gl-line-height-20 gl-py-3 gl-border-b-solid gl-border-b-2 gl-border-b-gray-100">
<li class="gl-leading-20 gl-py-3 gl-border-b-solid gl-border-b-2 gl-border-b-gray-100">
<div
:class="{
'gl-display-flex gl-flex-wrap gl-justify-content-space-between gl-align-items-center': collapsible,

View File

@ -44,12 +44,18 @@ export default {
return {
showDetailsDrawer: false,
selectedItem: {},
filterOption: '',
};
},
computed: {
getDrawerHeaderHeight() {
return getContentWrapperHeight();
},
filteredItems() {
if (!this.filterOption) return this.items;
return this.items.filter((item) => item.status === this.filterOption);
},
},
methods: {
closeDetailsDrawer() {
@ -59,6 +65,9 @@ export default {
this.selectedItem = item;
this.showDetailsDrawer = true;
},
filterItems(status) {
this.filterOption = status;
},
},
DRAWER_Z_INDEX,
};
@ -69,9 +78,9 @@ export default {
{{ errorMessage }}
</gl-alert>
<div v-else>
<workload-stats :stats="stats" />
<workload-stats :stats="stats" @select="filterItems" />
<workload-table
:items="items"
:items="filteredItems"
:fields="fields"
class="gl-mt-8"
@select-item="onItemSelect"

View File

@ -11,6 +11,22 @@ export default {
required: true,
},
},
data() {
return {
active: '',
};
},
methods: {
select(item) {
if (item === this.active) {
this.active = '';
} else {
this.active = item;
}
this.$emit('select', this.active);
},
},
};
</script>
@ -19,9 +35,11 @@ export default {
<gl-single-stat
v-for="(stat, index) in stats"
:key="index"
class="gl-w-full gl-flex-direction-column gl-align-items-center gl-justify-content-center gl-bg-white gl-border gl-border-gray-a-08 gl-mx-3 gl-p-3 gl-mt-3"
class="gl-w-full gl-flex-col gl-items-center gl-justify-center gl-bg-white gl-border gl-border-gray-a-08 gl-mx-3 gl-p-3 gl-mt-3 gl-cursor-pointer"
:value="stat.value"
:title="stat.title"
:class="{ 'gl-inset-border-b-2-blue-500': active === stat.title }"
@click="select(stat.title)"
/>
</div>
</template>

View File

@ -44,6 +44,11 @@ export default {
});
},
},
watch: {
items() {
this.currentPage = 1;
},
},
methods: {
selectItem(item) {
const selectedItem = item[0];

View File

@ -81,7 +81,7 @@ export default {
{{ conflictsData.errorMessage }}
</div>
<template v-if="!isLoading && !hasError">
<div class="gl-border-b-0 gl-py-5 gl-line-height-32">
<div class="gl-border-b-0 gl-py-5 gl-leading-32">
<div v-if="fileTextTypePresent" class="gl-float-right">
<gl-button-group>
<gl-button :selected="!isParallel" @click="setViewType('inline')">

View File

@ -69,7 +69,7 @@ export default {
<div class="gl-animate-skeleton-loader gl-h-4 gl-rounded-base gl-w-20"></div>
<div class="gl-animate-skeleton-loader gl-h-4 gl-rounded-base gl-w-2 gl-ml-auto"></div>
</template>
<div v-else class="gl-line-height-20 gl-text-gray-900 gl-font-weight-bold">
<div v-else class="gl-leading-20 gl-text-gray-900 gl-font-weight-bold">
{{ reviewersTitle }}
</div>
</div>

View File

@ -41,7 +41,7 @@ export default {
<gl-link :href="linkHref">{{ linkText }}</gl-link>
</div>
<span
class="gl-font-size-h-display gl-font-weight-bold gl-line-height-ratio-1000 gl-mt-2 gl-display-block"
class="gl-font-size-h-display gl-font-weight-bold gl-leading-1 gl-mt-2 gl-display-block"
>{{ count }}</span
>
</gl-card>

View File

@ -53,7 +53,7 @@ export default {
label-position="hidden"
:disabled="disabled"
/>
<span class="gl-ml-5 gl-line-height-24" data-testid="description">
<span class="gl-ml-5 gl-leading-24" data-testid="description">
<gl-sprintf :message="toggleText">
<template #strong="{ content }">
<strong>{{ content }}</strong>

View File

@ -648,7 +648,7 @@ export default {
<strong class="gl-display-block">{{ s__('ProjectSettings|Additional options') }}</strong>
<label
v-if="visibilityLevel !== $options.VISIBILITY_LEVEL_PRIVATE_INTEGER"
class="gl-line-height-28 gl-font-weight-normal gl-mb-0"
class="gl-leading-28 gl-font-weight-normal gl-mb-0"
>
<input
:value="requestAccessEnabled"
@ -660,7 +660,7 @@ export default {
</label>
<label
v-if="visibilityLevel !== $options.VISIBILITY_LEVEL_PUBLIC_INTEGER"
class="gl-line-height-28 gl-font-weight-normal gl-display-block gl-mb-0"
class="gl-leading-28 gl-font-weight-normal gl-display-block gl-mb-0"
>
<input
:value="enforceAuthChecksOnUploads"

View File

@ -144,7 +144,7 @@ export default {
:toggle-text="__('Options')"
right
data-testid="commit-options-dropdown"
class="gl-line-height-20"
class="gl-leading-20"
>
<gl-disclosure-dropdown-group :group="optionsGroup" @action="closeDropdown" />

View File

@ -48,7 +48,7 @@ export default {
<template>
<div
:class="{
'issue-token gl-display-inline-flex gl-align-items-stretch gl-max-w-full gl-line-height-24 gl-whitespace-nowrap': isCondensed,
'issue-token gl-display-inline-flex gl-align-items-stretch gl-max-w-full gl-leading-24 gl-whitespace-nowrap': isCondensed,
'flex-row issuable-info-container': !isCondensed,
}"
>

View File

@ -126,7 +126,7 @@ export default {
<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"
class="gl-display-flex gl-align-items-center gl-leading-24"
>
<gl-icon :name="section.iconName" class="gl-mr-2 gl-flex-shrink-0 gl-flex-grow-0" />
{{ link.name }}

View File

@ -39,7 +39,7 @@ export default {
};
</script>
<template>
<div class="hide-collapsed gl-line-height-20 gl-mb-2 gl-text-gray-900 gl-font-weight-bold">
<div class="hide-collapsed gl-leading-20 gl-mb-2 gl-text-gray-900 gl-font-weight-bold">
{{ assigneeTitle }}
<gl-loading-icon v-if="loading" size="sm" inline class="align-bottom" />
<a

View File

@ -90,7 +90,7 @@ export default {
data-css-area="user"
>
<div
class="gl-ml-3 gl-line-height-normal gl-display-grid gl-align-items-center"
class="gl-ml-3 gl-leading-normal gl-display-grid gl-align-items-center"
data-testid="username"
>
<user-name-with-status :name="user.name" :availability="userAvailability(user)" />

View File

@ -110,7 +110,7 @@ export default {
><gl-icon name="question-o" class="gl-text-blue-600"
/></gl-link>
</div>
<div class="hide-collapsed gl-line-height-20 gl-font-weight-bold">
<div class="hide-collapsed gl-leading-20 gl-font-weight-bold">
{{ contactsLabel }}
</div>
<div v-if="shouldShowContacts" class="hide-collapsed gl-display-flex gl-flex-wrap gl-mt-2">

View File

@ -84,7 +84,7 @@ export default {
:reset-text="$options.i18n.remove"
:is-loading="isLoading"
:can-delete="dateIsFixed && hasFixedDate"
class="gl-line-height-normal"
class="gl-leading-normal"
@reset-date="$emit('reset-date', $event)"
/>
</div>
@ -105,7 +105,7 @@ export default {
:reset-text="$options.i18n.remove"
:is-loading="isLoading"
:can-delete="false"
class="gl-line-height-normal"
class="gl-leading-normal"
/>
</div>
</div>

View File

@ -27,9 +27,7 @@ export default {
</script>
<template>
<div
class="hide-collapsed gl-line-height-20 gl-mb-2 gl-text-gray-900 gl-font-weight-bold gl-mb-0"
>
<div class="hide-collapsed gl-leading-20 gl-mb-2 gl-text-gray-900 gl-font-weight-bold gl-mb-0">
{{ __('Labels') }}
<template v-if="allowLabelEdit">
<gl-loading-icon v-show="labelsSelectInProgress" size="sm" inline />

View File

@ -93,7 +93,7 @@ export default {
<div>
<div
v-if="showParticipantLabel"
class="gl-display-flex gl-align-items-center gl-line-height-24 gl-text-gray-900 gl-font-weight-bold gl-mb-2 gl-gap-2"
class="gl-display-flex gl-align-items-center gl-leading-24 gl-text-gray-900 gl-font-weight-bold gl-mb-2 gl-gap-2"
>
{{ participantLabel }}
<gl-loading-icon v-if="loading" inline />

View File

@ -54,7 +54,7 @@ export default {
</script>
<template>
<div
class="hide-collapsed gl-display-flex gl-align-items-center gl-line-height-20 gl-text-gray-900 gl-font-weight-bold gl-gap-2"
class="hide-collapsed gl-display-flex gl-align-items-center gl-leading-20 gl-text-gray-900 gl-font-weight-bold gl-gap-2"
>
{{ reviewerTitle }}
<gl-loading-icon v-if="loading" size="sm" inline class="align-bottom" />

View File

@ -60,7 +60,7 @@ export default {
<div class="value hide-collapsed">
<span
v-if="hasNoUsers"
class="no-value gl-display-flex gl-font-base gl-line-height-normal"
class="no-value gl-display-flex gl-font-base gl-leading-normal"
data-testid="no-value"
>
{{ __('None') }}

View File

@ -165,7 +165,7 @@ export default {
class="gl-break-anywhere gl-mr-2"
data-css-area="user"
>
<div class="gl-ml-3 gl-line-height-normal gl-display-grid gl-align-items-center">
<div class="gl-ml-3 gl-leading-normal gl-display-grid gl-align-items-center">
{{ user.name }}
</div>
</reviewer-avatar-link>

View File

@ -154,7 +154,7 @@ export default {
<template>
<div>
<div
class="gl-display-flex gl-align-items-center gl-line-height-20 gl-text-gray-900 gl-font-weight-bold"
class="gl-display-flex gl-align-items-center gl-leading-20 gl-text-gray-900 gl-font-weight-bold"
@click.self="collapse"
>
<span class="hide-collapsed" data-testid="title" @click="collapse">

View File

@ -235,7 +235,7 @@ export default {
:time-estimate-human-readable="humanTimeEstimate"
/>
<div
class="hide-collapsed gl-line-height-20 gl-text-gray-900 gl-display-flex gl-align-items-center gl-font-weight-bold"
class="hide-collapsed gl-leading-20 gl-text-gray-900 gl-display-flex gl-align-items-center gl-font-weight-bold"
>
{{ __('Time tracking') }}
<gl-loading-icon v-if="isTimeTrackingInfoLoading" size="sm" class="gl-ml-2" inline />

View File

@ -259,7 +259,7 @@ export default {
>
<span
v-if="snippet.hidden"
class="gl-bg-orange-50 gl-text-orange-600 gl-h-6 gl-w-6 gl-rounded-base gl-line-height-24 gl-text-center gl-mt-2"
class="gl-bg-orange-50 gl-text-orange-600 gl-h-6 gl-w-6 gl-rounded-base gl-leading-24 gl-text-center gl-mt-2"
>
<gl-icon
v-gl-tooltip.bottom
@ -366,7 +366,7 @@ export default {
class="gl-mr-2"
/>
<div data-testid="authored-message" class="gl-line-height-20">
<div data-testid="authored-message" class="gl-leading-20">
<gl-sprintf :message="authoredMessage">
<template #timeago>
<time-ago-tooltip

View File

@ -48,7 +48,7 @@ export default {
:is="component"
:aria-label="ariaLabel"
:href="href"
class="user-bar-button gl-display-block gl-flex-grow-1 gl-text-center gl-py-3 gl-rounded-base gl-border-none gl-line-height-1 gl-font-sm gl-hover-text-decoration-none"
class="user-bar-button gl-display-block gl-flex-grow-1 gl-text-center gl-py-3 gl-rounded-base gl-border-none gl-leading-1 gl-font-sm gl-hover-text-decoration-none"
>
<gl-icon aria-hidden="true" :name="icon" />
<span v-if="count" aria-hidden="true" class="gl-ml-1">{{ formattedCount }}</span>

View File

@ -233,7 +233,7 @@ export default {
:group="itemGroups.versionCheck"
>
<template #list-item="{ item }">
<span class="gl-display-flex gl-flex-direction-column gl-line-height-24">
<span class="gl-display-flex gl-flex-direction-column gl-leading-24">
<span class="gl-font-sm gl-font-weight-bold">
{{ item.text }}
<gl-emoji data-name="rocket" />

View File

@ -132,7 +132,7 @@ export default {
},
computedLinkClasses() {
return {
'gl-px-2 gl-mx-2 gl-line-height-normal': this.isSubitem,
'gl-px-2 gl-mx-2 gl-leading-normal': this.isSubitem,
'gl-px-3': !this.isSubitem,
'gl-pl-5! gl-rounded-small': this.isFlyout,
'gl-rounded-base': !this.isFlyout,

View File

@ -140,7 +140,7 @@ export default {
>
<template #toggle>
<button
class="organization-switcher-button gl-display-flex gl-align-items-center gl-gap-3 gl-p-3 gl-rounded-base gl-border-none gl-line-height-1 gl-w-full"
class="organization-switcher-button gl-display-flex gl-align-items-center gl-gap-3 gl-p-3 gl-rounded-base gl-border-none gl-leading-1 gl-w-full"
data-testid="toggle-button"
>
<gl-avatar

View File

@ -231,13 +231,13 @@ export default {
<user-bar ref="userBar" :has-collapse-button="!showOverlay" :sidebar-data="sidebarData" />
<div v-if="showTrialStatusWidget" class="gl-px-2 gl-py-2">
<trial-status-widget
class="super-sidebar-nav-item gl-rounded-base gl-relative gl-display-flex gl-align-items-center gl-mb-1 gl-px-3 gl-line-height-normal gl-text-black-normal! gl-text-decoration-none! gl-py-3"
class="super-sidebar-nav-item gl-rounded-base gl-relative gl-display-flex gl-align-items-center gl-mb-1 gl-px-3 gl-leading-normal gl-text-black-normal! gl-text-decoration-none! gl-py-3"
/>
<trial-status-popover />
</div>
<div v-else-if="showDuoProTrialStatusWidget" class="gl-px-2 gl-py-2">
<duo-pro-trial-status-widget
class="super-sidebar-nav-item gl-rounded-base gl-relative gl-display-flex gl-align-items-center gl-mb-1 gl-px-3 gl-line-height-normal gl-text-black-normal! gl-text-decoration-none! gl-py-3"
class="super-sidebar-nav-item gl-rounded-base gl-relative gl-display-flex gl-align-items-center gl-mb-1 gl-px-3 gl-leading-normal gl-text-black-normal! gl-text-decoration-none! gl-py-3"
/>
<duo-pro-trial-status-popover />
</div>

View File

@ -208,7 +208,7 @@ export default {
id="super-sidebar-search"
v-gl-tooltip.bottom.html="searchTooltip"
v-gl-modal="$options.SEARCH_MODAL_ID"
class="user-bar-button gl-display-block gl-py-3 gl-bg-gray-10 gl-rounded-base gl-text-gray-900 gl-border-none gl-line-height-1 gl-w-full"
class="user-bar-button gl-display-block gl-py-3 gl-bg-gray-10 gl-rounded-base gl-text-gray-900 gl-border-none gl-leading-1 gl-w-full"
data-testid="super-sidebar-search-button"
@click="trackEvent('click_search_button_to_activate_command_palette')"
>

View File

@ -35,7 +35,7 @@ export default {
<div class="gl-font-weight-bold" data-testid="namespace-storage-card-title">
{{ s__('UsageQuota|Namespace storage used') }}
</div>
<div class="gl-font-size-h-display gl-font-weight-bold gl-line-height-ratio-1000 gl-my-3">
<div class="gl-font-size-h-display gl-font-weight-bold gl-leading-1 gl-my-3">
<number-to-human-size label-class="gl-font-lg" :value="Number(usedStorage)" plain-zero />
</div>
<hr class="gl-my-4" />

View File

@ -41,7 +41,7 @@ export default {
<template>
<mr-collapsible-extension v-if="showCollapsedDeployments" :title="__('View all environments.')">
<template #header>
<div class="gl-mr-3 gl-line-height-normal">
<div class="gl-mr-3 gl-leading-normal">
<gl-sprintf :message="multipleDeploymentsTitle">
<template #deployments>
<span class="gl-font-weight-bold gl-mr-2">{{ deployments.length }}</span>

View File

@ -48,7 +48,7 @@ export default {
<div class="d-flex gl-align-items-center pl-3 gl-py-3">
<div v-if="hasError" class="ci-widget media">
<div class="media-body">
<span class="gl-font-sm gl-ml-7 gl-line-height-24 js-error-state">
<span class="gl-font-sm gl-ml-7 gl-leading-24 js-error-state">
{{ title }}
</span>
</div>

View File

@ -100,7 +100,7 @@ export default {
'gl-display-flex gl-align-items-center': actions.length,
'gl-md-display-flex gl-align-items-center gl-flex-wrap gl-gap-3': !actions.length,
}"
class="media-body gl-line-height-normal"
class="media-body gl-leading-normal"
>
<slot></slot>
<div

View File

@ -772,7 +772,7 @@ export default {
{{ __('Merge details') }}
</p>
<ul class="gl-pl-4 gl-mb-0 gl-ml-3 gl-text-gray-600">
<li v-if="sourceHasDivergedFromTarget" class="gl-line-height-normal">
<li v-if="sourceHasDivergedFromTarget" class="gl-leading-normal">
<gl-sprintf :message="$options.i18n.sourceDivergedFromTargetText">
<template #link>
<gl-link :href="mr.targetBranchPath">{{
@ -781,7 +781,7 @@ export default {
</template>
</gl-sprintf>
</li>
<li class="gl-line-height-normal">
<li class="gl-leading-normal">
<added-commit-message
:state="mr.state"
:merge-commit-sha="mr.shortMergeCommitSha"
@ -794,12 +794,12 @@ export default {
</li>
<li
v-if="isNotClosed"
class="gl-line-height-normal"
class="gl-leading-normal"
data-testid="source-branch-deleted-text"
>
{{ sourceBranchDeletedText }}
</li>
<li v-if="mr.relatedLinks" class="gl-line-height-normal">
<li v-if="mr.relatedLinks" class="gl-leading-normal">
<related-links
:state="mr.state"
:related-links="mr.relatedLinks"
@ -807,7 +807,7 @@ export default {
class="mr-ready-merge-related-links gl-display-inline"
/>
</li>
<li v-if="state.autoMergeEnabled" class="gl-line-height-normal">
<li v-if="state.autoMergeEnabled" class="gl-leading-normal">
{{ s__('mrWidget|Auto-merge enabled') }}
</li>
</ul>

View File

@ -57,7 +57,7 @@ export default {
v-gl-tooltip
:href="helpPath"
:title="$options.i18n.helpLabel"
class="gl-text-blue-600 gl-line-height-1"
class="gl-text-blue-600 gl-leading-1"
target="_blank"
>
<gl-icon name="question-o" />

View File

@ -217,7 +217,7 @@ export default {
<div v-else>
<p
class="gl-text-gray-900 gl-mb-2 gl-line-height-20 gl-display-flex gl-justify-content-space-between"
class="gl-text-gray-900 gl-mb-2 gl-leading-20 gl-display-flex gl-justify-content-space-between"
>
{{ __('Assignee') }}
<gl-button
@ -293,7 +293,7 @@ export default {
<span class="dropdown-menu-user-username">@{{ userName }}</span>
</span>
</div>
<span v-else class="gl-display-flex gl-align-items-center gl-line-height-normal">
<span v-else class="gl-display-flex gl-align-items-center gl-leading-normal">
{{ __('None') }} -
<gl-button
class="gl-ml-2 gl-reset-color!"

View File

@ -95,7 +95,7 @@ export default {
<div v-else>
<p
class="gl-text-gray-900 gl-mb-2 gl-line-height-20 gl-display-flex gl-justify-content-space-between"
class="gl-text-gray-900 gl-mb-2 gl-leading-20 gl-display-flex gl-justify-content-space-between"
>
{{ s__('AlertManagement|Status') }}
<gl-button

View File

@ -75,7 +75,7 @@ export default {
@switch="$emit('enableContentEditor')"
/>
<div class="gl-display-flex">
<div v-if="canAttachFile" class="uploading-container gl-font-sm gl-line-height-32 gl-mr-3">
<div v-if="canAttachFile" class="uploading-container gl-font-sm gl-leading-32 gl-mr-3">
<span class="uploading-progress-container hide">
<gl-icon name="paperclip" />
<span class="attaching-file-message"></span>

View File

@ -52,7 +52,7 @@ export default {
</div>
<pre
class="gl-p-0! gl-w-full gl-overflow-visible! gl-border-none! code highlight gl-line-height-0"
class="gl-p-0! gl-w-full gl-overflow-visible! gl-border-none! code highlight gl-leading-0"
><code><span :id="`LC${number}`" v-safe-html="content" :lang="language" class="line" data-testid="content"></span></code></pre>
</div>
</template>

View File

@ -113,7 +113,7 @@ export default {
<gl-intersection-observer class="gl-w-full" @appear="handleChunkAppear">
<pre
class="gl-m-0 gl-p-0! gl-w-full gl-overflow-visible! gl-border-none! code highlight gl-line-height-0"
class="gl-m-0 gl-p-0! gl-w-full gl-overflow-visible! gl-border-none! code highlight gl-leading-0"
><code v-if="shouldHighlight" v-safe-html="highlightedContent" :style="codeStyling" data-testid="content"></code><code v-else v-once class="line gl-white-space-pre-wrap! gl-ml-1" data-testid="content" v-text="rawContent"></code></pre>
</gl-intersection-observer>
</div>

View File

@ -86,7 +86,7 @@ export default {
:src="avatarSrc"
/>
<div class="gl-min-w-0">
<p class="gl-font-weight-bold gl-line-height-1 gl-mb-3">
<p class="gl-font-weight-bold gl-leading-1 gl-mb-3">
{{ label }}
</p>
<div v-if="value" class="gl-display-flex gl-align-items-center gl-gap-x-3">

View File

@ -21,7 +21,7 @@ export default {
</script>
<template>
<div class="row gl-m-0 gl-border-b gl-line-height-20 gl-py-6">
<div class="row gl-m-0 gl-border-b gl-leading-20 gl-py-6">
<div class="col-lg-4 gl-pl-0 gl-pr-9">
<h2 class="gl-font-size-h2 gl-mt-0">{{ heading }}</h2>
<slot name="description"></slot>

View File

@ -79,7 +79,7 @@ export default {
</div>
<div
v-safe-html:[$options.safeHtmlConfig]="feature.description"
class="gl-pt-3 gl-line-height-20"
class="gl-pt-3 gl-leading-20"
></div>
<gl-button
:href="feature.documentation_link"

View File

@ -22,7 +22,7 @@ export default {
<div class="design-description-container">
<div class="design-description-view">
<div class="design-description-header gl-flex gl-justify-between gl-mb-2">
<h3 class="gl-line-height-20! gl-font-lg gl-m-0">
<h3 class="!gl-leading-20 gl-font-lg gl-m-0">
{{ $options.i18n.descriptionLabel }}
</h3>
</div>

View File

@ -42,7 +42,7 @@ export default {
<item-milestone
v-if="milestone"
:milestone="milestone"
class="gl-display-flex gl-align-items-center gl-max-w-15 gl-font-sm gl-line-height-normal gl-text-gray-900! gl-cursor-help! gl-text-decoration-none!"
class="gl-display-flex gl-align-items-center gl-max-w-15 gl-font-sm gl-leading-normal gl-text-gray-900! gl-cursor-help! gl-text-decoration-none!"
/>
<slot name="left-metadata"></slot>
</div>

View File

@ -42,7 +42,7 @@ export default {
:class="{ flex: !workItem.available }"
>
<span
class="gl-border-gray-100 gl-border-1 gl-border-solid gl-rounded-base gl-pl-2 gl-pt-2 gl-pb-2 gl-pr-3 gl-display-inline-flex gl-align-items-center gl-justify-content-center gl-line-height-normal"
class="gl-border-gray-100 gl-border-1 gl-border-solid gl-rounded-base gl-pl-2 gl-pt-2 gl-pb-2 gl-pr-3 gl-display-inline-flex gl-align-items-center gl-justify-content-center gl-leading-normal"
data-testid="work-item-wrapper"
>
<span
@ -98,7 +98,7 @@ export default {
/>
<span
:key="nestedWorkItem.id"
class="gl-border-gray-100 gl-border-1 gl-border-solid gl-rounded-base gl-pl-2 gl-pt-2 gl-pb-2 gl-pr-3 gl-display-inline-flex gl-align-items-center gl-justify-content-center gl-mt-2 gl-line-height-normal"
class="gl-border-gray-100 gl-border-1 gl-border-solid gl-rounded-base gl-pl-2 gl-pt-2 gl-pb-2 gl-pr-3 gl-display-inline-flex gl-align-items-center gl-justify-content-center gl-mt-2 gl-leading-normal"
:class="nestedWorkItemTypeMargin(index, workItem)"
>
<span

View File

@ -9,7 +9,7 @@
- content_wrapper_class = @compact ? 'gl-flex-grow-1 gl-flex-basis-0 gl-px-4' : 'gl-m-auto gl-p-5'
.gl-empty-state-content.gl-mx-auto.gl-my-0{ class: content_wrapper_class }
- title_class = @compact ? 'h5' : 'h4'
%h1.gl-font-size-h-display.gl-line-height-36.gl-mt-0.gl-mb-0{ class: title_class }
%h1.gl-font-size-h-display.gl-leading-36.gl-mt-0.gl-mb-0{ class: title_class }
= @title
- if description?

View File

@ -5,7 +5,7 @@
%span.gl-font-base.gl-font-weight-normal{ data: { testid: 'title-text' } }
= title || @title
.gl-single-stat-content.gl-display-flex.gl-align-items-baseline.gl-font-weight-bold.gl-text-gray-900
%span.gl-single-stat-number.gl-line-height-1{ class: unit_class, data: { testid: 'displayValue' } }
%span.gl-single-stat-number.gl-leading-1{ class: unit_class, data: { testid: 'displayValue' } }
%span{ data: { testid: @stat_value_testid } }
= stat_value || @stat_value
- if unit?

View File

@ -308,7 +308,7 @@ module EventsHelper
def icon_for_profile_event(event)
base_class = 'system-note-image'
classes = current_path?('users#activity') ? "#{event.action_name.parameterize}-icon gl-rounded-full gl-bg-gray-50 gl-line-height-0" : "user-avatar"
classes = current_path?('users#activity') ? "#{event.action_name.parameterize}-icon gl-rounded-full gl-bg-gray-50 gl-leading-0" : "user-avatar"
content = current_path?('users#activity') ? icon_for_event(event.action_name, size: 14) : author_avatar(event, size: 32, css_class: 'gl-display-inline-block', project: event.project)
tag.div(class: "#{base_class} #{classes}") { content }

View File

@ -16,22 +16,22 @@ module Analytics
# new API
expose :start_event do
expose :start_event_identifier, as: :identifier, if: -> (s) { s.custom? }
expose :start_event_label, as: :label, using: LabelEntity, if: -> (s) { s.start_event_label_based? }
expose :start_event_identifier, as: :identifier, if: ->(s) { s.custom? }
expose :start_event_label, as: :label, using: LabelEntity, if: ->(s) { s.start_event_label_based? }
expose :start_event_html_description, as: :html_description
end
expose :end_event do
expose :end_event_identifier, as: :identifier, if: -> (s) { s.custom? }
expose :end_event_label, as: :label, using: LabelEntity, if: -> (s) { s.end_event_label_based? }
expose :end_event_identifier, as: :identifier, if: ->(s) { s.custom? }
expose :end_event_label, as: :label, using: LabelEntity, if: ->(s) { s.end_event_label_based? }
expose :end_event_html_description, as: :html_description
end
# old API
expose :start_event_identifier, if: -> (s) { s.custom? }
expose :end_event_identifier, if: -> (s) { s.custom? }
expose :start_event_label, using: LabelEntity, if: -> (s) { s.start_event_label_based? }
expose :end_event_label, using: LabelEntity, if: -> (s) { s.end_event_label_based? }
expose :start_event_identifier, if: ->(s) { s.custom? }
expose :end_event_identifier, if: ->(s) { s.custom? }
expose :start_event_label, using: LabelEntity, if: ->(s) { s.start_event_label_based? }
expose :end_event_label, using: LabelEntity, if: ->(s) { s.end_event_label_based? }
expose :start_event_html_description
expose :end_event_html_description

View File

@ -16,15 +16,15 @@ class BaseDiscussionEntity < Grape::Entity
expose :individual_note?, as: :individual_note
expose :resolvable?, as: :resolvable
expose :truncated_diff_lines, using: DiffLineEntity, if: -> (d, _) { d.diff_discussion? && d.on_text? && (d.expanded? || render_truncated_diff_lines?) }
expose :truncated_diff_lines, using: DiffLineEntity, if: ->(d, _) { d.diff_discussion? && d.on_text? && (d.expanded? || render_truncated_diff_lines?) }
with_options if: -> (d, _) { d.diff_discussion? } do
with_options if: ->(d, _) { d.diff_discussion? } do
expose :active?, as: :active
expose :line_code
expose :diff_file, using: DiscussionDiffFileEntity
end
with_options if: -> (d, _) { d.diff_discussion? && !d.legacy_diff_discussion? } do
with_options if: ->(d, _) { d.diff_discussion? && !d.legacy_diff_discussion? } do
expose :position
expose :original_position
end
@ -33,7 +33,7 @@ class BaseDiscussionEntity < Grape::Entity
discussion_path(discussion)
end
with_options if: -> (d, _) { d.noteable.supports_resolvable_notes? } do
with_options if: ->(d, _) { d.noteable.supports_resolvable_notes? } do
expose :resolved?, as: :resolved
expose :resolved_by_push?, as: :resolved_by_push
expose :resolved_by, using: NoteUserEntity
@ -43,12 +43,12 @@ class BaseDiscussionEntity < Grape::Entity
resolve_project_discussion_path(discussion.project, discussion.noteable_collection_name, discussion.noteable, discussion.id)
end
expose :resolve_with_issue_path, if: -> (d, _) { d.noteable.is_a?(MergeRequest) } do |discussion|
expose :resolve_with_issue_path, if: ->(d, _) { d.noteable.is_a?(MergeRequest) } do |discussion|
new_project_issue_path(discussion.project, merge_request_to_resolve_discussions_of: discussion.noteable.iid, discussion_to_resolve: discussion.id) if discussion&.project&.issues_enabled?
end
end
expose :truncated_diff_lines_path, if: -> (d, _) { !d.expanded? && !render_truncated_diff_lines? } do |discussion|
expose :truncated_diff_lines_path, if: ->(d, _) { !d.expanded? && !render_truncated_diff_lines? } do |discussion|
project_discussion_path(discussion.project, discussion.noteable_collection_name, discussion.noteable, discussion)
end

View File

@ -11,7 +11,7 @@ class BlobEntity < Grape::Entity
IconsHelper.file_type_icon_class('file', blob.mode, blob.name)
end
expose :url, if: -> (*) { request.respond_to?(:ref) } do |blob|
expose :url, if: ->(*) { request.respond_to?(:ref) } do |blob|
project_blob_path(request.project, File.join(request.ref, blob.path))
end
end

View File

@ -13,9 +13,9 @@ class BuildActionEntity < Grape::Entity
expose :playable?, as: :playable
expose :scheduled?, as: :scheduled
expose :scheduled_at, if: -> (*) { scheduled? }
expose :scheduled_at, if: ->(*) { scheduled? }
expose :unschedule_path, if: -> (build) { build.scheduled? } do |build|
expose :unschedule_path, if: ->(build) { build.scheduled? } do |build|
unschedule_project_job_path(build.project, build)
end

View File

@ -11,7 +11,7 @@ class BuildDetailsEntity < Ci::JobEntity
expose :metadata, using: BuildMetadataEntity
expose :pipeline, using: Ci::PipelineEntity
expose :deployment_status, if: -> (*) { build.deployment_job? } do
expose :deployment_status, if: ->(*) { build.deployment_job? } do
expose :deployment_status, as: :status
expose :persisted_environment, as: :environment do |build, options|
options.merge(deployment_details: false).then do |opts|
@ -20,30 +20,30 @@ class BuildDetailsEntity < Ci::JobEntity
end
end
expose :deployment_cluster, if: -> (build) { build&.deployment&.cluster } do |build, options|
expose :deployment_cluster, if: ->(build) { build&.deployment&.cluster } do |build, options|
# Until data is copied over from deployments.cluster_id, this entity must represent Deployment instead of DeploymentCluster
# https://gitlab.com/gitlab-org/gitlab/issues/202628
DeploymentClusterEntity.represent(build.deployment, options)
end
expose :artifact, if: -> (*) { can?(current_user, :read_job_artifacts, build) } do
expose :download_path, if: -> (*) { build.locked_artifacts? || build.artifacts? } do |build|
expose :artifact, if: ->(*) { can?(current_user, :read_job_artifacts, build) } do
expose :download_path, if: ->(*) { build.locked_artifacts? || build.artifacts? } do |build|
fast_download_project_job_artifacts_path(project, build)
end
expose :browse_path, if: -> (*) { build.locked_artifacts? || build.browsable_artifacts? } do |build|
expose :browse_path, if: ->(*) { build.locked_artifacts? || build.browsable_artifacts? } do |build|
fast_browse_project_job_artifacts_path(project, build)
end
expose :keep_path, if: -> (*) { (build.has_expired_locked_archive_artifacts? || build.has_expiring_archive_artifacts?) && can?(current_user, :update_build, build) } do |build|
expose :keep_path, if: ->(*) { (build.has_expired_locked_archive_artifacts? || build.has_expiring_archive_artifacts?) && can?(current_user, :update_build, build) } do |build|
fast_keep_project_job_artifacts_path(project, build)
end
expose :expire_at, if: -> (*) { build.artifacts_expire_at.present? } do |build|
expose :expire_at, if: ->(*) { build.artifacts_expire_at.present? } do |build|
build.artifacts_expire_at
end
expose :expired, if: -> (*) { build.artifacts_expire_at.present? } do |build|
expose :expired, if: ->(*) { build.artifacts_expire_at.present? } do |build|
build.artifacts_expired?
end
@ -55,24 +55,24 @@ class BuildDetailsEntity < Ci::JobEntity
expose :report_artifacts,
as: :reports,
using: JobArtifactReportEntity,
if: -> (*) { can?(current_user, :read_build, build) }
if: ->(*) { can?(current_user, :read_build, build) }
expose :job_annotations,
as: :annotations,
using: Ci::JobAnnotationEntity
expose :erased_by, if: -> (*) { build.erased? }, using: UserEntity
expose :erase_path, if: -> (*) { build.erasable? && can?(current_user, :erase_build, build) } do |build|
expose :erased_by, if: ->(*) { build.erased? }, using: UserEntity
expose :erase_path, if: ->(*) { build.erasable? && can?(current_user, :erase_build, build) } do |build|
erase_project_job_path(project, build)
end
expose :failure_reason, if: -> (*) { build.failed? }
expose :failure_reason, if: ->(*) { build.failed? }
expose :terminal_path, if: -> (*) { can_create_build_terminal? } do |build|
expose :terminal_path, if: ->(*) { can_create_build_terminal? } do |build|
terminal_project_job_path(project, build)
end
expose :merge_request, if: -> (*) { can?(current_user, :read_merge_request, build.merge_request) } do
expose :merge_request, if: ->(*) { can?(current_user, :read_merge_request, build.merge_request) } do
expose :iid do |build|
build.merge_request.iid
end
@ -82,7 +82,7 @@ class BuildDetailsEntity < Ci::JobEntity
end
end
expose :new_issue_path, if: -> (*) { can?(request.current_user, :create_issue, project) && build.failed? } do |build|
expose :new_issue_path, if: ->(*) { can?(request.current_user, :create_issue, project) && build.failed? } do |build|
new_project_issue_path(project, issue: build_failed_issue_options)
end
@ -90,7 +90,7 @@ class BuildDetailsEntity < Ci::JobEntity
raw_project_job_path(project, build)
end
expose :trigger, if: -> (*) { build.trigger_request } do
expose :trigger, if: ->(*) { build.trigger_request } do
expose :trigger_short_token, as: :short_token
expose :trigger_variables, as: :variables, using: TriggerVariableEntity
@ -105,7 +105,7 @@ class BuildDetailsEntity < Ci::JobEntity
build.any_runners_available?
end
expose :settings_path, if: -> (*) { can_admin_build? } do |build|
expose :settings_path, if: ->(*) { can_admin_build? } do |build|
project_runners_path(project)
end
end

View File

@ -5,7 +5,7 @@ module Ci
expose :name
expose :scheduling_type
expose :needs, if: -> (job, _) { job.scheduling_type_dag? } do |job|
expose :needs, if: ->(job, _) { job.scheduling_type_dag? } do |job|
job.needs.pluck(:name) # rubocop: disable CodeReuse/ActiveRecord
end
end

View File

@ -8,7 +8,7 @@ module Ci
expose :name
expose :started?, as: :started
expose :started_at, if: -> (job) { job.started? }
expose :started_at, if: ->(job) { job.started? }
expose :complete?, as: :complete
expose :archived?, as: :archived
@ -17,11 +17,11 @@ module Ci
job_path(job)
end
expose :retry_path, if: -> (*) { retryable? } do |job|
expose :retry_path, if: ->(*) { retryable? } do |job|
path_to(:retry_namespace_project_job, job)
end
expose :cancel_path, if: -> (*) { cancelable? } do |job|
expose :cancel_path, if: ->(*) { cancelable? } do |job|
path_to(
:cancel_namespace_project_job,
job,
@ -29,24 +29,24 @@ module Ci
)
end
expose :play_path, if: -> (*) { playable? } do |job|
expose :play_path, if: ->(*) { playable? } do |job|
path_to(:play_namespace_project_job, job)
end
expose :unschedule_path, if: -> (*) { scheduled? } do |job|
expose :unschedule_path, if: ->(*) { scheduled? } do |job|
path_to(:unschedule_namespace_project_job, job)
end
expose :playable?, as: :playable
expose :scheduled?, as: :scheduled
expose :scheduled_at, if: -> (*) { scheduled? }
expose :scheduled_at, if: ->(*) { scheduled? }
expose :created_at
expose :queued_at
expose :queued_duration
expose :updated_at
expose :detailed_status, as: :status, with: DetailedStatusEntity
expose :callout_message, if: -> (*) { failed? && !job.script_failure? }
expose :recoverable, if: -> (*) { failed? }
expose :callout_message, if: ->(*) { failed? && !job.script_failure? }
expose :recoverable, if: ->(*) { failed? }
private

View File

@ -45,7 +45,7 @@ class Ci::PipelineEntity < Grape::Entity
expose :event_type_name
end
expose :merge_request, if: -> (*) { has_presentable_merge_request? }, with: MergeRequestForPipelineEntity do |pipeline|
expose :merge_request, if: ->(*) { has_presentable_merge_request? }, with: MergeRequestForPipelineEntity do |pipeline|
pipeline.merge_request.present(current_user: request.current_user)
end
@ -66,26 +66,26 @@ class Ci::PipelineEntity < Grape::Entity
end
expose :commit, using: CommitEntity
expose :merge_request_event_type, if: -> (pipeline, _) { pipeline.merge_request? }
expose :source_sha, if: -> (pipeline, _) { pipeline.merged_result_pipeline? }
expose :target_sha, if: -> (pipeline, _) { pipeline.merged_result_pipeline? }
expose :yaml_errors, if: -> (pipeline, _) { pipeline.has_yaml_errors? }
expose :failure_reason, if: -> (pipeline, _) { pipeline.failure_reason? }
expose :merge_request_event_type, if: ->(pipeline, _) { pipeline.merge_request? }
expose :source_sha, if: ->(pipeline, _) { pipeline.merged_result_pipeline? }
expose :target_sha, if: ->(pipeline, _) { pipeline.merged_result_pipeline? }
expose :yaml_errors, if: ->(pipeline, _) { pipeline.has_yaml_errors? }
expose :failure_reason, if: ->(pipeline, _) { pipeline.failure_reason? }
expose :retry_path, if: -> (*) { can_retry? } do |pipeline|
expose :retry_path, if: ->(*) { can_retry? } do |pipeline|
retry_project_pipeline_path(pipeline.project, pipeline)
end
expose :cancel_path, if: -> (*) { can_cancel? } do |pipeline|
expose :cancel_path, if: ->(*) { can_cancel? } do |pipeline|
cancel_project_pipeline_path(pipeline.project, pipeline)
end
expose :delete_path, if: -> (*) { can_delete? } do |pipeline|
expose :delete_path, if: ->(*) { can_delete? } do |pipeline|
project_pipeline_path(pipeline.project, pipeline)
end
expose :failed_builds,
if: -> (_, options) { !options[:disable_failed_builds] && can_retry? },
if: ->(_, options) { !options[:disable_failed_builds] && can_retry? },
using: Ci::JobEntity do |pipeline|
pipeline.failed_builds.each do |build|
build.project = pipeline.project

View File

@ -22,7 +22,7 @@ module Ci
trigger.can_access_project?
end
expose :project_trigger_path, if: -> (trigger) { can_manage_trigger?(trigger) } do |trigger|
expose :project_trigger_path, if: ->(trigger) { can_manage_trigger?(trigger) } do |trigger|
project_trigger_path(options[:project], trigger)
end

View File

@ -8,7 +8,7 @@ module UserStatusTooltip
include UsersHelper
included do
expose :status_tooltip_html, if: -> (*) { status_loaded? } do |user|
expose :status_tooltip_html, if: ->(*) { status_loaded? } do |user|
user_status(user)
end
@ -16,7 +16,7 @@ module UserStatusTooltip
status_loaded? && !!user.status&.customized?
end
expose :availability, if: -> (*) { status_loaded? } do |user|
expose :availability, if: ->(*) { status_loaded? } do |user|
user.status&.availability
end

View File

@ -10,7 +10,7 @@ class ContainerRepositoryEntity < Grape::Entity
project_registry_repository_tags_path(project, repository, format: :json)
end
expose :destroy_path, if: -> (*) { can_destroy? } do |repository|
expose :destroy_path, if: ->(*) { can_destroy? } do |repository|
project_container_registry_path(project, repository, format: :json)
end

View File

@ -5,7 +5,7 @@ class ContainerTagEntity < Grape::Entity
expose :name, :path, :location, :digest, :revision, :short_revision, :total_size, :created_at
expose :destroy_path, if: -> (*) { can_destroy? } do |tag|
expose :destroy_path, if: ->(*) { can_destroy? } do |tag|
project_registry_repository_tag_path(project, tag.repository, tag.name)
end

View File

@ -2,7 +2,7 @@
.event-item-timestamp.gl-font-sm
= time_ago_with_tooltip(event.created_at)
.system-note-image.gl-rounded-full.gl-bg-gray-50.gl-line-height-0= sprite_icon('eye-slash', size: 14, css_class: 'icon')
.system-note-image.gl-rounded-full.gl-bg-gray-50.gl-leading-0= sprite_icon('eye-slash', size: 14, css_class: 'icon')
= event_user_info(event)

View File

@ -15,7 +15,7 @@
= labels_function_introduction
.other-labels.gl-rounded-base.gl-border.gl-bg-gray-10
.gl-px-5.gl-py-4.gl-bg-white.gl-rounded-top-base.gl-border-b
%h3.card-title.h5.gl-m-0.gl-relative.gl-line-height-24
%h3.card-title.h5.gl-m-0.gl-relative.gl-leading-24
= _('Labels')
%ul.manage-labels-list.js-other-labels.gl-px-3.gl-rounded-base
= render partial: 'shared/label', collection: @labels, as: :label, locals: { use_label_priority: false, subject: @group }

View File

@ -2,6 +2,6 @@
- text_only = local_assigns.fetch(:text_only, false)
- if text_only
%span.has-tooltip.gl-line-height-normal.gl-font-sm{ title: tooltip_title }= _('Imported')
%span.has-tooltip.gl-leading-normal.gl-font-sm{ title: tooltip_title }= _('Imported')
- else
= render Pajamas::BadgeComponent.new(_('Imported'), size: :sm, title: tooltip_title, class: 'has-tooltip')

View File

@ -20,7 +20,7 @@
= brand_header_logo({add_gitlab_black_text: true})
- if current_user
.gl-display-flex.gl-gap-2.gl-align-items-center
.gl-text-right.gl-line-height-normal
.gl-text-right.gl-leading-normal
.gl-font-weight-bold= current_user.name
.gl-text-gray-700 @#{current_user.username}
= render Pajamas::AvatarComponent.new(current_user, size: 32, avatar_options: { data: { testid: 'user-avatar-content' } })

View File

@ -13,7 +13,7 @@
- if params[:search].present?
= hidden_field_tag :search, params[:search]
- if @can_bulk_update
.check-all-holder.gl-display-none.gl-sm-display-block.hidden.gl-float-left.gl-mr-3.gl-line-height-36
.check-all-holder.gl-display-none.gl-sm-display-block.hidden.gl-float-left.gl-mr-3.gl-leading-36
= render Pajamas::CheckboxTagComponent.new(name: 'check-all-issues', value: nil) do |c|
- c.with_label do
%span.gl-sr-only

View File

@ -3,7 +3,7 @@
.content-editor-switcher.gl-display-inline-flex.gl-align-items-center
= render Pajamas::ButtonComponent.new(category: :tertiary, icon: 'markdown-mark', size: :small, href: help_page_path('user/markdown'), target: '_blank', button_options: { class: 'gl-px-3!' })
- if supports_file_upload
%span.uploading-container.gl-line-height-32.gl-font-sm
%span.uploading-container.gl-leading-32.gl-font-sm
%span.uploading-progress-container.hide
= sprite_icon('paperclip', css_class: 'gl-icon gl-vertical-align-text-bottom')
%span.attaching-file-message

View File

@ -28,7 +28,7 @@
.project-cell{ class: css_class }
.project-details.gl-pr-9.gl-sm-pr-0.gl-w-full.gl-display-flex.gl-flex-direction-column{ data: { testid: 'project-content', qa_project_name: project.name } }
.gl-display-flex.gl-align-items-baseline.gl-flex-wrap
%h2.gl-font-base.gl-line-height-20.gl-my-0.gl-overflow-wrap-anywhere
%h2.gl-font-base.gl-leading-20.gl-my-0.gl-overflow-wrap-anywhere
= link_to project_path(project), class: 'text-plain gl-mr-3 js-prefetch-document', title: project.name do
%span.namespace-name.gl-font-weight-normal
- if project.namespace && !skip_namespace

View File

@ -26,7 +26,7 @@
.gl-w-full.gl-pt-2.gl-break-anywhere
.gl-display-flex.gl-align-items-center.gl-flex-wrap
%h2.gl-font-base.gl-line-height-20.gl-my-0
%h2.gl-font-base.gl-leading-20.gl-my-0
= link_to project_path(project), class: 'text-plain gl-mr-3 js-prefetch-document', title: project.name do
%span.namespace-name.gl-font-weight-normal
- if project.namespace && !skip_namespace

View File

@ -32,7 +32,7 @@
- if @user.status&.busy?
= render Pajamas::BadgeComponent.new(s_('UserProfile|Busy'), size: 'sm', variant: 'warning', class: 'gl-absolute gl-display-flex gl-justify-content-center gl-align-items-center gl-left-1/2 gl-bg-gray-50 gl-border gl-border-white -gl-translate-x-1/2 gl-top-full -gl-mt-3')
%div
%h1.gl-heading-1.gl-line-height-1.gl-mr-2{ class: 'gl-my-0!', itemprop: 'name' }
%h1.gl-heading-1.gl-leading-1.gl-mr-2{ class: 'gl-my-0!', itemprop: 'name' }
= user_display_name(@user)
.gl-font-size-h2.gl-text-gray-500.gl-font-weight-normal.gl-my-0
= @user.to_reference

View File

@ -119,6 +119,15 @@ module.exports = {
// TODO: Backport to GitLab UI.
lineHeight: {
reset: 'inherit',
0: '0',
1: '1',
normal: '1rem',
20: '1.25rem',
24: '1.5rem',
28: '1.75rem',
32: '2rem',
36: '2.25rem',
42: '2.625rem',
},
transitionDuration: {
DEFAULT: '200ms',

Some files were not shown because too many files have changed in this diff Show More