Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-10-28 18:08:49 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-10-28 18:08:49 +0300
commit77d49e6a73b3a1e142ec865d05dc3dd9a708ab6a (patch)
tree8b208f19500d18308b47807d6d2f58262752afaa /app/assets/javascripts/admin
parent24e7d185395af41290e5622cad160b7efe230145 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/admin')
-rw-r--r--app/assets/javascripts/admin/dev_ops_report/components/devops_adoption_app.vue13
-rw-r--r--app/assets/javascripts/admin/dev_ops_report/components/devops_adoption_empty_state.vue25
-rw-r--r--app/assets/javascripts/admin/dev_ops_report/constants.js11
-rw-r--r--app/assets/javascripts/admin/dev_ops_report/devops_adoption.js20
-rw-r--r--app/assets/javascripts/admin/dev_ops_report/devops_score_empty_state.js27
5 files changed, 96 insertions, 0 deletions
diff --git a/app/assets/javascripts/admin/dev_ops_report/components/devops_adoption_app.vue b/app/assets/javascripts/admin/dev_ops_report/components/devops_adoption_app.vue
new file mode 100644
index 00000000000..ee2fe00fe02
--- /dev/null
+++ b/app/assets/javascripts/admin/dev_ops_report/components/devops_adoption_app.vue
@@ -0,0 +1,13 @@
+<script>
+import DevopsAdoptionEmptyState from './devops_adoption_empty_state.vue';
+
+export default {
+ name: 'DevopsAdoptionApp',
+ components: {
+ DevopsAdoptionEmptyState,
+ },
+};
+</script>
+<template>
+ <devops-adoption-empty-state />
+</template>
diff --git a/app/assets/javascripts/admin/dev_ops_report/components/devops_adoption_empty_state.vue b/app/assets/javascripts/admin/dev_ops_report/components/devops_adoption_empty_state.vue
new file mode 100644
index 00000000000..0fff9beb435
--- /dev/null
+++ b/app/assets/javascripts/admin/dev_ops_report/components/devops_adoption_empty_state.vue
@@ -0,0 +1,25 @@
+<script>
+import { GlEmptyState, GlButton } from '@gitlab/ui';
+import { DEVOPS_ADOPTION_STRINGS } from '../constants';
+
+export default {
+ name: 'DevopsAdoptionEmptyState',
+ inject: ['emptyStateSvgPath'],
+ components: {
+ GlEmptyState,
+ GlButton,
+ },
+ i18n: DEVOPS_ADOPTION_STRINGS.emptyState,
+};
+</script>
+<template>
+ <gl-empty-state
+ :title="$options.i18n.title"
+ :description="$options.i18n.description"
+ :svg-path="emptyStateSvgPath"
+ >
+ <template #actions>
+ <gl-button variant="info">{{ $options.i18n.button }}</gl-button>
+ </template>
+ </gl-empty-state>
+</template>
diff --git a/app/assets/javascripts/admin/dev_ops_report/constants.js b/app/assets/javascripts/admin/dev_ops_report/constants.js
new file mode 100644
index 00000000000..4f3b7879332
--- /dev/null
+++ b/app/assets/javascripts/admin/dev_ops_report/constants.js
@@ -0,0 +1,11 @@
+import { s__ } from '~/locale';
+
+export const DEVOPS_ADOPTION_STRINGS = {
+ emptyState: {
+ title: s__('DevopsAdoption|Add a segment to get started'),
+ description: s__(
+ 'DevopsAdoption|DevOps adoption uses segments to track adoption across key features. Segments are a way to track multiple related projects and groups at once. For example, you could create a segment for the engineering department or a particular product team.',
+ ),
+ button: s__('DevopsAdoption|Add new segment'),
+ },
+};
diff --git a/app/assets/javascripts/admin/dev_ops_report/devops_adoption.js b/app/assets/javascripts/admin/dev_ops_report/devops_adoption.js
new file mode 100644
index 00000000000..45901a5634f
--- /dev/null
+++ b/app/assets/javascripts/admin/dev_ops_report/devops_adoption.js
@@ -0,0 +1,20 @@
+import Vue from 'vue';
+import DevopsAdoptionApp from './components/devops_adoption_app.vue';
+
+export default () => {
+ const el = document.querySelector('.js-devops-adoption');
+
+ if (!el) return false;
+
+ const { emptyStateSvgPath } = el.dataset;
+
+ return new Vue({
+ el,
+ provide: {
+ emptyStateSvgPath,
+ },
+ render(h) {
+ return h(DevopsAdoptionApp);
+ },
+ });
+};
diff --git a/app/assets/javascripts/admin/dev_ops_report/devops_score_empty_state.js b/app/assets/javascripts/admin/dev_ops_report/devops_score_empty_state.js
new file mode 100644
index 00000000000..0cb8d9be0e4
--- /dev/null
+++ b/app/assets/javascripts/admin/dev_ops_report/devops_score_empty_state.js
@@ -0,0 +1,27 @@
+import Vue from 'vue';
+import UserCallout from '~/user_callout';
+import UsagePingDisabled from './components/usage_ping_disabled.vue';
+
+export default () => {
+ // eslint-disable-next-line no-new
+ new UserCallout();
+
+ const emptyStateContainer = document.getElementById('js-devops-empty-state');
+
+ if (!emptyStateContainer) return false;
+
+ const { emptyStateSvgPath, enableUsagePingLink, docsLink, isAdmin } = emptyStateContainer.dataset;
+
+ return new Vue({
+ el: emptyStateContainer,
+ provide: {
+ isAdmin: Boolean(isAdmin),
+ svgPath: emptyStateSvgPath,
+ primaryButtonPath: enableUsagePingLink,
+ docsLink,
+ },
+ render(h) {
+ return h(UsagePingDisabled);
+ },
+ });
+};