Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
9a66377d7f
commit
e1833ba983
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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="
|
||||
__(
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -44,6 +44,11 @@ export default {
|
|||
});
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
items() {
|
||||
this.currentPage = 1;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
selectItem(item) {
|
||||
const selectedItem = item[0];
|
||||
|
|
|
|||
|
|
@ -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')">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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" />
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)" />
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 />
|
||||
|
|
|
|||
|
|
@ -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 />
|
||||
|
|
|
|||
|
|
@ -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" />
|
||||
|
|
|
|||
|
|
@ -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') }}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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 />
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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" />
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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')"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -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" />
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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" />
|
||||
|
|
|
|||
|
|
@ -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!"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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?
|
||||
|
|
|
|||
|
|
@ -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?
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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' } })
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Reference in New Issue