Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
14dc95c832
commit
d8ee0721db
|
|
@ -95,6 +95,7 @@ qa:selectors:
|
|||
.pipeline-tier-base:
|
||||
extends:
|
||||
- .preflight-job-base
|
||||
image: alpine:latest
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
|
|
|
|||
|
|
@ -2962,6 +2962,8 @@
|
|||
|
||||
.preflight:rules:pipeline-tier-1:
|
||||
rules:
|
||||
- <<: *if-merge-request-labels-pipeline-expedite
|
||||
when: never
|
||||
- <<: *if-merge-request-tier-1
|
||||
allow_failure: true
|
||||
- !reference [".prevent-tier-2-and-above", rules]
|
||||
|
|
|
|||
|
|
@ -168,19 +168,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'
|
||||
- 'rubocop/cop/rspec/modify_sidekiq_middleware.rb'
|
||||
- 'scripts/packages/automated_cleanup.rb'
|
||||
- 'scripts/rubocop-parse'
|
||||
- 'sidekiq_cluster/sidekiq_cluster.rb'
|
||||
- 'spec/benchmarks/banzai_benchmark.rb'
|
||||
- 'spec/components/previews/pajamas/alert_component_preview.rb'
|
||||
- 'spec/components/previews/pajamas/banner_component_preview.rb'
|
||||
- 'spec/components/previews/pajamas/button_component_preview.rb'
|
||||
- 'spec/graphql/features/authorization_spec.rb'
|
||||
- 'spec/initializers/secret_token_spec.rb'
|
||||
- 'spec/lib/api/every_api_endpoint_spec.rb'
|
||||
- 'spec/lib/atlassian/jira_connect/client_spec.rb'
|
||||
- 'spec/lib/backup/dump/postgres_spec.rb'
|
||||
- 'spec/lib/backup/manager_spec.rb'
|
||||
- 'spec/lib/bulk_imports/common/pipelines/lfs_objects_pipeline_spec.rb'
|
||||
- 'spec/lib/container_registry/blob_spec.rb'
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
bb9d396df20bb7abda6fac6bf155ae30b939e41f
|
||||
3c57fe552dc067f60db94b398d26592fcf4502c0
|
||||
|
|
|
|||
|
|
@ -575,17 +575,17 @@
|
|||
{"name":"rouge","version":"4.2.0","platform":"ruby","checksum":"60dd666b3a223467dc72f5b7384764dfd7ad4e50b0df9eff072be58123506eba"},
|
||||
{"name":"rqrcode","version":"2.2.0","platform":"ruby","checksum":"23eea88bb44c7ee6d6cab9354d08c287f7ebcdc6112e1fe7bcc2d010d1ffefc1"},
|
||||
{"name":"rqrcode_core","version":"1.2.0","platform":"ruby","checksum":"cf4989dc82d24e2877984738c4ee569308625fed2a810960f1b02d68d0308d1a"},
|
||||
{"name":"rspec","version":"3.12.0","platform":"ruby","checksum":"ccc41799a43509dc0be84070e3f0410ac95cbd480ae7b6c245543eb64162399c"},
|
||||
{"name":"rspec","version":"3.13.0","platform":"ruby","checksum":"d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993"},
|
||||
{"name":"rspec-benchmark","version":"0.6.0","platform":"ruby","checksum":"1014adb57ec2599a2455c63884229f367a2fff6a63a77fd68ce5d804c83dd6cf"},
|
||||
{"name":"rspec-core","version":"3.12.2","platform":"ruby","checksum":"155b54480f28e2b2813185077fe435c2d663031616360ed3b179a9d6a55d2551"},
|
||||
{"name":"rspec-expectations","version":"3.12.3","platform":"ruby","checksum":"093d18e2e7e0a2c619ef8f7343d442fc6c0793fb7897d56f16f26c8a9d244416"},
|
||||
{"name":"rspec-mocks","version":"3.12.6","platform":"ruby","checksum":"de51a4148ba2ce6f1c1646a2a03e9df2f52da9a42b164f2e7467b2cbe37e07bf"},
|
||||
{"name":"rspec-core","version":"3.13.0","platform":"ruby","checksum":"557792b4e88da883d580342b263d9652b6a10a12d5bda9ef967b01a48f15454c"},
|
||||
{"name":"rspec-expectations","version":"3.13.0","platform":"ruby","checksum":"621d48c62262f955421eaa418130744760802cad47e781df70dba4d9f897102e"},
|
||||
{"name":"rspec-mocks","version":"3.13.1","platform":"ruby","checksum":"087189899c337937bcf1d66a50dc3fc999ac88335bbeba4d385c2a38c87d7b38"},
|
||||
{"name":"rspec-parameterized","version":"1.0.2","platform":"ruby","checksum":"b456dec0091924175ac13963e173cdbaa2ab3e1581a405a948addc34e3f3f4c2"},
|
||||
{"name":"rspec-parameterized-core","version":"1.0.0","platform":"ruby","checksum":"287b494985e79821160af63aba4f91db8dbfa9a21cb200db34ba38f40e16ccc1"},
|
||||
{"name":"rspec-parameterized-table_syntax","version":"1.0.0","platform":"ruby","checksum":"d7df951eff9c5dd367ca7d5f9ae4853bb7ab7941f9d5b35bba361d112704988c"},
|
||||
{"name":"rspec-rails","version":"6.1.1","platform":"ruby","checksum":"bd949e61f89379f410ea1e43133163282f8d977c683ce6d10bf5aef6b1e995b2"},
|
||||
{"name":"rspec-rails","version":"6.1.2","platform":"ruby","checksum":"02874ab2e3b09001742af389c48739bed8706943e453afaea5e12614a83b990b"},
|
||||
{"name":"rspec-retry","version":"0.6.2","platform":"ruby","checksum":"6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858"},
|
||||
{"name":"rspec-support","version":"3.12.0","platform":"ruby","checksum":"dd4d44b247ff679b95b5607ac5641d197a5f9b1d33f916123cb98fc5f917c58b"},
|
||||
{"name":"rspec-support","version":"3.13.1","platform":"ruby","checksum":"48877d4f15b772b7538f3693c22225f2eda490ba65a0515c4e7cf6f2f17de70f"},
|
||||
{"name":"rspec_junit_formatter","version":"0.6.0","platform":"ruby","checksum":"40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15"},
|
||||
{"name":"rspec_profiling","version":"0.0.9","platform":"ruby","checksum":"6199be2daeaa14bac3d10d704dbb0a8df052cf046332c505603263aea24f7590"},
|
||||
{"name":"rubocop","version":"1.62.1","platform":"ruby","checksum":"aeb1ec501aef5833617b3b6a1512303806218c349c28ce5b3ea72e3782ad4a35"},
|
||||
|
|
|
|||
32
Gemfile.lock
32
Gemfile.lock
|
|
@ -1525,23 +1525,23 @@ GEM
|
|||
chunky_png (~> 1.0)
|
||||
rqrcode_core (~> 1.0)
|
||||
rqrcode_core (1.2.0)
|
||||
rspec (3.12.0)
|
||||
rspec-core (~> 3.12.0)
|
||||
rspec-expectations (~> 3.12.0)
|
||||
rspec-mocks (~> 3.12.0)
|
||||
rspec (3.13.0)
|
||||
rspec-core (~> 3.13.0)
|
||||
rspec-expectations (~> 3.13.0)
|
||||
rspec-mocks (~> 3.13.0)
|
||||
rspec-benchmark (0.6.0)
|
||||
benchmark-malloc (~> 0.2)
|
||||
benchmark-perf (~> 0.6)
|
||||
benchmark-trend (~> 0.4)
|
||||
rspec (>= 3.0)
|
||||
rspec-core (3.12.2)
|
||||
rspec-support (~> 3.12.0)
|
||||
rspec-expectations (3.12.3)
|
||||
rspec-core (3.13.0)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-expectations (3.13.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.12.0)
|
||||
rspec-mocks (3.12.6)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-mocks (3.13.1)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.12.0)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-parameterized (1.0.2)
|
||||
rspec-parameterized-core (< 2)
|
||||
rspec-parameterized-table_syntax (< 2)
|
||||
|
|
@ -1553,17 +1553,17 @@ GEM
|
|||
rspec-parameterized-table_syntax (1.0.0)
|
||||
binding_of_caller
|
||||
rspec-parameterized-core (< 2)
|
||||
rspec-rails (6.1.1)
|
||||
rspec-rails (6.1.2)
|
||||
actionpack (>= 6.1)
|
||||
activesupport (>= 6.1)
|
||||
railties (>= 6.1)
|
||||
rspec-core (~> 3.12)
|
||||
rspec-expectations (~> 3.12)
|
||||
rspec-mocks (~> 3.12)
|
||||
rspec-support (~> 3.12)
|
||||
rspec-core (~> 3.13)
|
||||
rspec-expectations (~> 3.13)
|
||||
rspec-mocks (~> 3.13)
|
||||
rspec-support (~> 3.13)
|
||||
rspec-retry (0.6.2)
|
||||
rspec-core (> 3.3)
|
||||
rspec-support (3.12.0)
|
||||
rspec-support (3.13.1)
|
||||
rspec_junit_formatter (0.6.0)
|
||||
rspec-core (>= 2, < 4, != 2.12.0)
|
||||
rspec_profiling (0.0.9)
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ export default {
|
|||
<div>
|
||||
<nav class="review-bar-component js-review-bar" data-testid="review_bar_component">
|
||||
<div
|
||||
class="review-bar-content d-flex gl-justify-content-end"
|
||||
class="review-bar-content gl-flex gl-justify-content-end"
|
||||
data-testid="review-bar-content"
|
||||
>
|
||||
<preview-dropdown />
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ export default {
|
|||
};
|
||||
</script>
|
||||
<template>
|
||||
<div class="file-header-content d-flex gl-align-items-center gl-leading-1">
|
||||
<div class="file-header-content gl-flex gl-align-items-center gl-leading-1">
|
||||
<slot name="filepath-prepend"></slot>
|
||||
|
||||
<template v-if="fileName">
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ export default {
|
|||
:key="user.username"
|
||||
:value="user.username"
|
||||
>
|
||||
<div class="d-flex">
|
||||
<div class="gl-flex">
|
||||
<gl-avatar :size="32" :src="user.avatar_url" />
|
||||
<div>
|
||||
<div>{{ user.name }}</div>
|
||||
|
|
|
|||
|
|
@ -63,9 +63,9 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="d-flex gl-flex-direction-column">
|
||||
<div class="gl-flex gl-flex-direction-column">
|
||||
<gl-form-group>
|
||||
<div class="gl-display-flex gl-align-items-center">
|
||||
<div class="gl-flex gl-align-items-center">
|
||||
<h4 class="gl-pr-3 gl-m-0">{{ s__('ClusterIntegration|GitLab Integration') }}</h4>
|
||||
|
||||
<div class="js-cluster-enable-toggle-area">
|
||||
|
|
@ -136,7 +136,7 @@ export default {
|
|||
</gl-sprintf>
|
||||
</div>
|
||||
</gl-form-group>
|
||||
<div v-if="editable" class="form group gl-display-flex gl-justify-content-end">
|
||||
<div v-if="editable" class="form group gl-flex gl-justify-content-end">
|
||||
<gl-button
|
||||
category="primary"
|
||||
variant="confirm"
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ function createLink(data, selected, options, index) {
|
|||
link.href = getPropertyWithDefault(data, options, 'url', '#');
|
||||
|
||||
if (options.icon) {
|
||||
link.classList.add('d-flex', 'align-items-center');
|
||||
link.classList.add('gl-flex', 'align-items-center');
|
||||
}
|
||||
|
||||
if (options.trackSuggestionClickedLabel) {
|
||||
|
|
|
|||
|
|
@ -754,7 +754,7 @@ export default {
|
|||
|
||||
<div
|
||||
:data-can-create-note="getNoteableData.current_user.can_create_note"
|
||||
class="files d-flex gl-mt-2"
|
||||
class="files gl-flex gl-mt-2"
|
||||
>
|
||||
<diffs-file-tree :visible="renderFileTree" @toggled="fileTreeToggled" />
|
||||
<div class="col-12 col-md-auto diff-files-holder">
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ export default {
|
|||
</gl-button-group>
|
||||
</div>
|
||||
<div>
|
||||
<div class="d-flex float-left gl-align-items-center align-self-start">
|
||||
<div class="gl-flex float-left gl-items-center align-self-start">
|
||||
<gl-form-checkbox
|
||||
v-if="isSelectable"
|
||||
:checked="checked"
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ export default {
|
|||
</div>
|
||||
<gl-sprintf
|
||||
v-else-if="!commit && hasSourceVersions"
|
||||
class="d-flex gl-align-items-center compare-versions-container"
|
||||
class="gl-flex gl-items-center compare-versions-container"
|
||||
:message="s__('MergeRequest|Compare %{target} and %{source}')"
|
||||
>
|
||||
<template #target>
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="discussion-reply-holder d-flex clearfix">
|
||||
<div class="discussion-reply-holder gl-flex clearfix">
|
||||
<template v-if="userCanReply">
|
||||
<slot v-if="hasForm" name="form"></slot>
|
||||
<template v-else-if="renderReplyPlaceholder">
|
||||
|
|
|
|||
|
|
@ -381,7 +381,7 @@ export default {
|
|||
|
||||
<div
|
||||
v-if="!diffFile.submodule && addMergeRequestButtons"
|
||||
class="file-actions d-flex gl-align-items-center gl-ml-auto gl-align-self-start"
|
||||
class="file-actions gl-flex gl-items-center gl-ml-auto gl-align-self-start"
|
||||
>
|
||||
<diff-stats
|
||||
:diff-file="diffFile"
|
||||
|
|
@ -392,7 +392,7 @@ export default {
|
|||
v-if="isReviewable && showLocalFileReviews"
|
||||
v-gl-tooltip.hover.focus.left
|
||||
data-testid="fileReviewCheckbox"
|
||||
class="gl-mr-5 -gl-mb-3 gl-display-flex gl-align-items-center"
|
||||
class="gl-mr-5 -gl-mb-3 gl-flex gl-items-center"
|
||||
:title="$options.i18n.fileReviewTooltip"
|
||||
:checked="reviewed"
|
||||
@change="toggleReview"
|
||||
|
|
|
|||
|
|
@ -150,8 +150,8 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="tree-list-holder d-flex flex-column" data-testid="file-tree-container">
|
||||
<div class="gl-display-flex gl-align-items-center gl-mb-3">
|
||||
<div class="tree-list-holder gl-flex flex-column" data-testid="file-tree-container">
|
||||
<div class="gl-flex gl-items-center gl-mb-3">
|
||||
<h5 class="gl-display-inline-block gl-my-0">{{ __('Files') }}</h5>
|
||||
<gl-badge size="sm" class="gl-ml-2" data-testid="file-count">{{ realSize }}</gl-badge>
|
||||
<gl-button-group class="gl-ml-auto">
|
||||
|
|
|
|||
|
|
@ -161,11 +161,11 @@ export default {
|
|||
<gl-icon class="gl-text-blue-500 gl-ml-2" name="question-o" />
|
||||
</span>
|
||||
<gl-tooltip :target="() => $refs['legend-icon']" boundary="#content-body">
|
||||
<div class="deploy-board-legend gl-display-flex gl-flex-direction-column">
|
||||
<div class="deploy-board-legend gl-flex gl-flex-direction-column">
|
||||
<div
|
||||
v-for="status in statuses"
|
||||
:key="status.text"
|
||||
class="gl-display-flex gl-align-items-center"
|
||||
class="gl-flex gl-items-center"
|
||||
>
|
||||
<instance-component :status="status.class" :stable="status.stable" />
|
||||
<span class="legend-text gl-ml-3">{{ status.text }}</span>
|
||||
|
|
@ -174,7 +174,7 @@ export default {
|
|||
</gl-tooltip>
|
||||
</div>
|
||||
|
||||
<div class="deploy-board-instances-container d-flex flex-wrap flex-row">
|
||||
<div class="deploy-board-instances-container gl-flex flex-wrap flex-row">
|
||||
<template v-for="(instance, i) in deployBoardData.instances">
|
||||
<instance-component
|
||||
:key="i"
|
||||
|
|
@ -220,7 +220,7 @@ export default {
|
|||
<section v-safe-html="deployBoardSvg" class="deploy-board-empty-state-svg"></section>
|
||||
|
||||
<section class="deploy-board-empty-state-text">
|
||||
<span class="deploy-board-empty-state-title d-flex">{{
|
||||
<span class="deploy-board-empty-state-title gl-flex">{{
|
||||
__('Kubernetes deployment not found')
|
||||
}}</span>
|
||||
<span>
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ export default {
|
|||
<template>
|
||||
<div class="file-holder">
|
||||
<div ref="header" class="file-title file-title-flex-parent">
|
||||
<div class="file-header-content d-flex align-content-center gl-flex-wrap overflow-hidden">
|
||||
<div class="file-header-content gl-flex align-content-center gl-flex-wrap overflow-hidden">
|
||||
<div v-if="hasCode" class="gl-inline-block cursor-pointer" @click="toggle()">
|
||||
<gl-icon :name="collapseIcon" :size="16" class="gl-mr-2" />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -157,9 +157,9 @@ export default {
|
|||
{{ s__('FeatureFlags|Feature flag') }}
|
||||
</div>
|
||||
<div
|
||||
class="table-mobile-content gl-text-left gl-display-flex flex-column js-feature-flag-title gl-mr-5"
|
||||
class="table-mobile-content gl-text-left gl-flex flex-column js-feature-flag-title gl-mr-5"
|
||||
>
|
||||
<div class="gl-display-flex gl-align-items-center">
|
||||
<div class="gl-flex gl-align-items-center">
|
||||
<div class="feature-flag-name text-monospace text-wrap gl-break-anywhere">
|
||||
{{ featureFlag.name }}
|
||||
</div>
|
||||
|
|
@ -180,7 +180,7 @@ export default {
|
|||
{{ s__('FeatureFlags|Environment Specs') }}
|
||||
</div>
|
||||
<div
|
||||
class="table-mobile-content gl-text-left d-flex gl-flex-wrap justify-content-end justify-content-md-start js-feature-flag-environments"
|
||||
class="table-mobile-content gl-text-left gl-flex gl-flex-wrap justify-content-end justify-content-md-start js-feature-flag-environments"
|
||||
>
|
||||
<strategy-label
|
||||
v-for="strategy in featureFlag.strategies"
|
||||
|
|
|
|||
|
|
@ -159,9 +159,9 @@ export default {
|
|||
>
|
||||
<div
|
||||
:class="{ 'project-row-contents': !isGroup }"
|
||||
class="group-row-contents d-flex gl-align-items-center py-2 pr-3"
|
||||
class="group-row-contents gl-flex gl-items-center py-2 pr-3"
|
||||
>
|
||||
<div class="folder-toggle-wrap gl-mr-2 d-flex gl-align-items-center">
|
||||
<div class="folder-toggle-wrap gl-mr-2 !gl-flex gl-items-center">
|
||||
<gl-button
|
||||
v-if="hasChildren"
|
||||
:aria-label="toggleAriaLabel"
|
||||
|
|
@ -180,7 +180,7 @@ export default {
|
|||
class="gl-hidden sm:gl-inline-flex flex-shrink-0 gl-mr-3"
|
||||
/>
|
||||
<a
|
||||
:class="{ 'gl-sm-display-flex': !group.isChildrenLoading }"
|
||||
:class="{ 'sm:gl-flex': !group.isChildrenLoading }"
|
||||
class="gl-hidden gl-text-decoration-none! gl-mr-3"
|
||||
:href="group.relativePath"
|
||||
:aria-label="group.name"
|
||||
|
|
@ -193,10 +193,10 @@ export default {
|
|||
:project-name="group.name"
|
||||
/>
|
||||
</a>
|
||||
<div class="group-text-container d-flex flex-fill gl-align-items-center">
|
||||
<div class="group-text-container !gl-flex flex-fill gl-align-items-center">
|
||||
<div class="group-text flex-grow-1 flex-shrink-1">
|
||||
<div
|
||||
class="gl-display-flex gl-align-items-center gl-flex-wrap title namespace-title gl-font-bold gl-mr-3"
|
||||
class="gl-flex gl-align-items-center gl-flex-wrap title namespace-title gl-font-bold gl-mr-3"
|
||||
>
|
||||
<a
|
||||
v-gl-tooltip.bottom
|
||||
|
|
@ -266,7 +266,7 @@ export default {
|
|||
<gl-badge variant="info">{{ __('Archived') }}</gl-badge>
|
||||
</div>
|
||||
<div
|
||||
class="metadata gl-display-flex gl-flex-grow-1 gl-flex-shrink-0 gl-flex-wrap justify-content-md-between"
|
||||
class="metadata gl-flex gl-flex-grow-1 gl-flex-shrink-0 gl-flex-wrap justify-content-md-between"
|
||||
>
|
||||
<item-stats
|
||||
:item="group"
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ export default {
|
|||
<pagination-links
|
||||
:change="change"
|
||||
:page-info="pageInfo"
|
||||
class="d-flex justify-content-center gl-mt-3"
|
||||
class="!gl-flex justify-content-center gl-mt-3"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<a :href="branchHref" class="btn-link d-flex gl-align-items-center">
|
||||
<span class="d-flex gl-mr-3 ide-search-list-current-icon">
|
||||
<a :href="branchHref" class="btn-link gl-flex gl-items-center">
|
||||
<span class="gl-flex gl-mr-3 ide-search-list-current-icon">
|
||||
<gl-icon v-if="isActive" :size="16" name="mobile-issue-close" />
|
||||
</span>
|
||||
<span>
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ export default {
|
|||
/>
|
||||
<gl-icon name="search" class="gl-ml-5 gl-mt-1 input-icon" />
|
||||
</label>
|
||||
<div class="dropdown-content ide-merge-requests-dropdown-content d-flex">
|
||||
<div class="dropdown-content ide-merge-requests-dropdown-content !gl-flex">
|
||||
<gl-loading-icon
|
||||
v-if="isLoading"
|
||||
size="lg"
|
||||
|
|
@ -84,10 +84,7 @@ export default {
|
|||
<item :item="item" :project-id="currentProjectId" :is-active="isActiveBranch(item)" />
|
||||
</li>
|
||||
</template>
|
||||
<li
|
||||
v-else
|
||||
class="ide-search-list-empty d-flex gl-align-items-center justify-content-center"
|
||||
>
|
||||
<li v-else class="ide-search-list-empty !gl-flex gl-items-center gl-justify-center">
|
||||
<template v-if="hasNoSearchResults">
|
||||
{{ __('No branches found') }}
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -86,15 +86,15 @@ export default {
|
|||
role="button"
|
||||
@click="openFileInEditor"
|
||||
>
|
||||
<span class="multi-file-commit-list-file-path d-flex gl-align-items-center">
|
||||
<span class="multi-file-commit-list-file-path !gl-flex gl-items-center">
|
||||
<file-icon :file-name="file.name" class="gl-mr-3" />
|
||||
<template v-if="file.prevName && file.prevName !== file.name">
|
||||
{{ file.prevName }} →
|
||||
</template>
|
||||
{{ file.name }}
|
||||
</span>
|
||||
<div class="ml-auto d-flex gl-align-items-center">
|
||||
<div class="d-flex gl-align-items-center ide-commit-list-changed-icon">
|
||||
<div class="ml-auto gl-flex gl-items-center">
|
||||
<div class="gl-flex gl-items-center ide-commit-list-changed-icon">
|
||||
<gl-icon :name="iconName" :size="16" :class="iconClass" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ export default {
|
|||
|
||||
<template>
|
||||
<article
|
||||
class="ide position-relative d-flex flex-column align-items-stretch"
|
||||
class="ide position-relative gl-flex flex-column align-items-stretch"
|
||||
:class="{ [`theme-${themeName}`]: themeName }"
|
||||
>
|
||||
<cannot-push-code-alert
|
||||
|
|
@ -143,7 +143,7 @@ export default {
|
|||
:action="canPushCodeStatus.action"
|
||||
/>
|
||||
<error-message v-if="errorMessage" :message="errorMessage" />
|
||||
<div class="ide-view flex-grow d-flex">
|
||||
<div class="ide-view flex-grow gl-flex">
|
||||
<template v-if="loadDeferred">
|
||||
<find-file
|
||||
:files="allBlobs"
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ export default {
|
|||
</template>
|
||||
<template v-else>
|
||||
<ide-project-header :project="currentProject" />
|
||||
<div class="ide-context-body d-flex flex-fill">
|
||||
<div class="ide-context-body gl-flex flex-fill">
|
||||
<activity-bar />
|
||||
<div class="multi-file-commit-panel-inner" data-testid="ide-side-bar-inner">
|
||||
<div class="multi-file-commit-panel-inner-content">
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="ide-status-list d-flex">
|
||||
<div class="ide-status-list gl-flex">
|
||||
<template v-if="activeFile">
|
||||
<div>
|
||||
<gl-link v-gl-tooltip.hover :href="activeFile.permalink" :title="__('Open in file view')">
|
||||
|
|
|
|||
|
|
@ -77,13 +77,13 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="ide-pipeline build-page d-flex flex-column flex-fill">
|
||||
<header class="ide-job-header d-flex gl-align-items-center">
|
||||
<div class="ide-pipeline build-page gl-flex flex-column flex-fill">
|
||||
<header class="ide-job-header gl-flex gl-items-center">
|
||||
<gl-button category="secondary" icon="chevron-left" size="small" @click="setDetailJob(null)">
|
||||
{{ __('View jobs') }}
|
||||
</gl-button>
|
||||
</header>
|
||||
<div class="top-bar d-flex border-left-0 mr-3">
|
||||
<div class="top-bar gl-flex border-left-0 mr-3">
|
||||
<job-description :job="detailJob" />
|
||||
<div class="controllers ml-auto">
|
||||
<a
|
||||
|
|
|
|||
|
|
@ -23,11 +23,8 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="d-flex gl-align-items-center">
|
||||
<ci-icon
|
||||
:status="job.status"
|
||||
class="gl-align-items-center gl-border gl-display-inline-flex gl-z-1"
|
||||
/>
|
||||
<div class="gl-flex gl-items-center">
|
||||
<ci-icon :status="job.status" class="gl-items-center gl-border gl-inline-flex gl-z-1" />
|
||||
<span class="gl-ml-3">
|
||||
{{ job.name }}
|
||||
<a
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<a :href="mergeRequestHref" class="btn-link d-flex gl-align-items-center">
|
||||
<span class="d-flex gl-mr-3 ide-search-list-current-icon">
|
||||
<a :href="mergeRequestHref" class="btn-link gl-flex gl-items-center">
|
||||
<span class="gl-flex gl-mr-3 ide-search-list-current-icon">
|
||||
<gl-icon v-if="isActive" :size="16" name="mobile-issue-close" />
|
||||
</span>
|
||||
<span>
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ export default {
|
|||
/>
|
||||
<gl-icon :size="16" name="search" class="ml-3 input-icon" />
|
||||
</label>
|
||||
<div class="dropdown-content ide-merge-requests-dropdown-content d-flex">
|
||||
<div class="dropdown-content ide-merge-requests-dropdown-content gl-flex">
|
||||
<gl-loading-icon
|
||||
v-if="isLoading"
|
||||
size="lg"
|
||||
|
|
@ -103,10 +103,10 @@ export default {
|
|||
<li v-for="searchType in $options.searchTypes" :key="searchType.type">
|
||||
<button
|
||||
type="button"
|
||||
class="btn-link d-flex gl-align-items-center"
|
||||
class="btn-link gl-flex gl-items-center"
|
||||
@click.stop="setSearchType(searchType)"
|
||||
>
|
||||
<span class="d-flex gl-mr-3 ide-search-list-current-icon">
|
||||
<span class="gl-flex gl-mr-3 ide-search-list-current-icon">
|
||||
<gl-icon :size="16" name="search" />
|
||||
</span>
|
||||
<span>{{ searchType.label }}</span>
|
||||
|
|
@ -122,10 +122,7 @@ export default {
|
|||
/>
|
||||
</li>
|
||||
</template>
|
||||
<li
|
||||
v-else
|
||||
class="ide-search-list-empty d-flex gl-align-items-center justify-content-center"
|
||||
>
|
||||
<li v-else class="ide-search-list-empty gl-flex gl-items-center justify-content-center">
|
||||
{{ __('No merge requests found') }}
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -60,12 +60,12 @@ export default {
|
|||
:class="{
|
||||
show: isOpen,
|
||||
}"
|
||||
class="dropdown d-flex"
|
||||
class="dropdown gl-flex"
|
||||
>
|
||||
<button
|
||||
:aria-label="__('Create new file or directory')"
|
||||
type="button"
|
||||
class="rounded border-0 d-flex ide-entry-dropdown-toggle"
|
||||
class="rounded border-0 gl-flex ide-entry-dropdown-toggle"
|
||||
@click.stop="openDropdown()"
|
||||
>
|
||||
<gl-icon name="ellipsis_v" />
|
||||
|
|
@ -75,7 +75,7 @@ export default {
|
|||
<li>
|
||||
<item-button
|
||||
:label="__('New file')"
|
||||
class="d-flex"
|
||||
class="gl-flex"
|
||||
icon="doc-new"
|
||||
icon-classes="mr-2"
|
||||
@click="createNewItem('blob')"
|
||||
|
|
@ -85,7 +85,7 @@ export default {
|
|||
<li>
|
||||
<item-button
|
||||
:label="__('New directory')"
|
||||
class="d-flex"
|
||||
class="gl-flex"
|
||||
icon="folder-new"
|
||||
icon-classes="mr-2"
|
||||
@click="createNewItem($options.modalTypes.tree)"
|
||||
|
|
@ -96,7 +96,7 @@ export default {
|
|||
<li>
|
||||
<item-button
|
||||
:label="__('Rename/Move')"
|
||||
class="d-flex"
|
||||
class="gl-flex"
|
||||
icon="pencil"
|
||||
icon-classes="mr-2"
|
||||
@click="createNewItem($options.modalTypes.rename)"
|
||||
|
|
@ -105,7 +105,7 @@ export default {
|
|||
<li>
|
||||
<item-button
|
||||
:label="__('Delete')"
|
||||
class="d-flex"
|
||||
class="gl-flex"
|
||||
icon="remove"
|
||||
icon-classes="mr-2"
|
||||
@click="deleteEntry(path)"
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ export default {
|
|||
:show-label="showLabel"
|
||||
:icon-classes="showLabel ? 'mr-2' : ''"
|
||||
:label="__('Upload file')"
|
||||
class="d-flex"
|
||||
class="gl-flex"
|
||||
icon="upload"
|
||||
@click="startFileUpload"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="session" class="ide-terminal d-flex flex-column">
|
||||
<header class="ide-job-header d-flex gl-align-items-center">
|
||||
<div v-if="session" class="ide-terminal gl-flex flex-column">
|
||||
<header class="ide-job-header gl-flex gl-items-center">
|
||||
<h5>{{ __('Web Terminal') }}</h5>
|
||||
<div class="ml-auto align-self-center">
|
||||
<gl-button
|
||||
|
|
|
|||
|
|
@ -93,8 +93,8 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="d-flex flex-column flex-fill min-height-0 pr-3">
|
||||
<div class="top-bar d-flex border-left-0 gl-align-items-center">
|
||||
<div class="gl-flex flex-column flex-fill min-height-0 pr-3">
|
||||
<div class="top-bar gl-flex border-left-0 gl-items-center">
|
||||
<div v-if="loadingText">
|
||||
<gl-loading-icon size="sm" :inline="true" />
|
||||
<span>{{ loadingText }}</span>
|
||||
|
|
@ -108,7 +108,7 @@ export default {
|
|||
@scroll-down="glterminal.scrollToBottom()"
|
||||
/>
|
||||
</div>
|
||||
<div class="terminal-wrapper d-flex flex-fill min-height-0">
|
||||
<div class="terminal-wrapper gl-flex flex-fill min-height-0">
|
||||
<div
|
||||
ref="terminal"
|
||||
class="ide-terminal-trace flex-fill min-height-0 gl-w-full"
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ export default {
|
|||
|
||||
<template>
|
||||
<div class="gl-h-full">
|
||||
<div v-if="isShowSplash" class="gl-h-full d-flex flex-column justify-content-center">
|
||||
<div v-if="isShowSplash" class="gl-h-full gl-flex flex-column justify-content-center">
|
||||
<empty-state
|
||||
:is-loading="allCheck.isLoading"
|
||||
:is-valid="allCheck.isValid"
|
||||
|
|
|
|||
|
|
@ -62,13 +62,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div
|
||||
v-if="status"
|
||||
v-gl-tooltip
|
||||
:title="status.text"
|
||||
role="note"
|
||||
class="d-flex gl-align-items-center"
|
||||
>
|
||||
<div v-if="status" v-gl-tooltip :title="status.text" role="note" class="gl-flex gl-items-center">
|
||||
<span>{{ __('Terminal') }}:</span>
|
||||
<span class="square s16 d-flex-center ml-1" :aria-label="status.text">
|
||||
<gl-loading-icon v-if="isLoading" inline size="sm" class="d-flex-center" />
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ export default {
|
|||
<gl-skeleton-loader v-if="$apollo.queries.mergeRequest.loading" :height="15">
|
||||
<rect width="250" height="15" rx="4" />
|
||||
</gl-skeleton-loader>
|
||||
<div v-else-if="showDetails" class="d-flex gl-align-items-center justify-content-between">
|
||||
<div v-else-if="showDetails" class="gl-flex gl-align-items-center gl-justify-between">
|
||||
<div class="gl-inline-flex gl-align-items-center">
|
||||
<gl-badge class="gl-mr-2" :variant="badgeVariant">
|
||||
{{ stateHumanName }}
|
||||
|
|
|
|||
|
|
@ -342,7 +342,7 @@ export default {
|
|||
{{ __('Load more users') }}
|
||||
</gl-button>
|
||||
|
||||
<div class="footer-block row-content-block d-flex justify-content-between">
|
||||
<div class="footer-block row-content-block gl-flex justify-content-between">
|
||||
<gl-button
|
||||
type="submit"
|
||||
category="primary"
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ export default class LabelsSelect {
|
|||
|
||||
// We need to identify which items are actually labels
|
||||
if (label.id) {
|
||||
const selectedLayoutClasses = ['d-flex', 'flex-row', 'text-break-word'];
|
||||
const selectedLayoutClasses = ['gl-flex', 'flex-row', 'text-break-word'];
|
||||
selectedClass.push('label-item', ...selectedLayoutClasses);
|
||||
linkEl.dataset.labelId = label.id;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ export default {
|
|||
category="tertiary"
|
||||
/>
|
||||
</div>
|
||||
<div class="file-actions d-flex gl-align-items-center gl-ml-auto gl-align-self-start">
|
||||
<div class="file-actions gl-flex gl-items-center gl-ml-auto gl-align-self-start">
|
||||
<gl-button-group v-if="file.type === 'text'" class="gl-mr-3">
|
||||
<gl-button
|
||||
:selected="file.resolveMode === 'interactive'"
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ export default {
|
|||
};
|
||||
</script>
|
||||
<template>
|
||||
<div class="d-flex flex-column">
|
||||
<div class="gl-flex flex-column">
|
||||
<p class="pt-3 js-subtitle-text">
|
||||
<gl-sprintf
|
||||
:message="
|
||||
|
|
@ -262,7 +262,7 @@ export default {
|
|||
|
||||
<asset-links-form />
|
||||
|
||||
<div class="d-flex gl-gap-x-3 pt-3">
|
||||
<div class="gl-flex gl-gap-x-3 pt-3">
|
||||
<gl-button
|
||||
class="js-no-auto-disable"
|
||||
category="primary"
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="d-flex flex-column release-assets-links-form">
|
||||
<div class="gl-flex flex-column release-assets-links-form">
|
||||
<h2 class="text-4">{{ __('Release assets') }}</h2>
|
||||
<p class="m-0">
|
||||
<gl-sprintf
|
||||
|
|
@ -132,7 +132,7 @@ export default {
|
|||
<div
|
||||
v-for="(link, index) in release.assets.links"
|
||||
:key="link.id"
|
||||
class="gl-sm-display-flex flex-column flex-sm-row gl-gap-5 align-items-stretch align-items-sm-start no-gutters"
|
||||
class="sm:gl-flex flex-column flex-sm-row gl-gap-5 align-items-stretch align-items-sm-start no-gutters"
|
||||
>
|
||||
<gl-form-group
|
||||
class="url-field form-group col"
|
||||
|
|
@ -224,7 +224,7 @@ export default {
|
|||
:title="__('Remove asset link')"
|
||||
@click="onRemoveClicked(link.id)"
|
||||
>
|
||||
<div class="d-flex">
|
||||
<div class="gl-flex">
|
||||
<gl-icon class="mr-1 mr-sm-0" :size="16" name="remove" />
|
||||
<span class="d-inline d-sm-none">{{ __('Remove asset link') }}</span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -61,10 +61,10 @@ export default {
|
|||
<div>
|
||||
<h3 class="gl-heading-5 gl-mb-2!">{{ __('Evidence collection') }}</h3>
|
||||
<div v-for="(evidence, index) in evidences" :key="evidenceTitle(index)">
|
||||
<div class="gl-display-flex gl-align-items-center">
|
||||
<div class="gl-flex gl-items-center">
|
||||
<gl-link
|
||||
v-gl-tooltip
|
||||
class="gl-display-flex gl-align-items-center gl-font-monospace"
|
||||
class="gl-flex gl-items-center gl-font-monospace"
|
||||
target="_blank"
|
||||
:title="__('Open evidence JSON in new tab')"
|
||||
:href="evidenceUrl(index)"
|
||||
|
|
@ -74,7 +74,7 @@ export default {
|
|||
<gl-icon name="external-link" class="gl-ml-2 gl-flex-shrink-0 gl-flex-grow-0" />
|
||||
</gl-link>
|
||||
|
||||
<expand-button class="gl-display-flex gl-align-items-center gl-gap-2 gl-ml-4">
|
||||
<expand-button class="gl-flex gl-items-center gl-gap-2 gl-ml-4">
|
||||
<template #short>
|
||||
<span class="js-short gl-font-monospace gl-text-secondary">{{ shortSha(index) }}</span>
|
||||
</template>
|
||||
|
|
@ -85,7 +85,7 @@ export default {
|
|||
<clipboard-button :title="__('Copy evidence SHA')" :text="sha(index)" category="tertiary" />
|
||||
</div>
|
||||
|
||||
<div class="gl-display-flex gl-align-items-center gl-text-secondary">
|
||||
<div class="gl-flex gl-items-center gl-text-secondary">
|
||||
<gl-icon
|
||||
v-gl-tooltip
|
||||
name="clock"
|
||||
|
|
|
|||
|
|
@ -48,9 +48,9 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="gl-display-flex gl-align-items-center gl-justify-content-space-between gl-w-full">
|
||||
<div class="gl-flex gl-items-center gl-justify-content-space-between gl-w-full">
|
||||
<h2
|
||||
class="gl-new-card-title gl-heading-3 gl-m-0! gl-display-flex gl-gap-3"
|
||||
class="gl-new-card-title gl-heading-3 gl-m-0! gl-flex gl-gap-3"
|
||||
data-testid="release-block-title"
|
||||
>
|
||||
<gl-link v-if="selfLink" class="gl-text-black-normal" :href="selfLink">
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ export default {
|
|||
|
||||
<template>
|
||||
<div class="labels-select-contents-create js-labels-create">
|
||||
<div class="dropdown-title d-flex gl-align-items-center pt-0 pb-2 gl-mb-0">
|
||||
<div class="dropdown-title gl-flex gl-items-center pt-0 pb-2 gl-mb-0">
|
||||
<gl-button
|
||||
:aria-label="__('Go back')"
|
||||
category="tertiary"
|
||||
|
|
@ -93,7 +93,7 @@ export default {
|
|||
@click.prevent="handleColorClick(color)"
|
||||
/>
|
||||
</div>
|
||||
<div class="color-input-container gl-display-flex">
|
||||
<div class="color-input-container gl-flex">
|
||||
<gl-form-input
|
||||
v-model.trim="selectedColor"
|
||||
class="gl-rounded-top-right-none gl-rounded-bottom-right-none -gl-mr-1 gl-mb-2 gl-w-8"
|
||||
|
|
@ -114,7 +114,7 @@ export default {
|
|||
:disabled="disableCreate"
|
||||
category="primary"
|
||||
variant="confirm"
|
||||
class="float-left d-flex gl-align-items-center"
|
||||
class="float-left gl-flex gl-items-center"
|
||||
data-testid="create-click"
|
||||
@click="handleCreateClick"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ export default {
|
|||
data-placement="left"
|
||||
class="gl-inline-block js-user-link !gl-text-inherit gl-hover-text-blue-800!"
|
||||
>
|
||||
<!-- use d-flex so that slot can be appropriately styled -->
|
||||
<!-- use gl-flex so that slot can be appropriately styled -->
|
||||
<span class="gl-flex">
|
||||
<reviewer-avatar :user="user" :img-size="24" :issuable-type="issuableType" />
|
||||
<slot :user="user"></slot>
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ export default {
|
|||
<template>
|
||||
<div>
|
||||
<div
|
||||
class="gl-display-flex gl-align-items-flex-start gl-flex-direction-column gl-sm-flex-direction-row gl-gap-3 gl-pt-3"
|
||||
class="gl-flex gl-align-items-flex-start gl-flex-direction-column gl-sm-flex-direction-row gl-gap-3 gl-pt-3"
|
||||
>
|
||||
<span
|
||||
v-if="snippet.hidden"
|
||||
|
|
@ -278,7 +278,7 @@ export default {
|
|||
|
||||
<div
|
||||
v-if="hasPersonalSnippetActions"
|
||||
class="gl-display-flex gl-align-self-center gl-gap-3 gl-w-full gl-sm-w-auto gl-flex-direction-column gl-sm-flex-direction-row"
|
||||
class="gl-flex gl-align-self-center gl-gap-3 gl-w-full gl-sm-w-auto gl-flex-direction-column gl-sm-flex-direction-row"
|
||||
>
|
||||
<gl-button
|
||||
v-if="snippet.userPermissions.updateSnippet"
|
||||
|
|
@ -312,7 +312,7 @@ export default {
|
|||
<div class="gl-w-full gl-min-h-7">
|
||||
<gl-button
|
||||
class="gl-sm-display-none! gl-new-dropdown-toggle gl-w-full"
|
||||
button-text-classes="gl-display-flex gl-justify-content-space-between gl-w-full"
|
||||
button-text-classes="gl-flex gl-justify-content-space-between gl-w-full"
|
||||
category="secondary"
|
||||
tabindex="0"
|
||||
>
|
||||
|
|
@ -321,7 +321,7 @@ export default {
|
|||
</gl-button>
|
||||
<gl-button
|
||||
v-gl-tooltip="showDropdownTooltip"
|
||||
class="gl-display-none gl-sm-display-flex! gl-new-dropdown-toggle gl-new-dropdown-icon-only gl-new-dropdown-toggle-no-caret"
|
||||
class="gl-hidden sm:gl-flex gl-new-dropdown-toggle gl-new-dropdown-icon-only gl-new-dropdown-toggle-no-caret"
|
||||
category="tertiary"
|
||||
icon="ellipsis_v"
|
||||
:aria-label="$options.i18n.snippetAction"
|
||||
|
|
@ -349,9 +349,9 @@ export default {
|
|||
<div
|
||||
class="detail-page-header gl-flex-direction-column gl-md-flex-direction-row gl-p-0 gl-mb-5"
|
||||
>
|
||||
<div class="gl-display-flex gl-align-items-baseline">
|
||||
<div class="gl-flex gl-items-baseline">
|
||||
<div
|
||||
class="has-tooltip gl-display-flex gl-align-self-baseline gl-mt-3 gl-mr-2"
|
||||
class="has-tooltip gl-flex gl-align-self-baseline gl-mt-3 gl-mr-2"
|
||||
data-testid="snippet-container"
|
||||
:title="snippetVisibilityLevelDescription"
|
||||
data-container="body"
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ export default {
|
|||
:value="option.value"
|
||||
class="gl-mb-3"
|
||||
>
|
||||
<div class="gl-display-flex gl-align-items-center">
|
||||
<div class="gl-flex gl-items-center">
|
||||
<gl-icon :size="16" :name="option.icon" />
|
||||
<span
|
||||
class="gl-font-semibold gl-ml-2 js-visibility-option"
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="d-flex gl-align-items-center">
|
||||
<div class="gl-flex gl-items-center">
|
||||
<span class="text-muted">{{ s__('mrWidget|Approval is optional') }}</span>
|
||||
<gl-link
|
||||
v-if="canApprove && helpPath"
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ export default {
|
|||
</script>
|
||||
<template>
|
||||
<div class="mr-widget-extension">
|
||||
<div class="d-flex gl-align-items-center pl-3 gl-py-3">
|
||||
<div class="gl-flex gl-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-leading-24 js-error-state">
|
||||
|
|
|
|||
|
|
@ -174,17 +174,14 @@ export default {
|
|||
</template>
|
||||
<template v-else-if="!hasPipeline">
|
||||
<gl-loading-icon size="sm" />
|
||||
<p
|
||||
class="gl-flex-grow-1 gl-display-flex gl-ml-3 gl-mb-0"
|
||||
data-testid="monitoring-pipeline-message"
|
||||
>
|
||||
<p class="gl-flex-grow-1 gl-flex gl-ml-3 gl-mb-0" data-testid="monitoring-pipeline-message">
|
||||
{{ $options.monitoringPipelineText }}
|
||||
<gl-link
|
||||
v-gl-tooltip
|
||||
:href="ciTroubleshootingDocsPath"
|
||||
target="_blank"
|
||||
:title="__('Get more information about troubleshooting pipelines')"
|
||||
class="gl-display-flex gl-align-items-center gl-ml-2"
|
||||
class="gl-flex gl-items-center gl-ml-2"
|
||||
>
|
||||
<gl-icon
|
||||
name="question-o"
|
||||
|
|
@ -195,12 +192,12 @@ export default {
|
|||
</template>
|
||||
<template v-else-if="hasPipeline">
|
||||
<ci-icon :status="status" class="gl-align-self-start gl-mt-2 gl-mr-3" />
|
||||
<div class="ci-widget-container d-flex">
|
||||
<div class="ci-widget-container gl-flex">
|
||||
<div class="ci-widget-content">
|
||||
<div class="media-body">
|
||||
<div
|
||||
data-testid="pipeline-info-container"
|
||||
class="gl-display-flex gl-flex-wrap gl-align-items-center gl-justify-content-space-between"
|
||||
class="gl-flex gl-flex-wrap gl-align-items-center gl-justify-content-space-between"
|
||||
>
|
||||
<p
|
||||
class="mr-pipeline-title gl-align-self-start gl-m-0! gl-mr-3! gl-font-bold gl-text-gray-900"
|
||||
|
|
|
|||
|
|
@ -29,9 +29,7 @@ export default {
|
|||
<template>
|
||||
<li>
|
||||
<div class="commit-message-editor">
|
||||
<div
|
||||
class="gl-display-flex gl-flex-wrap gl-align-items-center justify-content-between gl-mb-3"
|
||||
>
|
||||
<div class="gl-flex gl-flex-wrap gl-align-items-center justify-content-between gl-mb-3">
|
||||
<label class="col-form-label" :for="inputId">
|
||||
<strong>{{ label }}</strong>
|
||||
</label>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ export default {
|
|||
<template>
|
||||
<div>
|
||||
<div
|
||||
class="js-mr-widget-commits-count mr-widget-extension clickable d-flex gl-align-items-center px-3 py-2"
|
||||
class="js-mr-widget-commits-count mr-widget-extension clickable gl-flex gl-items-center px-3 py-2"
|
||||
@click="toggle()"
|
||||
>
|
||||
<gl-button
|
||||
|
|
|
|||
|
|
@ -73,6 +73,6 @@ export default {
|
|||
v-gl-tooltip
|
||||
:class="cssClass"
|
||||
:title="tooltipText"
|
||||
class="deployment-instance d-flex justify-content-center gl-align-items-center"
|
||||
class="deployment-instance gl-flex justify-content-center gl-items-center"
|
||||
/>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="two-up view d-flex">
|
||||
<div class="two-up view gl-flex">
|
||||
<image-viewer
|
||||
:path="oldPath"
|
||||
:file-size="oldSize"
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ export default {
|
|||
data-testid="project-search-field"
|
||||
@input="onInput"
|
||||
/>
|
||||
<div class="d-flex flex-column">
|
||||
<div class="gl-flex flex-column">
|
||||
<gl-loading-icon v-if="showLoadingIndicator" size="sm" class="py-2 px-4" />
|
||||
<gl-infinite-scroll
|
||||
:max-list-height="maxListHeight"
|
||||
|
|
@ -112,7 +112,7 @@ export default {
|
|||
@bottomReached="bottomReached"
|
||||
>
|
||||
<template v-if="!showLoadingIndicator" #items>
|
||||
<div class="gl-display-flex gl-flex-direction-column gl-p-3">
|
||||
<div class="gl-flex gl-flex-col gl-p-3">
|
||||
<project-list-item
|
||||
v-for="project in projectSearchResults"
|
||||
:key="project.id"
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ module Groups
|
|||
layout 'group_settings'
|
||||
skip_cross_project_access_check :show
|
||||
before_action :authorize_admin_group!, except: :show
|
||||
before_action :authorize_admin_cicd_variables!, only: :show
|
||||
before_action :authorize_show_cicd_settings!, only: :show
|
||||
before_action :authorize_update_max_artifacts_size!, only: [:update]
|
||||
before_action :define_variables, only: [:show]
|
||||
before_action :push_licensed_features, only: [:show]
|
||||
|
|
@ -47,6 +47,15 @@ module Groups
|
|||
|
||||
private
|
||||
|
||||
def authorize_show_cicd_settings!
|
||||
return if can_any?(current_user, [
|
||||
:admin_cicd_variables,
|
||||
:admin_runner
|
||||
], group)
|
||||
|
||||
access_denied!
|
||||
end
|
||||
|
||||
def define_variables
|
||||
define_ci_variables
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Projects::RunnersController < Projects::ApplicationController
|
||||
before_action :authorize_admin_build!
|
||||
before_action :authorize_admin_runner!
|
||||
before_action :authorize_create_runner!, only: [:new, :register]
|
||||
before_action :runner, only: [:edit, :update, :destroy, :pause, :resume, :show, :register]
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ module Projects
|
|||
|
||||
layout 'project_settings'
|
||||
before_action :authorize_admin_pipeline!, except: :show
|
||||
before_action :authorize_admin_cicd_variables!, only: :show
|
||||
before_action :authorize_show_cicd_settings!, only: :show
|
||||
before_action :check_builds_available!
|
||||
before_action :define_variables
|
||||
|
||||
|
|
@ -75,6 +75,15 @@ module Projects
|
|||
|
||||
private
|
||||
|
||||
def authorize_show_cicd_settings!
|
||||
return if can_any?(current_user, [
|
||||
:admin_cicd_variables,
|
||||
:admin_runner
|
||||
], project)
|
||||
|
||||
access_denied!
|
||||
end
|
||||
|
||||
def highlight_badge(name, content, language = nil)
|
||||
Gitlab::Highlight.highlight(name, content, language: language)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -265,6 +265,7 @@ class GroupPolicy < Namespaces::GroupProjectNamespaceSharedPolicy
|
|||
enable :admin_namespace
|
||||
enable :admin_group_member
|
||||
enable :admin_package
|
||||
enable :admin_runner
|
||||
enable :admin_integrations
|
||||
enable :change_visibility_level
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ module Namespaces
|
|||
enable :create_projects
|
||||
enable :import_projects
|
||||
enable :admin_namespace
|
||||
enable :admin_runner
|
||||
enable :read_namespace
|
||||
enable :read_namespace_via_membership
|
||||
enable :read_statistics
|
||||
|
|
|
|||
|
|
@ -619,6 +619,7 @@ class ProjectPolicy < BasePolicy
|
|||
enable :read_import_error
|
||||
enable :admin_cicd_variables
|
||||
enable :admin_push_rules
|
||||
enable :admin_runner
|
||||
enable :manage_deploy_tokens
|
||||
enable :manage_merge_request_settings
|
||||
enable :change_restrict_user_defined_variables
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
|
|||
label = icon + _('Add LICENSE')
|
||||
AnchorData.new(
|
||||
false,
|
||||
content_tag(:span, label, class: 'add-license-link d-flex'),
|
||||
content_tag(:span, label, class: 'add-license-link gl-flex'),
|
||||
empty_repo? ? add_license_ide_path : add_license_path
|
||||
)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
module Groups
|
||||
class UpdateSharedRunnersService < Groups::BaseService
|
||||
def execute
|
||||
return error('Operation not allowed', 403) unless can?(current_user, :admin_group, group)
|
||||
return error('Operation not allowed', 403) unless can?(current_user, :admin_runner, group)
|
||||
|
||||
validate_params
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@
|
|||
"admin_push_rules": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"admin_runners": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"admin_terraform_state": {
|
||||
"type": "boolean"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- only_key_value = local_assigns.fetch(:only_key_value, false)
|
||||
|
||||
%li.ci-variable-row.m-0.gl-hidden.sm:gl-block
|
||||
.d-flex.gl-w-full.gl-align-items-center.pb-2
|
||||
.gl-flex.gl-w-full.gl-align-items-center.pb-2
|
||||
.bold.table-section.section-15.gl-mr-3
|
||||
= s_('CiVariables|Type')
|
||||
.bold.table-section.section-15.gl-mr-3
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
.todos-filters
|
||||
.issues-details-filters.row-content-block.second-block
|
||||
= form_tag todos_filter_path(without: [:project_id, :author_id, :type, :action_id]), method: :get, class: 'filter-form gl-display-flex gl-flex-direction-column gl-sm-flex-direction-row' do
|
||||
.filter-categories.gl-display-flex.gl-flex-direction-column.gl-md-flex-direction-row.gl-flex-grow-1.gl-flex-wrap.-gl-mx-2
|
||||
.filter-categories.gl-flex.gl-flex-direction-column.gl-md-flex-direction-row.gl-flex-grow-1.gl-flex-wrap.-gl-mx-2
|
||||
.filter-item.gl-m-2
|
||||
- if params[:group_id].present?
|
||||
= hidden_field_tag(:group_id, params[:group_id])
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
= event_user_info(event)
|
||||
|
||||
.event-title.gl-display-flex.gl-flex-wrap
|
||||
.event-title.gl-flex.gl-flex-wrap
|
||||
= inline_event_icon(event)
|
||||
.event-title-block.gl-display-inline-block.gl-mr-2
|
||||
- if event.target
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
= event_user_info(event)
|
||||
|
||||
.event-title.gl-display-flex.gl-flex-wrap
|
||||
.event-title.gl-flex.gl-flex-wrap
|
||||
= inline_event_icon(event)
|
||||
.event-title-block.gl-display-inline-block.gl-mr-2
|
||||
%span.event-type{ class: event.action_name + user_profile_activity_classes }
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
= event_user_info(event)
|
||||
|
||||
.event-title.gl-display-flex.gl-flex-wrap
|
||||
.event-title.gl-flex.gl-flex-wrap
|
||||
= inline_event_icon(event)
|
||||
.event-title-block.gl-display-inline-block.gl-mr-2
|
||||
%span.event-type{ class: event.action_name + user_profile_activity_classes }
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
= event_user_info(event)
|
||||
|
||||
.event-title.gl-display-flex.gl-flex-wrap
|
||||
.event-title.gl-flex.gl-flex-wrap
|
||||
= inline_event_icon(event)
|
||||
.event-title-block.gl-display-inline-block.gl-mr-2
|
||||
%span.event-type{ class: event.action_name + user_profile_activity_classes }
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@
|
|||
|
||||
= event_user_info(event)
|
||||
|
||||
.event-title.d-flex.gl-flex-wrap
|
||||
.event-title.gl-flex.gl-flex-wrap
|
||||
= inline_event_icon(event)
|
||||
= s_('Profiles|Made a private contribution')
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
= event_user_info(event)
|
||||
|
||||
.event-title.gl-display-flex.gl-flex-wrap
|
||||
.event-title.gl-flex.gl-flex-wrap
|
||||
= inline_event_icon(event)
|
||||
.event-title-block.gl-display-inline-block.gl-mr-2
|
||||
%span.event-type.pushed{ class: user_profile_activity_classes }= event.push_activity_description
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
= event_user_info(event)
|
||||
|
||||
.event-title.gl-display-flex.gl-flex-wrap
|
||||
.event-title.gl-flex.gl-flex-wrap
|
||||
= inline_event_icon(event)
|
||||
.event-title-block.gl-display-inline-block.gl-mr-2
|
||||
%span.event-type{ class: event.action_name + user_profile_activity_classes }
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
.settings-content
|
||||
= render 'ci/variables/index', save_endpoint: group_variables_path
|
||||
|
||||
- if can?(current_user, :admin_group, @group)
|
||||
- if can?(current_user, :admin_runner, @group)
|
||||
%section.settings#runners-settings.no-animate{ class: ('expanded' if expanded) }
|
||||
.settings-header
|
||||
%h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only
|
||||
|
|
@ -39,6 +39,7 @@
|
|||
.settings-content
|
||||
= render 'groups/runners/settings'
|
||||
|
||||
- if can?(current_user, :admin_group, @group)
|
||||
%section.settings#auto-devops-settings.no-animate{ class: ('expanded' if expanded) }
|
||||
.settings-header
|
||||
%h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
- page_title _('Bitbucket import')
|
||||
- header_title _('Projects'), root_path
|
||||
|
||||
%h1.page-title.gl-font-size-h-display.d-flex.gl-align-items-center
|
||||
.gl-display-flex.gl-align-items-center.gl-justify-content-center
|
||||
%h1.page-title.gl-font-size-h-display.gl-flex.gl-items-center
|
||||
.gl-flex.gl-items-center.gl-justify-content-center
|
||||
= sprite_icon('bitbucket', css_class: 'gl-mr-3', size: 48)
|
||||
= _('Import projects from Bitbucket')
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
- header_title _("New project"), new_project_path
|
||||
- add_to_breadcrumbs s_('ProjectsNew|Import project'), new_project_path(anchor: 'import_project')
|
||||
|
||||
%h1.page-title.gl-font-size-h-display.d-flex.gl-align-items-center
|
||||
.gl-display-flex.gl-align-items-center.gl-justify-content-center
|
||||
%h1.page-title.gl-font-size-h-display.gl-flex.gl-items-center
|
||||
.gl-flex.gl-items-center.gl-justify-content-center
|
||||
= sprite_icon('bitbucket', css_class: 'gl-mr-3', size: 48)
|
||||
= _('Import repositories from Bitbucket Server')
|
||||
%hr
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
- page_title _('Bitbucket Server import')
|
||||
|
||||
%h1.page-title.gl-font-size-h-display.d-flex.gl-align-items-center
|
||||
.gl-display-flex.gl-align-items-center.gl-justify-content-center
|
||||
%h1.page-title.gl-font-size-h-display.gl-flex.gl-items-center
|
||||
.gl-flex.gl-items-center.gl-justify-content-center
|
||||
= sprite_icon('bitbucket', css_class: 'gl-mr-3', size: 48)
|
||||
= _('Import projects from Bitbucket Server')
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
- header_title _("New project"), new_project_path
|
||||
- add_to_breadcrumbs s_('ProjectsNew|Import project'), new_project_path(anchor: 'import_project')
|
||||
|
||||
%h1.page-title.gl-font-size-h-display.d-flex.gl-align-items-center
|
||||
.gl-display-flex.gl-align-items-center.gl-justify-content-center
|
||||
%h1.page-title.gl-font-size-h-display.gl-flex.gl-items-center
|
||||
.gl-flex.gl-items-center.gl-justify-content-center
|
||||
= sprite_icon('bug', css_class: 'gl-mr-3', size: 48)
|
||||
= _('Import projects from FogBugz')
|
||||
%hr
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
- header_title _("New project"), new_project_path
|
||||
- add_to_breadcrumbs s_('ProjectsNew|Import project'), new_project_path(anchor: 'import_project')
|
||||
|
||||
%h1.page-title.gl-font-size-h-display.d-flex
|
||||
.gl-display-flex.gl-align-items-center.gl-justify-content-center
|
||||
%h1.page-title.gl-font-size-h-display.gl-flex
|
||||
.gl-flex.gl-items-center.gl-justify-content-center
|
||||
= sprite_icon('bug', css_class: 'gl-mr-2')
|
||||
= _('Import projects from FogBugz')
|
||||
%hr
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
- page_title _("FogBugz import")
|
||||
%h1.page-title.gl-font-size-h-display.d-flex.gl-align-items-center
|
||||
.gl-display-flex.gl-align-items-center.gl-justify-content-center
|
||||
%h1.page-title.gl-font-size-h-display.gl-flex.gl-items-center
|
||||
.gl-flex.gl-items-center.gl-justify-content-center
|
||||
= sprite_icon('bug', css_class: 'gl-mr-3', size: 48)
|
||||
= _('Import projects from FogBugz')
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
- header_title _("New project"), new_project_path
|
||||
- add_to_breadcrumbs s_('ProjectsNew|Import project'), new_project_path(anchor: 'import_project')
|
||||
|
||||
%h1.page-title.gl-font-size-h-display.d-flex.gl-align-items-center
|
||||
.gl-display-flex.gl-align-items-center.gl-justify-content-center
|
||||
%h1.page-title.gl-font-size-h-display.gl-flex.gl-items-center
|
||||
.gl-flex.gl-items-center.gl-justify-content-center
|
||||
= sprite_icon('gitea', css_class: 'gl-mr-3', size: 48)
|
||||
= _('Import projects from Gitea')
|
||||
%hr
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
- page_title _("Gitea import")
|
||||
%h1.page-title.gl-font-size-h-display.d-flex.gl-align-items-center
|
||||
.gl-display-flex.gl-align-items-center.gl-justify-content-center
|
||||
%h1.page-title.gl-font-size-h-display.gl-flex.gl-items-center
|
||||
.gl-flex.gl-items-center.gl-justify-content-center
|
||||
= sprite_icon('gitea', css_class: 'gl-mr-3', size: 48)
|
||||
= _('Import projects from Gitea')
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
- header_title _("New project"), new_project_path
|
||||
- add_to_breadcrumbs s_('ProjectsNew|Import project'), new_project_path(anchor: 'import_project')
|
||||
|
||||
%h1.page-title.gl-font-size-h-display.d-flex.gl-align-items-center
|
||||
.gl-display-flex.gl-align-items-center.gl-justify-content-center
|
||||
%h1.page-title.gl-font-size-h-display.gl-flex.gl-items-center
|
||||
.gl-flex.gl-items-center.gl-justify-content-center
|
||||
= sprite_icon('tanuki', css_class: 'gl-mr-3', size: 48)
|
||||
= _('Import an exported GitLab project')
|
||||
%hr
|
||||
|
|
|
|||
|
|
@ -11,6 +11,6 @@
|
|||
= render "layouts/broadcast"
|
||||
= yield :flash_message
|
||||
= render "layouts/flash", flash_container_no_margin: true
|
||||
.content-wrapper{ id: "content-body", class: "d-flex flex-column align-items-stretch gl-p-0" }
|
||||
.content-wrapper{ id: "content-body", class: "!gl-flex flex-column align-items-stretch gl-p-0" }
|
||||
= yield
|
||||
= footer_message
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
- anchors = local_assigns.fetch(:anchors, [])
|
||||
- project_buttons = local_assigns.fetch(:project_buttons, false)
|
||||
- stat_text_classes = "stat-text d-flex gl-align-items-center gl-px-0! gl-pb-2!"
|
||||
- stat_text_classes = "stat-text gl-flex gl-items-center gl-px-0! gl-pb-2!"
|
||||
|
||||
- return unless anchors.any?
|
||||
|
||||
|
|
|
|||
|
|
@ -38,29 +38,29 @@
|
|||
= sprite_icon('branch', size: 12, css_class: 'fork-sprite')
|
||||
= merge_request.target_branch
|
||||
- if merge_request.labels.any?
|
||||
.gl-mt-2.gl-display-flex.gl-flex-wrap.gl-gap-2{ role: 'group', 'aria-label': _('Labels') }
|
||||
.gl-mt-2.gl-flex.gl-flex-wrap.gl-gap-2{ role: 'group', 'aria-label': _('Labels') }
|
||||
- presented_labels_sorted_by_title(merge_request.labels, merge_request.project).each do |label|
|
||||
= link_to_label(label, type: :merge_request)
|
||||
|
||||
.gl-font-sm.gl-display-flex.gl-flex-shrink-0.gl-align-self-start.gl-gap-1.gl-flex-direction-row.gl-justify-content-space-between.gl-w-full.gl-md-w-auto{ class: 'gl-md-flex-direction-column!' }
|
||||
.gl-font-sm.gl-flex.gl-flex-shrink-0.gl-align-self-start.gl-gap-1.gl-flex-direction-row.gl-justify-content-space-between.gl-w-full.gl-md-w-auto{ class: 'gl-md-flex-direction-column!' }
|
||||
%ul.controls.gl-gap-3.gl-pl-0.gl-align-self-end
|
||||
- if merge_request.merged?
|
||||
- merged_at = merge_request.merged_at ? l(merge_request.merged_at.to_time) : _("Merge date & time could not be determined")
|
||||
%li.gl-display-flex{ class: 'gl-mr-0!' }
|
||||
%li.gl-flex{ class: 'gl-mr-0!' }
|
||||
%a.has-tooltip{ href: "#{merge_request_path(merge_request)}#widget-state", title: merged_at }
|
||||
= render Pajamas::BadgeComponent.new(_('Merged'), size: 'sm', variant: 'info')
|
||||
- elsif merge_request.closed?
|
||||
%li.gl-display-flex{ class: 'gl-mr-0!' }
|
||||
%li.gl-flex{ class: 'gl-mr-0!' }
|
||||
= render Pajamas::BadgeComponent.new(_('Closed'), size: 'sm', variant: 'danger')
|
||||
- if merge_request.open? && merge_request.broken?
|
||||
%li.issuable-pipeline-broken.gl-display-flex{ class: 'gl-mr-0!' }
|
||||
%li.issuable-pipeline-broken.gl-flex{ class: 'gl-mr-0!' }
|
||||
= link_to merge_request_path(merge_request), class: "has-tooltip", title: _('Cannot be merged automatically') do
|
||||
= sprite_icon('warning-solid')
|
||||
- if merge_request.assignees.any?
|
||||
%li.gl-display-flex{ class: 'gl-mr-0!' }
|
||||
%li.gl-flex{ class: 'gl-mr-0!' }
|
||||
= render 'shared/issuable/assignees', project: merge_request.project, issuable: merge_request
|
||||
- if merge_request.reviewers.any?
|
||||
%li.gl-display-flex.issuable-reviewers{ class: 'gl-mr-0!' }
|
||||
%li.gl-flex.issuable-reviewers{ class: 'gl-mr-0!' }
|
||||
= render 'shared/issuable/reviewers', project: merge_request.project, issuable: merge_request
|
||||
= render 'shared/issuable_meta_data', issuable: merge_request
|
||||
= render 'projects/merge_requests/approvals_count', merge_request: merge_request
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@
|
|||
.merge-request-details.issuable-details{ data: { id: @merge_request.project.id } }
|
||||
= render "projects/merge_requests/mr_box"
|
||||
.gl-static.merge-request-tabs-holder{ class: "#{'js-tabs-affix' unless ENV['RAILS_ENV'] == 'test'}" }
|
||||
.merge-request-tabs-container.gl-display-flex.gl-justify-content-space-between{ class: "#{'is-merge-request' if !fluid_layout}" }
|
||||
%ul.merge-request-tabs.nav-tabs.nav.nav-links.gl-display-flex.gl-flex-nowrap.gl-m-0.gl-p-0.gl-w-full.gl-lg-w-auto
|
||||
.merge-request-tabs-container.gl-flex.gl-justify-content-space-between{ class: "#{'is-merge-request' if !fluid_layout}" }
|
||||
%ul.merge-request-tabs.nav-tabs.nav.nav-links.gl-flex.gl-flex-nowrap.gl-m-0.gl-p-0.gl-w-full.gl-lg-w-auto
|
||||
= render "projects/merge_requests/tabs/tab", class: "notes-tab", testid: "notes-tab" do
|
||||
= tab_link_for @merge_request, :show, force_link: @commit.present? do
|
||||
= _("Overview")
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
.gl-flex.gl-flex-wrap.gl-items-center.justify-content-lg-end
|
||||
#js-vue-discussion-counter{ data: { blocks_merge: @project.only_allow_merge_if_all_discussions_are_resolved?.to_s } }
|
||||
- if !!@issuable_sidebar.dig(:current_user, :id)
|
||||
.gl-display-flex.gl-gap-3
|
||||
.gl-flex.gl-gap-3
|
||||
.js-sidebar-todo-widget-root{ data: { project_path: @issuable_sidebar[:project_full_path], iid: @issuable_sidebar[:iid], id: @issuable_sidebar[:id] } }
|
||||
- if notifications_todos_buttons_enabled?
|
||||
.js-sidebar-subscriptions-widget-root{ data: { full_path: @issuable_sidebar[:project_full_path], iid: @issuable_sidebar[:iid] } }
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
.template-option.d-flex.gl-align-items-center{ data: { testid: 'template-option-container' } }
|
||||
.template-option.gl-items-center{ class: '!gl-flex', data: { testid: 'template-option-container' } }
|
||||
.logo.gl-mr-3.px-1
|
||||
= image_tag template.logo, size: 32, class: "btn-template-icon icon-#{template.name}"
|
||||
.description
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
%br
|
||||
.text-muted
|
||||
= template.description
|
||||
.controls.d-flex.gl-align-items-center
|
||||
.controls.gl-items-center{ class: '!gl-flex' }
|
||||
= render Pajamas::ButtonComponent.new(button_options: { class: 'gl-mr-3', data: { track_label: "template_preview", track_property: template.name, track_action: "click_button", track_value: "" } }, href: template.preview, target: '_blank') do
|
||||
= _("Preview")
|
||||
%label.btn.gl-button.btn-confirm.template-button.choose-template.gl-mb-0{ for: template.name,
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
|
||||
= render_if_exists 'projects/settings/ci_cd/protected_environments', expanded: expanded
|
||||
|
||||
- if can?(current_user, :admin_runner, @project)
|
||||
- expand_runners = expanded || params[:expand_runners]
|
||||
%section.settings.no-animate#js-runners-settings{ class: ('expanded' if expand_runners), data: { testid: 'runners-settings-content' } }
|
||||
.settings-header
|
||||
|
|
@ -47,6 +48,7 @@
|
|||
.settings-content
|
||||
= render 'projects/runners/settings'
|
||||
|
||||
- if can?(current_user, :admin_pipeline, @project)
|
||||
- if Gitlab::CurrentSettings.current_application_settings.keep_latest_artifact?
|
||||
%section.settings.no-animate#js-artifacts-settings{ class: ('expanded' if expanded) }
|
||||
.settings-header
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
- block_css_class = type != :productivity_analytics ? 'row-content-block second-block' : ''
|
||||
|
||||
.issues-filters
|
||||
.issues-details-filters.filtered-search-block.gl-display-flex.gl-flex-direction-column.gl-lg-flex-direction-row.gl-gap-3{ class: block_css_class }
|
||||
.gl-display-flex.gl-flex-direction-column.gl-md-flex-direction-row.gl-flex-grow-1.gl-w-full
|
||||
.issues-details-filters.filtered-search-block.gl-flex.gl-flex-direction-column.gl-lg-flex-direction-row.gl-gap-3{ class: block_css_class }
|
||||
.gl-flex.gl-flex-direction-column.gl-md-flex-direction-row.gl-flex-grow-1.gl-w-full
|
||||
= form_tag page_filter_path, method: :get, class: 'filter-form js-filter-form gl-w-full' do
|
||||
- if params[:search].present?
|
||||
= hidden_field_tag :search, params[:search]
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
- c.with_label do
|
||||
%span.gl-sr-only
|
||||
= _('Select all')
|
||||
.issues-other-filters.filtered-search-wrapper.gl-display-flex.gl-flex-direction-column.gl-md-flex-direction-row
|
||||
.issues-other-filters.filtered-search-wrapper.gl-flex.gl-flex-direction-column.gl-md-flex-direction-row
|
||||
.filtered-search-box
|
||||
- if type != :boards
|
||||
- text = tag.span(sprite_icon('history')) + tag.span(_('Recent searches'), class: "gl-sr-only")
|
||||
|
|
@ -206,6 +206,6 @@
|
|||
= render_if_exists 'shared/issuable/filter_epic', type: type
|
||||
|
||||
= render Pajamas::ButtonComponent.new(category: :tertiary, size: :small, icon: 'clear', icon_classes: "clear-search-icon", button_options: { class: 'clear-search hidden gl-align-self-center gl-mr-1 has-tooltip', title: _('Clear') })
|
||||
.filter-dropdown-container.gl-display-flex.gl-flex-direction-column.gl-md-flex-direction-row.gl-align-items-flex-start
|
||||
.filter-dropdown-container.gl-flex.gl-flex-direction-column.gl-md-flex-direction-row.gl-align-items-flex-start
|
||||
- if type != :productivity_analytics && show_sorting_dropdown
|
||||
= render 'shared/issuable/sort_dropdown'
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
- visibilityMismatchString = i18n["#{source_level}#{target_level}"]
|
||||
|
||||
.form-group.row.d-flex.gl-px-5.branch-selector
|
||||
.form-group.row.gl-flex.gl-px-5.branch-selector
|
||||
.align-self-center
|
||||
%span
|
||||
= html_escape(_('From %{code_open}%{source_title}%{code_close} into')) % { source_title: source_title, code_open: '<code>'.html_safe, code_close: '</code>'.html_safe }
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
-# Note this is just for individual members. For groups please see shared/members/_group
|
||||
|
||||
%li.member.js-member.py-2.px-3.d-flex.flex-column{ class: [dom_class(member), ("flex-md-row" unless force_mobile_view)], id: dom_id(member) }
|
||||
%li.member.js-member.py-2.px-3.gl-flex.flex-column{ class: [dom_class(member), ("flex-md-row" unless force_mobile_view)], id: dom_id(member) }
|
||||
%span.list-item-name.mb-2.m-md-0
|
||||
- if user
|
||||
= render Pajamas::AvatarComponent.new(user, size: 32, class: 'gl-mr-3 flex-shrink-0 flex-grow-0')
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
- if can_admin_milestone
|
||||
- show_delete = @project.present? || @group.present?
|
||||
.col-1.order-2.order-md-3
|
||||
.gl-display-flex.gl-justify-content-end
|
||||
.gl-flex.gl-justify-content-end
|
||||
.js-vue-milestone-actions{ data: { id: milestone.id,
|
||||
title: milestone.title,
|
||||
is_active: milestone.active?.to_s,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
- page_title _("New Snippet")
|
||||
|
||||
.page-title-holder.d-flex.gl-align-items-center
|
||||
.page-title-holder.gl-flex.gl-items-center
|
||||
%h1.page-title.gl-font-size-h-display= _('New Snippet')
|
||||
|
||||
.gl-mt-3
|
||||
|
|
|
|||
|
|
@ -3,6 +3,6 @@ name: diff_preview_in_email
|
|||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60007
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/382055
|
||||
milestone: '15.6'
|
||||
type: gitlab_com_derisk
|
||||
type: beta
|
||||
group: group::code review
|
||||
default_enabled: false
|
||||
default_enabled: true
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
migration_job_name: BackfillDraftNotesProjectId
|
||||
description: Backfills sharding key `draft_notes.project_id` from `merge_requests`.
|
||||
feature_category: code_review_workflow
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155403
|
||||
milestone: '17.1'
|
||||
queued_migration_version: 20240605090456
|
||||
finalize_after: '2024-07-22'
|
||||
finalized_by: # version of the migration that finalized this BBM
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
migration_job_name: BackfillMergeRequestAssigneesProjectId
|
||||
description: Backfills sharding key `merge_request_assignees.project_id` from `merge_requests`.
|
||||
feature_category: code_review_workflow
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155492
|
||||
milestone: '17.1'
|
||||
queued_migration_version: 20240605193142
|
||||
finalize_after: '2024-07-22'
|
||||
finalized_by: # version of the migration that finalized this BBM
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue