Skip to content
Snippets Groups Projects
Commit 3f3e4bcc authored by GitLab Bot's avatar GitLab Bot
Browse files

Add latest changes from gitlab-org/gitlab@master

parent 65a1175e
No related branches found
No related tags found
No related merge requests found
Showing
with 96 additions and 78 deletions
Loading
Loading
@@ -149,7 +149,7 @@ gem 'wikicloth', '0.8.1'
gem 'asciidoctor', '~> 2.0.10'
gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
gem 'asciidoctor-plantuml', '0.0.10'
gem 'rouge', '~> 3.16.0'
gem 'rouge', '~> 3.17.0'
gem 'truncato', '~> 0.7.11'
gem 'bootstrap_form', '~> 4.2.0'
gem 'nokogiri', '~> 1.10.5'
Loading
Loading
Loading
Loading
@@ -889,7 +889,7 @@ GEM
retriable (3.1.2)
rinku (2.0.0)
rotp (2.1.2)
rouge (3.16.0)
rouge (3.17.0)
rqrcode (0.7.0)
chunky_png
rqrcode-rails3 (0.1.7)
Loading
Loading
@@ -1346,7 +1346,7 @@ DEPENDENCIES
request_store (~> 1.3)
responders (~> 3.0)
retriable (~> 3.1.2)
rouge (~> 3.16.0)
rouge (~> 3.17.0)
rqrcode-rails3 (~> 0.1.7)
rspec-parameterized
rspec-rails (~> 4.0.0.beta4)
Loading
Loading
Loading
Loading
@@ -27,6 +27,10 @@ export default {
key: 'size',
label: __('Size'),
},
{
key: 'memory',
label: __('Total memory (GB)'),
},
{
key: 'clusterType',
label: __('Cluster level'),
Loading
Loading
Loading
Loading
@@ -20,7 +20,7 @@ import TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue';
import { __ } from '~/locale';
import { isEmpty } from 'lodash';
 
export const tableDataClass = 'table-col d-flex d-sm-table-cell align-items-center';
export const tableDataClass = 'table-col d-flex d-md-table-cell align-items-center';
 
export default {
FIRST_PAGE: 1,
Loading
Loading
@@ -35,7 +35,7 @@ export default {
key: 'error',
label: __('Error'),
thClass: 'w-60p',
tdClass: `${tableDataClass} px-3`,
tdClass: `${tableDataClass} px-3 rounded-top`,
},
{
key: 'events',
Loading
Loading
@@ -58,11 +58,11 @@ export default {
{
key: 'status',
label: '',
tdClass: `${tableDataClass} text-center`,
tdClass: `table-col d-none d-md-table-cell align-items-center pl-md-0`,
},
{
key: 'details',
tdClass: 'table-col d-sm-none d-flex align-items-center',
tdClass: 'table-col d-md-none d-flex align-items-center rounded-bottom bg-secondary',
thClass: 'invisible w-0',
},
],
Loading
Loading
@@ -221,7 +221,7 @@ export default {
<div class="error-list">
<div v-if="errorTrackingEnabled">
<div class="row flex-column flex-sm-row align-items-sm-center row-top m-0 mt-sm-2 p-0 p-sm-3">
<div class="search-box flex-fill mr-sm-2 my-3 m-sm-0 p-3 p-sm-0">
<div class="search-box flex-fill mr-sm-2 my-3 m-sm-0 p-3 p-sm-0 bg-secondary">
<div class="filtered-search-box mb-0">
<gl-dropdown
:text="__('Recent searches')"
Loading
Loading
@@ -321,25 +321,25 @@ export default {
</div>
 
<template v-else>
<h4 class="d-block d-sm-none my-3">{{ __('Open errors') }}</h4>
<h4 class="d-block d-md-none my-3">{{ __('Open errors') }}</h4>
 
<gl-table
class="mt-3"
class="error-list-table mt-3"
:items="errors"
:fields="$options.fields"
:show-empty="true"
fixed
stacked="sm"
stacked="md"
tbody-tr-class="table-row mb-4"
>
<template #head(error)>
<div class="d-none d-sm-block">{{ __('Open errors') }}</div>
<div class="d-none d-md-block">{{ __('Open errors') }}</div>
</template>
<template #head(events)="data">
<div class="text-sm-right">{{ data.label }}</div>
<div class="text-md-right">{{ data.label }}</div>
</template>
<template #head(users)="data">
<div class="text-sm-right">{{ data.label }}</div>
<div class="text-md-right">{{ data.label }}</div>
</template>
 
<template #cell(error)="errors">
Loading
Loading
@@ -361,7 +361,7 @@ export default {
</template>
 
<template #cell(lastSeen)="errors">
<div class="text-md-left text-right">
<div class="text-lg-left text-right">
<time-ago :time="errors.item.lastSeen" class="text-secondary" />
</div>
</template>
Loading
Loading
@@ -380,10 +380,29 @@ export default {
</gl-button-group>
</template>
<template #cell(details)="errors">
<gl-button
category="primary"
variant="info"
block
class="mb-1 mt-2"
@click="updateIssueStatus(errors.item.id, 'resolved')"
>
{{ __('Resolve') }}
</gl-button>
<gl-button
category="secondary"
variant="default"
block
class="mb-2"
@click="updateIssueStatus(errors.item.id, 'ignored')"
>
{{ __('Ignore') }}
</gl-button>
<gl-button
:href="getDetailsLink(errors.item.id)"
variant="outline-info"
class="d-block"
category="secondary"
variant="info"
class="d-block mb-2"
>
{{ __('More details') }}
</gl-button>
Loading
Loading
Loading
Loading
@@ -566,6 +566,14 @@ export const getDateInPast = (date, daysInPast) =>
export const getDateInFuture = (date, daysInFuture) =>
new Date(newDate(date).setDate(date.getDate() + daysInFuture));
 
/**
* Checks if a given date-instance was created with a valid date
*
* @param {Date} date
* @returns boolean
*/
export const isValidDate = date => date instanceof Date && !Number.isNaN(date.getTime());
/*
* Appending T00:00:00 makes JS assume local time and prevents it from shifting the date
* to match the user's time zone. We want to display the date in server time for now, to
Loading
Loading
Loading
Loading
@@ -7,5 +7,7 @@ document.addEventListener('DOMContentLoaded', () => {
mountErrorTrackingForm();
mountOperationSettings();
mountGrafanaIntegration();
initSettingsPanels();
if (!IS_EE) {
initSettingsPanels();
}
});
<script>
import _ from 'underscore';
import { escape as esc } from 'lodash';
import { n__, s__, sprintf } from '~/locale';
import { mergeUrlParams, webIDEUrl } from '~/lib/utils/url_utility';
import Icon from '~/vue_shared/components/icon.vue';
Loading
Loading
@@ -35,7 +35,7 @@ export default {
'mrWidget|The source branch is %{commitsBehindLinkStart}%{commitsBehind}%{commitsBehindLinkEnd} the target branch',
),
{
commitsBehindLinkStart: `<a href="${_.escape(this.mr.targetBranchPath)}">`,
commitsBehindLinkStart: `<a href="${esc(this.mr.targetBranchPath)}">`,
commitsBehind: n__('%d commit behind', '%d commits behind', this.mr.divergedCommitsCount),
commitsBehindLinkEnd: '</a>',
},
Loading
Loading
<script>
import _ from 'underscore';
import { isNumber } from 'lodash';
import ArtifactsApp from './artifacts_list_app.vue';
import Deployment from './deployment/deployment.vue';
import MrWidgetContainer from './mr_widget_container.vue';
Loading
Loading
@@ -67,7 +67,7 @@ export default {
return this.mr.visualReviewAppAvailable && this.glFeatures.anonymousVisualReviewFeedback;
},
showMergeTrainPositionIndicator() {
return _.isNumber(this.mr.mergeTrainIndex);
return isNumber(this.mr.mergeTrainIndex);
},
},
};
Loading
Loading
<script>
import { GlButton } from '@gitlab/ui';
import _ from 'underscore';
import { escape as esc } from 'lodash';
import { __, n__, sprintf, s__ } from '~/locale';
import Icon from '~/vue_shared/components/icon.vue';
 
Loading
Loading
@@ -60,7 +60,7 @@ export default {
{
commitCount: `<strong class="commits-count-message">${this.commitsCountMessage}</strong>`,
mergeCommitCount: `<strong>${s__('mrWidgetCommitsAdded|1 merge commit')}</strong>`,
targetBranch: `<span class="label-branch">${_.escape(this.targetBranch)}</span>`,
targetBranch: `<span class="label-branch">${esc(this.targetBranch)}</span>`,
},
false,
);
Loading
Loading
<script>
import _ from 'underscore';
import autoMergeMixin from 'ee_else_ce/vue_merge_request_widget/mixins/auto_merge';
import Flash from '../../../flash';
import statusIcon from '../mr_widget_status_icon.vue';
Loading
Loading
@@ -72,7 +71,7 @@ export default {
.merge(options)
.then(res => res.data)
.then(data => {
if (_.includes(AUTO_MERGE_STRATEGIES, data.status)) {
if (AUTO_MERGE_STRATEGIES.includes(data.status)) {
eventHub.$emit('MRWidgetUpdateRequested');
}
})
Loading
Loading
<script>
import $ from 'jquery';
import _ from 'underscore';
import { escape as esc } from 'lodash';
import { s__, sprintf } from '~/locale';
import { mouseenter, debouncedMouseleave, togglePopover } from '~/shared/popover';
import StatusIcon from '../mr_widget_status_icon.vue';
Loading
Loading
@@ -50,7 +50,7 @@ export default {
content: sprintf(
s__('mrWidget|%{link_start}Learn more about resolving conflicts%{link_end}'),
{
link_start: `<a href="${_.escape(
link_start: `<a href="${esc(
this.mr.conflictsDocsPath,
)}" target="_blank" rel="noopener noreferrer">`,
link_end: '</a>',
Loading
Loading
<script>
import _ from 'underscore';
import { isEmpty } from 'lodash';
import { GlIcon, GlButton } from '@gitlab/ui';
import successSvg from 'icons/_icon_status_success.svg';
import warningSvg from 'icons/_icon_status_warning.svg';
Loading
Loading
@@ -51,7 +51,7 @@ export default {
},
computed: {
isAutoMergeAvailable() {
return !_.isEmpty(this.mr.availableAutoMergeStrategies);
return !isEmpty(this.mr.availableAutoMergeStrategies);
},
status() {
const { pipeline, isPipelineFailed, hasCI, ciStatus } = this.mr;
Loading
Loading
@@ -158,7 +158,7 @@ export default {
.then(data => {
const hasError = data.status === 'failed' || data.status === 'hook_validation_error';
 
if (_.includes(AUTO_MERGE_STRATEGIES, data.status)) {
if (AUTO_MERGE_STRATEGIES.includes(data.status)) {
eventHub.$emit('MRWidgetUpdateRequested');
} else if (data.status === 'success') {
this.initiateMergePolling();
Loading
Loading
<script>
import _ from 'underscore';
import { isEmpty } from 'lodash';
import MRWidgetStore from 'ee_else_ce/vue_merge_request_widget/stores/mr_widget_store';
import MRWidgetService from 'ee_else_ce/vue_merge_request_widget/services/mr_widget_service';
import stateMaps from 'ee_else_ce/vue_merge_request_widget/stores/state_maps';
Loading
Loading
@@ -118,7 +118,7 @@ export default {
return this.mr.allowCollaboration && this.mr.isOpen;
},
shouldRenderMergedPipeline() {
return this.mr.state === 'merged' && !_.isEmpty(this.mr.mergePipeline);
return this.mr.state === 'merged' && !isEmpty(this.mr.mergePipeline);
},
showMergePipelineForkWarning() {
return Boolean(
Loading
Loading
import { format } from 'timeago.js';
import _ from 'underscore';
import getStateKey from 'ee_else_ce/vue_merge_request_widget/stores/get_state_key';
import { stateKey } from './state_maps';
import { formatDate } from '../../lib/utils/datetime_utility';
Loading
Loading
@@ -228,11 +227,13 @@ export default class MergeRequestStore {
}
 
static getPreferredAutoMergeStrategy(availableAutoMergeStrategies) {
if (_.includes(availableAutoMergeStrategies, MTWPS_MERGE_STRATEGY)) {
if (availableAutoMergeStrategies === undefined) return undefined;
if (availableAutoMergeStrategies.includes(MTWPS_MERGE_STRATEGY)) {
return MTWPS_MERGE_STRATEGY;
} else if (_.includes(availableAutoMergeStrategies, MT_MERGE_STRATEGY)) {
} else if (availableAutoMergeStrategies.includes(MT_MERGE_STRATEGY)) {
return MT_MERGE_STRATEGY;
} else if (_.includes(availableAutoMergeStrategies, MWPS_MERGE_STRATEGY)) {
} else if (availableAutoMergeStrategies.includes(MWPS_MERGE_STRATEGY)) {
return MWPS_MERGE_STRATEGY;
}
 
Loading
Loading
Loading
Loading
@@ -20,47 +20,19 @@ $gray-border: 1px solid $border-color;
}
}
 
@include media-breakpoint-down(xs) {
.table-row {
border: $gray-border;
border-radius: 4px;
}
.search-box {
border-top: $gray-border;
border-bottom: $gray-border;
background-color: $gray-50;
}
.table-col {
min-height: 68px;
&::before {
text-align: left !important;
}
&:first-child {
div {
padding: 0 !important;
align-items: flex-end;
}
}
&:last-child {
height: 64px;
background-color: $gray-normal;
&::before {
content: none !important;
}
div {
width: 100% !important;
padding: 0 !important;
@include media-breakpoint-down(md) {
.error-list-table {
.table-col {
min-height: 68px;
&:last-child {
&::before {
content: none !important;
}
 
a {
color: $blue-500;
border-color: $blue-500;
div {
width: 100% !important;
padding: 0 !important;
}
}
}
Loading
Loading
Loading
Loading
@@ -420,7 +420,7 @@ table.pipeline-project-metrics tr td {
p {
@include str-truncated;
 
max-width: none;
max-width: 100%;
}
}
 
Loading
Loading
Loading
Loading
@@ -11,6 +11,8 @@
 
= render_if_exists 'groups/self_or_ancestor_marked_for_deletion_notice', group: @group
 
= render_if_exists 'groups/group_activity_analytics', group: @group
.groups-listing{ data: { endpoints: { default: group_children_path(@group, format: :json), shared: group_shared_projects_path(@group, format: :json) } } }
.top-area.group-nav-container.justify-content-between
.scrolling-tabs-container.inner-page-scroll-tabs
Loading
Loading
Loading
Loading
@@ -8,3 +8,4 @@
= render 'projects/settings/operations/external_dashboard'
= render 'projects/settings/operations/grafana_integration'
= render_if_exists 'projects/settings/operations/tracing'
= render_if_exists 'projects/settings/operations/status_page'
---
title: Optimize ci_pipelines counters in usage data
merge_request: 26774
author:
type: performance
---
title: update table layout for error tracking list on medium view ports
merge_request: 26479
author:
type: other
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment