Merge branch 'master' into refactor-environments-folder
This commit is contained in:
commit
cec3cb25a9
125 changed files with 349 additions and 385 deletions
|
@ -1,6 +1,6 @@
|
|||
<script>
|
||||
import Sortable from 'vendor/Sortable';
|
||||
import boardNewIssue from './board_new_issue';
|
||||
import boardNewIssue from './board_new_issue.vue';
|
||||
import boardCard from './board_card.vue';
|
||||
import eventHub from '../eventhub';
|
||||
import loadingIcon from '../../vue_shared/components/loading_icon.vue';
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/* global ListIssue */
|
||||
<script>
|
||||
import eventHub from '../eventhub';
|
||||
import ListIssue from '../models/issue';
|
||||
|
||||
const Store = gl.issueBoards.BoardsStore;
|
||||
|
||||
|
@ -17,6 +18,9 @@ export default {
|
|||
error: false,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.$refs.input.focus();
|
||||
},
|
||||
methods: {
|
||||
submit(e) {
|
||||
e.preventDefault();
|
||||
|
@ -59,42 +63,51 @@ export default {
|
|||
eventHub.$emit(`hide-issue-form-${this.list.id}`);
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.$refs.input.focus();
|
||||
},
|
||||
template: `
|
||||
<div class="card board-new-issue-form">
|
||||
<form @submit="submit($event)">
|
||||
<div class="flash-container"
|
||||
v-if="error">
|
||||
<div class="flash-alert">
|
||||
An error occurred. Please try again.
|
||||
</div>
|
||||
</div>
|
||||
<label class="label-light"
|
||||
:for="list.id + '-title'">
|
||||
Title
|
||||
</label>
|
||||
<input class="form-control"
|
||||
type="text"
|
||||
v-model="title"
|
||||
ref="input"
|
||||
autocomplete="off"
|
||||
:id="list.id + '-title'" />
|
||||
<div class="clearfix prepend-top-10">
|
||||
<button class="btn btn-success pull-left"
|
||||
type="submit"
|
||||
:disabled="title === ''"
|
||||
ref="submit-button">
|
||||
Submit issue
|
||||
</button>
|
||||
<button class="btn btn-default pull-right"
|
||||
type="button"
|
||||
@click="cancel">
|
||||
Cancel
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
`,
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="card board-new-issue-form">
|
||||
<form @submit="submit($event)">
|
||||
<div
|
||||
class="flash-container"
|
||||
v-if="error"
|
||||
>
|
||||
<div class="flash-alert">
|
||||
An error occurred. Please try again.
|
||||
</div>
|
||||
</div>
|
||||
<label
|
||||
class="label-light"
|
||||
:for="list.id + '-title'"
|
||||
>
|
||||
Title
|
||||
</label>
|
||||
<input
|
||||
class="form-control"
|
||||
type="text"
|
||||
v-model="title"
|
||||
ref="input"
|
||||
autocomplete="off"
|
||||
:id="list.id + '-title'"
|
||||
/>
|
||||
<div class="clearfix prepend-top-10">
|
||||
<button
|
||||
class="btn btn-success pull-left"
|
||||
type="submit"
|
||||
:disabled="title === ''"
|
||||
ref="submit-button"
|
||||
>
|
||||
Submit issue
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-default pull-right"
|
||||
type="button"
|
||||
@click="cancel"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</template>
|
|
@ -2,11 +2,13 @@
|
|||
|
||||
import _ from 'underscore';
|
||||
import Vue from 'vue';
|
||||
import Flash from '../flash';
|
||||
import { __ } from '../locale';
|
||||
|
||||
import Flash from '~/flash';
|
||||
import { __ } from '~/locale';
|
||||
|
||||
import FilteredSearchBoards from './filtered_search_boards';
|
||||
import eventHub from './eventhub';
|
||||
import sidebarEventHub from '../sidebar/event_hub';
|
||||
import sidebarEventHub from '~/sidebar/event_hub'; // eslint-disable-line import/first
|
||||
import './models/issue';
|
||||
import './models/label';
|
||||
import './models/list';
|
||||
|
@ -22,7 +24,7 @@ import './components/board';
|
|||
import './components/board_sidebar';
|
||||
import './components/new_list_dropdown';
|
||||
import './components/modal/index';
|
||||
import '../vue_shared/vue_resource_interceptor';
|
||||
import '~/vue_shared/vue_resource_interceptor'; // eslint-disable-line import/first
|
||||
|
||||
export default () => {
|
||||
const $boardApp = document.getElementById('board-app');
|
||||
|
|
|
@ -110,3 +110,5 @@ class ListIssue {
|
|||
}
|
||||
|
||||
window.ListIssue = ListIssue;
|
||||
|
||||
export default ListIssue;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
/* global List */
|
||||
import _ from 'underscore';
|
||||
import Cookies from 'js-cookie';
|
||||
import { getUrlParamsArray } from '../../lib/utils/common_utils';
|
||||
import { getUrlParamsArray } from '~/lib/utils/common_utils';
|
||||
|
||||
window.gl = window.gl || {};
|
||||
window.gl.issueBoards = window.gl.issueBoards || {};
|
||||
|
|
|
@ -6,177 +6,80 @@ import GlFieldErrors from './gl_field_errors';
|
|||
import Shortcuts from './shortcuts';
|
||||
import SearchAutocomplete from './search_autocomplete';
|
||||
|
||||
var Dispatcher;
|
||||
|
||||
(function() {
|
||||
Dispatcher = (function() {
|
||||
function Dispatcher() {
|
||||
this.initSearch();
|
||||
this.initFieldErrors();
|
||||
this.initPageScripts();
|
||||
}
|
||||
|
||||
Dispatcher.prototype.initPageScripts = function() {
|
||||
var path, shortcut_handler;
|
||||
const page = $('body').attr('data-page');
|
||||
if (!page) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const fail = () => Flash('Error loading dynamic module');
|
||||
const callDefault = m => m.default();
|
||||
|
||||
path = page.split(':');
|
||||
shortcut_handler = null;
|
||||
|
||||
$('.js-gfm-input:not(.js-vue-textarea)').each((i, el) => {
|
||||
const gfm = new GfmAutoComplete(gl.GfmAutoComplete && gl.GfmAutoComplete.dataSources);
|
||||
const enableGFM = convertPermissionToBoolean(el.dataset.supportsAutocomplete);
|
||||
gfm.setup($(el), {
|
||||
emojis: true,
|
||||
members: enableGFM,
|
||||
issues: enableGFM,
|
||||
milestones: enableGFM,
|
||||
mergeRequests: enableGFM,
|
||||
labels: enableGFM,
|
||||
});
|
||||
});
|
||||
|
||||
const shortcutHandlerPages = [
|
||||
'projects:activity',
|
||||
'projects:artifacts:browse',
|
||||
'projects:artifacts:file',
|
||||
'projects:blame:show',
|
||||
'projects:blob:show',
|
||||
'projects:commit:show',
|
||||
'projects:commits:show',
|
||||
'projects:find_file:show',
|
||||
'projects:issues:edit',
|
||||
'projects:issues:index',
|
||||
'projects:issues:new',
|
||||
'projects:issues:show',
|
||||
'projects:merge_requests:creations:diffs',
|
||||
'projects:merge_requests:creations:new',
|
||||
'projects:merge_requests:edit',
|
||||
'projects:merge_requests:index',
|
||||
'projects:merge_requests:show',
|
||||
'projects:network:show',
|
||||
'projects:show',
|
||||
'projects:tree:show',
|
||||
'groups:show',
|
||||
];
|
||||
|
||||
if (shortcutHandlerPages.indexOf(page) !== -1) {
|
||||
shortcut_handler = true;
|
||||
}
|
||||
|
||||
switch (path[0]) {
|
||||
case 'admin':
|
||||
switch (path[1]) {
|
||||
case 'broadcast_messages':
|
||||
import('./pages/admin/broadcast_messages')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
case 'cohorts':
|
||||
import('./pages/admin/cohorts')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
case 'groups':
|
||||
switch (path[2]) {
|
||||
case 'show':
|
||||
import('./pages/admin/groups/show')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'projects':
|
||||
import('./pages/admin/projects')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
case 'labels':
|
||||
switch (path[2]) {
|
||||
case 'new':
|
||||
import('./pages/admin/labels/new')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
case 'edit':
|
||||
import('./pages/admin/labels/edit')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
}
|
||||
case 'abuse_reports':
|
||||
import('./pages/admin/abuse_reports')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'profiles':
|
||||
import('./pages/profiles/index')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
case 'projects':
|
||||
import('./pages/projects')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
shortcut_handler = true;
|
||||
switch (path[1]) {
|
||||
case 'compare':
|
||||
import('./pages/projects/compare')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
case 'create':
|
||||
case 'new':
|
||||
import('./pages/projects/new')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
break;
|
||||
case 'wikis':
|
||||
import('./pages/projects/wikis')
|
||||
.then(callDefault)
|
||||
.catch(fail);
|
||||
shortcut_handler = true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// If we haven't installed a custom shortcut handler, install the default one
|
||||
if (!shortcut_handler) {
|
||||
new Shortcuts();
|
||||
}
|
||||
|
||||
if (document.querySelector('#peek')) {
|
||||
import('./performance_bar')
|
||||
.then(m => new m.default({ container: '#peek' })) // eslint-disable-line new-cap
|
||||
.catch(fail);
|
||||
}
|
||||
};
|
||||
|
||||
Dispatcher.prototype.initSearch = function() {
|
||||
// Only when search form is present
|
||||
if ($('.search').length) {
|
||||
return new SearchAutocomplete();
|
||||
}
|
||||
};
|
||||
|
||||
Dispatcher.prototype.initFieldErrors = function() {
|
||||
$('.gl-show-field-errors').each((i, form) => {
|
||||
new GlFieldErrors(form);
|
||||
});
|
||||
};
|
||||
|
||||
return Dispatcher;
|
||||
})();
|
||||
})();
|
||||
|
||||
export default function initDispatcher() {
|
||||
return new Dispatcher();
|
||||
function initSearch() {
|
||||
// Only when search form is present
|
||||
if ($('.search').length) {
|
||||
return new SearchAutocomplete();
|
||||
}
|
||||
}
|
||||
|
||||
function initFieldErrors() {
|
||||
$('.gl-show-field-errors').each((i, form) => {
|
||||
new GlFieldErrors(form);
|
||||
});
|
||||
}
|
||||
|
||||
function initPageShortcuts(page) {
|
||||
const pagesWithCustomShortcuts = [
|
||||
'projects:activity',
|
||||
'projects:artifacts:browse',
|
||||
'projects:artifacts:file',
|
||||
'projects:blame:show',
|
||||
'projects:blob:show',
|
||||
'projects:commit:show',
|
||||
'projects:commits:show',
|
||||
'projects:find_file:show',
|
||||
'projects:issues:edit',
|
||||
'projects:issues:index',
|
||||
'projects:issues:new',
|
||||
'projects:issues:show',
|
||||
'projects:merge_requests:creations:diffs',
|
||||
'projects:merge_requests:creations:new',
|
||||
'projects:merge_requests:edit',
|
||||
'projects:merge_requests:index',
|
||||
'projects:merge_requests:show',
|
||||
'projects:network:show',
|
||||
'projects:show',
|
||||
'projects:tree:show',
|
||||
'groups:show',
|
||||
];
|
||||
|
||||
if (pagesWithCustomShortcuts.indexOf(page) === -1) {
|
||||
new Shortcuts();
|
||||
}
|
||||
}
|
||||
|
||||
function initGFMInput() {
|
||||
$('.js-gfm-input:not(.js-vue-textarea)').each((i, el) => {
|
||||
const gfm = new GfmAutoComplete(gl.GfmAutoComplete && gl.GfmAutoComplete.dataSources);
|
||||
const enableGFM = convertPermissionToBoolean(el.dataset.supportsAutocomplete);
|
||||
gfm.setup($(el), {
|
||||
emojis: true,
|
||||
members: enableGFM,
|
||||
issues: enableGFM,
|
||||
milestones: enableGFM,
|
||||
mergeRequests: enableGFM,
|
||||
labels: enableGFM,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function initPerformanceBar() {
|
||||
if (document.querySelector('#peek')) {
|
||||
import('./performance_bar')
|
||||
.then(m => new m.default({ container: '#peek' })) // eslint-disable-line new-cap
|
||||
.catch(() => Flash('Error loading performance bar module'));
|
||||
}
|
||||
}
|
||||
|
||||
export default () => {
|
||||
initSearch();
|
||||
initFieldErrors();
|
||||
|
||||
const page = $('body').attr('data-page');
|
||||
if (page) {
|
||||
initPageShortcuts(page);
|
||||
initGFMInput();
|
||||
initPerformanceBar();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
/**
|
||||
* Render environments table.
|
||||
*/
|
||||
import loadingIcon from '~/vue_shared/components/loading_icon.vue';
|
||||
import environmentItem from './environment_item.vue';
|
||||
import loadingIcon from '../../vue_shared/components/loading_icon.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<script>
|
||||
import { mapState } from 'vuex';
|
||||
import timeAgoMixin from '../../vue_shared/mixins/timeago';
|
||||
import skeletonLoadingContainer from '../../vue_shared/components/skeleton_loading_container.vue';
|
||||
import timeAgoMixin from '~/vue_shared/mixins/timeago';
|
||||
import skeletonLoadingContainer from '~/vue_shared/components/skeleton_loading_container.vue';
|
||||
import fileIcon from '~/vue_shared/components/file_icon.vue';
|
||||
import newDropdown from './new_dropdown/index.vue';
|
||||
import fileIcon from '../../vue_shared/components/file_icon.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<script>
|
||||
import { mapActions } from 'vuex';
|
||||
import fileIcon from '../../vue_shared/components/file_icon.vue';
|
||||
import fileIcon from '~/vue_shared/components/file_icon.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
import AbuseReports from './abuse_reports';
|
||||
|
||||
export default () => new AbuseReports();
|
||||
document.addEventListener('DOMContentLoaded', () => new AbuseReports());
|
||||
|
|
|
@ -3,7 +3,7 @@ import axios from '~/lib/utils/axios_utils';
|
|||
import flash from '~/flash';
|
||||
import { __ } from '~/locale';
|
||||
|
||||
export default function initBroadcastMessagesForm() {
|
||||
export default () => {
|
||||
$('input#broadcast_message_color').on('input', function onMessageColorInput() {
|
||||
const previewColor = $(this).val();
|
||||
$('div.broadcast-message-preview').css('background-color', previewColor);
|
||||
|
@ -32,4 +32,4 @@ export default function initBroadcastMessagesForm() {
|
|||
.catch(() => flash(__('An error occurred while rendering preview broadcast message')));
|
||||
}
|
||||
}, 250));
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
import initBroadcastMessagesForm from './broadcast_message';
|
||||
|
||||
export default () => initBroadcastMessagesForm();
|
||||
document.addEventListener('DOMContentLoaded', initBroadcastMessagesForm);
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
import initUsagePing from './usage_ping';
|
||||
|
||||
export default () => initUsagePing();
|
||||
document.addEventListener('DOMContentLoaded', initUsagePing);
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
import UsersSelect from '../../../../users_select';
|
||||
|
||||
export default () => new UsersSelect();
|
||||
document.addEventListener('DOMContentLoaded', () => new UsersSelect());
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
import Labels from '../../../../labels';
|
||||
|
||||
export default () => new Labels();
|
||||
document.addEventListener('DOMContentLoaded', () => new Labels());
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
import Labels from '../../../../labels';
|
||||
|
||||
export default () => new Labels();
|
||||
document.addEventListener('DOMContentLoaded', () => new Labels());
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import ProjectsList from '../../../projects_list';
|
||||
import NamespaceSelect from '../../../namespace_select';
|
||||
|
||||
export default () => {
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
new ProjectsList(); // eslint-disable-line no-new
|
||||
|
||||
document.querySelectorAll('.js-namespace-select')
|
||||
.forEach(dropdown => new NamespaceSelect({ dropdown }));
|
||||
};
|
||||
});
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import NotificationsForm from '../../../notifications_form';
|
||||
import notificationsDropdown from '../../../notifications_dropdown';
|
||||
|
||||
export default () => {
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
new NotificationsForm(); // eslint-disable-line no-new
|
||||
notificationsDropdown();
|
||||
};
|
||||
});
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
import initCompareAutocomplete from '~/compare_autocomplete';
|
||||
|
||||
export default () => {
|
||||
initCompareAutocomplete();
|
||||
};
|
||||
document.addEventListener('DOMContentLoaded', initCompareAutocomplete);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Project from './project';
|
||||
import ShortcutsNavigation from '../../shortcuts_navigation';
|
||||
|
||||
export default () => {
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
new Project(); // eslint-disable-line no-new
|
||||
new ShortcutsNavigation(); // eslint-disable-line no-new
|
||||
};
|
||||
});
|
||||
|
|
|
@ -2,8 +2,8 @@ import ProjectNew from '../shared/project_new';
|
|||
import initProjectVisibilitySelector from '../../../project_visibility';
|
||||
import initProjectNew from '../../../projects/project_new';
|
||||
|
||||
export default () => {
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
new ProjectNew(); // eslint-disable-line no-new
|
||||
initProjectVisibilitySelector();
|
||||
initProjectNew.bindEvents();
|
||||
};
|
||||
});
|
||||
|
|
|
@ -3,9 +3,9 @@ import ShortcutsWiki from '../../../shortcuts_wiki';
|
|||
import ZenMode from '../../../zen_mode';
|
||||
import GLForm from '../../../gl_form';
|
||||
|
||||
export default () => {
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
new Wikis(); // eslint-disable-line no-new
|
||||
new ShortcutsWiki(); // eslint-disable-line no-new
|
||||
new ZenMode(); // eslint-disable-line no-new
|
||||
new GLForm($('.wiki-form'), true); // eslint-disable-line no-new
|
||||
};
|
||||
});
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<script>
|
||||
/* eslint-disable vue/require-default-prop */
|
||||
import pipelineStage from '../../pipelines/components/stage.vue';
|
||||
import ciIcon from '../../vue_shared/components/ci_icon.vue';
|
||||
import icon from '../../vue_shared/components/icon.vue';
|
||||
import pipelineStage from '~/pipelines/components/stage.vue';
|
||||
import ciIcon from '~/vue_shared/components/ci_icon.vue';
|
||||
import icon from '~/vue_shared/components/icon.vue';
|
||||
|
||||
export default {
|
||||
name: 'MRWidgetPipeline',
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
%h4
|
||||
= s_('PrometheusService|Auto configuration')
|
||||
|
||||
- if service.manual_configuration?
|
||||
.well
|
||||
= s_('PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below')
|
||||
- else
|
||||
.container-fluid
|
||||
.row
|
||||
- if service.prometheus_installed?
|
||||
.col-sm-2
|
||||
.svg-container
|
||||
= image_tag 'illustrations/monitoring/getting_started.svg'
|
||||
.col-sm-10
|
||||
%p.text-success.prepend-top-default
|
||||
= s_('PrometheusService|Prometheus is being automatically managed on your clusters')
|
||||
= link_to s_('PrometheusService|Manage clusters'), project_clusters_path(project), class: 'btn'
|
||||
- else
|
||||
.col-sm-2
|
||||
= image_tag 'illustrations/monitoring/loading.svg'
|
||||
.col-sm-10
|
||||
%p.prepend-top-default
|
||||
= s_('PrometheusService|Automatically deploy and configure Prometheus on your clusters to monitor your project’s environments')
|
||||
= link_to s_('PrometheusService|Install Prometheus on clusters'), project_clusters_path(project), class: 'btn btn-success'
|
||||
|
||||
%hr
|
|
@ -1,29 +1,5 @@
|
|||
%h4
|
||||
= s_('PrometheusService|Auto configuration')
|
||||
|
||||
- if @service.manual_configuration?
|
||||
.well
|
||||
= s_('PrometheusService|To enable the installation of Prometheus on your clusters, deactivate the manual configuration below')
|
||||
- else
|
||||
.container-fluid
|
||||
.row
|
||||
- if @service.prometheus_installed?
|
||||
.col-sm-2
|
||||
.svg-container
|
||||
= image_tag 'illustrations/monitoring/getting_started.svg'
|
||||
.col-sm-10
|
||||
%p.text-success.prepend-top-default
|
||||
= s_('PrometheusService|Prometheus is being automatically managed on your clusters')
|
||||
= link_to s_('PrometheusService|Manage clusters'), project_clusters_path(@project), class: 'btn'
|
||||
- else
|
||||
.col-sm-2
|
||||
= image_tag 'illustrations/monitoring/loading.svg'
|
||||
.col-sm-10
|
||||
%p.prepend-top-default
|
||||
= s_('PrometheusService|Automatically deploy and configure Prometheus on your clusters to monitor your project’s environments')
|
||||
= link_to s_('PrometheusService|Install Prometheus on clusters'), project_clusters_path(@project), class: 'btn btn-success'
|
||||
|
||||
%hr
|
||||
- if @project
|
||||
= render 'projects/services/prometheus/configuration_banner', project: @project, service: @service
|
||||
|
||||
%h4.append-bottom-default
|
||||
= s_('PrometheusService|Manual configuration')
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fixes Prometheus admin configuration page
|
||||
merge_request: 17377
|
||||
author:
|
||||
type: fixed
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Move BoardNewIssue vue component
|
||||
merge_request: 16947
|
||||
author: George Tsiolis
|
||||
type: performance
|
|
@ -25,16 +25,10 @@ var NO_COMPRESSION = process.env.NO_COMPRESSION;
|
|||
var autoEntries = {};
|
||||
var pageEntries = glob.sync('pages/**/index.js', { cwd: path.join(ROOT_PATH, 'app/assets/javascripts') });
|
||||
|
||||
// filter out entries currently imported dynamically in dispatcher.js
|
||||
var dispatcher = fs.readFileSync(path.join(ROOT_PATH, 'app/assets/javascripts/dispatcher.js')).toString();
|
||||
var dispatcherChunks = dispatcher.match(/(?!import\(')\.\/pages\/[^']+/g);
|
||||
|
||||
function generateAutoEntries(path, prefix = '.') {
|
||||
const chunkPath = path.replace(/\/index\.js$/, '');
|
||||
if (!dispatcherChunks.includes(`${prefix}/${chunkPath}`)) {
|
||||
const chunkName = chunkPath.replace(/\//g, '.');
|
||||
autoEntries[chunkName] = `${prefix}/${path}`;
|
||||
}
|
||||
const chunkName = chunkPath.replace(/\//g, '.');
|
||||
autoEntries[chunkName] = `${prefix}/${path}`;
|
||||
}
|
||||
|
||||
pageEntries.forEach(( path ) => generateAutoEntries(path));
|
||||
|
@ -307,6 +301,7 @@ var config = {
|
|||
'images': path.join(ROOT_PATH, 'app/assets/images'),
|
||||
'vendor': path.join(ROOT_PATH, 'vendor/assets/javascripts'),
|
||||
'vue$': 'vue/dist/vue.esm.js',
|
||||
'spec': path.join(ROOT_PATH, 'spec/javascripts'),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'Admin activates Prometheus' do
|
||||
let(:admin) { create(:user, :admin) }
|
||||
|
||||
before do
|
||||
sign_in(admin)
|
||||
|
||||
visit(admin_application_settings_services_path)
|
||||
|
||||
click_link('Prometheus')
|
||||
end
|
||||
|
||||
it 'activates service' do
|
||||
check('Active')
|
||||
fill_in('API URL', with: 'http://prometheus.example.com')
|
||||
click_button('Save')
|
||||
|
||||
expect(page).to have_content('Application settings saved successfully')
|
||||
end
|
||||
end
|
|
@ -0,0 +1,23 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'User activates Prometheus' do
|
||||
let(:project) { create(:project) }
|
||||
let(:user) { create(:user) }
|
||||
|
||||
before do
|
||||
project.add_master(user)
|
||||
sign_in(user)
|
||||
|
||||
visit(project_settings_integrations_path(project))
|
||||
|
||||
click_link('Prometheus')
|
||||
end
|
||||
|
||||
it 'activates service' do
|
||||
check('Active')
|
||||
fill_in('API URL', with: 'http://prometheus.example.com')
|
||||
click_button('Save changes')
|
||||
|
||||
expect(page).to have_content('Prometheus activated.')
|
||||
end
|
||||
end
|
|
@ -4,7 +4,7 @@
|
|||
import Vue from 'vue';
|
||||
import MockAdapter from 'axios-mock-adapter';
|
||||
import axios from '~/lib/utils/axios_utils';
|
||||
import boardNewIssue from '~/boards/components/board_new_issue';
|
||||
import boardNewIssue from '~/boards/components/board_new_issue.vue';
|
||||
|
||||
import '~/boards/models/list';
|
||||
import { listObj, boardsMockInterceptor, mockBoardService } from './mock_data';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import VariableList from '~/ci_variable_list/ci_variable_list';
|
||||
import getSetTimeoutPromise from '../helpers/set_timeout_promise_helper';
|
||||
import getSetTimeoutPromise from 'spec/helpers/set_timeout_promise_helper';
|
||||
|
||||
const HIDE_CLASS = 'hide';
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ import {
|
|||
REQUEST_SUCCESS,
|
||||
REQUEST_FAILURE,
|
||||
} from '~/clusters/constants';
|
||||
import getSetTimeoutPromise from '../helpers/set_timeout_promise_helper';
|
||||
import getSetTimeoutPromise from 'spec/helpers/set_timeout_promise_helper';
|
||||
|
||||
describe('Clusters', () => {
|
||||
let cluster;
|
||||
|
|
|
@ -12,7 +12,7 @@ import {
|
|||
REQUEST_FAILURE,
|
||||
} from '~/clusters/constants';
|
||||
import applicationRow from '~/clusters/components/application_row.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { DEFAULT_APPLICATION_STATE } from '../services/mock_data';
|
||||
|
||||
describe('Application Row', () => {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import applications from '~/clusters/components/applications.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Applications', () => {
|
||||
let vm;
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue';
|
|||
import MockAdapter from 'axios-mock-adapter';
|
||||
import axios from '~/lib/utils/axios_utils';
|
||||
import commitPipelineStatus from '~/projects/tree/components/commit_pipeline_status_component.vue';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Commit pipeline status component', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import banner from '~/cycle_analytics/components/banner.vue';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Cycle analytics banner', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import component from '~/cycle_analytics/components/total_time_component.vue';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Total time component', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
import Vue from 'vue';
|
||||
import emptyState from '~/environments/components/empty_state.vue';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('environments empty state', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import environmentTableComp from '~/environments/components/environments_table.vue';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Environment table', () => {
|
||||
let Component;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import _ from 'underscore';
|
||||
import Vue from 'vue';
|
||||
import environmentsComponent from '~/environments/components/environments_app.vue';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { headersInterceptor } from 'spec/helpers/vue_resource_helper';
|
||||
import { environment, folder } from './mock_data';
|
||||
import { headersInterceptor } from '../helpers/vue_resource_helper';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Environment', () => {
|
||||
const mockData = {
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import _ from 'underscore';
|
||||
import Vue from 'vue';
|
||||
import environmentsFolderViewComponent from '~/environments/folder/environments_folder_view.vue';
|
||||
import { headersInterceptor } from 'spec/helpers/vue_resource_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { environmentsList } from '../mock_data';
|
||||
import { headersInterceptor } from '../../helpers/vue_resource_helper';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Environments Folder View', () => {
|
||||
let Component;
|
||||
|
|
|
@ -8,7 +8,7 @@ import {
|
|||
mouseenter,
|
||||
inserted,
|
||||
} from '~/feature_highlight/feature_highlight_helper';
|
||||
import getSetTimeoutPromise from '../helpers/set_timeout_promise_helper';
|
||||
import getSetTimeoutPromise from 'spec/helpers/set_timeout_promise_helper';
|
||||
|
||||
describe('feature highlight helper', () => {
|
||||
describe('getSelector', () => {
|
||||
|
|
|
@ -3,10 +3,9 @@ import * as urlUtils from '~/lib/utils/url_utility';
|
|||
import groupItemComponent from '~/groups/components/group_item.vue';
|
||||
import groupFolderComponent from '~/groups/components/group_folder.vue';
|
||||
import eventHub from '~/groups/event_hub';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { mockParentGroupItem, mockChildren } from '../mock_data';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
|
||||
const createComponent = (group = mockParentGroupItem, parentGroup = mockChildren[0]) => {
|
||||
const Component = Vue.extend(groupItemComponent);
|
||||
|
||||
|
|
|
@ -4,10 +4,9 @@ import groupsComponent from '~/groups/components/groups.vue';
|
|||
import groupFolderComponent from '~/groups/components/group_folder.vue';
|
||||
import groupItemComponent from '~/groups/components/group_item.vue';
|
||||
import eventHub from '~/groups/event_hub';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { mockGroups, mockPageInfo } from '../mock_data';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
|
||||
const createComponent = (searchEmpty = false) => {
|
||||
const Component = Vue.extend(groupsComponent);
|
||||
|
||||
|
|
|
@ -2,10 +2,9 @@ import Vue from 'vue';
|
|||
|
||||
import itemActionsComponent from '~/groups/components/item_actions.vue';
|
||||
import eventHub from '~/groups/event_hub';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { mockParentGroupItem, mockChildren } from '../mock_data';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
|
||||
const createComponent = (group = mockParentGroupItem, parentGroup = mockChildren[0]) => {
|
||||
const Component = Vue.extend(itemActionsComponent);
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue';
|
|||
|
||||
import itemCaretComponent from '~/groups/components/item_caret.vue';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
const createComponent = (isGroupOpen = false) => {
|
||||
const Component = Vue.extend(itemCaretComponent);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
|
||||
import itemStatsComponent from '~/groups/components/item_stats.vue';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import {
|
||||
mockParentGroupItem,
|
||||
ITEM_TYPE,
|
||||
|
@ -9,8 +10,6 @@ import {
|
|||
PROJECT_VISIBILITY_TYPE,
|
||||
} from '../mock_data';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
|
||||
const createComponent = (item = mockParentGroupItem) => {
|
||||
const Component = Vue.extend(itemStatsComponent);
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue';
|
|||
|
||||
import itemStatsValueComponent from '~/groups/components/item_stats_value.vue';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
const createComponent = ({ title, cssClass, iconName, tooltipPlacement, value }) => {
|
||||
const Component = Vue.extend(itemStatsValueComponent);
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
import Vue from 'vue';
|
||||
|
||||
import itemTypeIconComponent from '~/groups/components/item_type_icon.vue';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { ITEM_TYPE } from '../mock_data';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
|
||||
const createComponent = (itemType = ITEM_TYPE.GROUP, isGroupOpen = false) => {
|
||||
const Component = Vue.extend(itemTypeIconComponent);
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@ import '~/render_gfm';
|
|||
import * as urlUtils from '~/lib/utils/url_utility';
|
||||
import issuableApp from '~/issue_show/components/app.vue';
|
||||
import eventHub from '~/issue_show/event_hub';
|
||||
import setTimeoutPromise from 'spec/helpers/set_timeout_promise_helper';
|
||||
import issueShowData from '../mock_data';
|
||||
import setTimeoutPromise from '../../helpers/set_timeout_promise_helper';
|
||||
|
||||
function formatText(text) {
|
||||
return text.trim().replace(/\s\s+/g, ' ');
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import descriptionComponent from '~/issue_show/components/description.vue';
|
||||
import * as taskList from '~/task_list';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Description component', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import headerComponent from '~/jobs/components/header.vue';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Job details header', () => {
|
||||
let HeaderComponent;
|
||||
|
|
|
@ -4,7 +4,7 @@ import axios from '~/lib/utils/axios_utils';
|
|||
import stopJobsModal from '~/pages/admin/jobs/index/components/stop_jobs_modal.vue';
|
||||
import * as urlUtility from '~/lib/utils/url_utility';
|
||||
|
||||
import mountComponent from '../../../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('stop_jobs_modal.vue', () => {
|
||||
const props = {
|
||||
|
|
|
@ -5,7 +5,7 @@ import deleteMilestoneModal from '~/pages/milestones/shared/components/delete_mi
|
|||
import eventHub from '~/pages/milestones/shared/event_hub';
|
||||
import * as urlUtility from '~/lib/utils/url_utility';
|
||||
|
||||
import mountComponent from '../../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('delete_milestone_modal.vue', () => {
|
||||
const Component = Vue.extend(deleteMilestoneModal);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import jobComponent from '~/pipelines/components/graph/job_component.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('pipeline graph job component', () => {
|
||||
let JobComponent;
|
||||
|
|
|
@ -2,7 +2,7 @@ import _ from 'underscore';
|
|||
import Vue from 'vue';
|
||||
import pipelinesComp from '~/pipelines/components/pipelines.vue';
|
||||
import Store from '~/pipelines/stores/pipelines_store';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Pipelines', () => {
|
||||
const jsonFixtureName = 'pipelines/pipelines.json';
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue';
|
|||
|
||||
import deleteAccountModal from '~/profile/account/components/delete_account_modal.vue';
|
||||
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('DeleteAccountModal component', () => {
|
||||
const actionUrl = `${gl.TEST_HOST}/delete/user`;
|
||||
|
|
|
@ -6,7 +6,7 @@ import eventHub from '~/projects_dropdown/event_hub';
|
|||
import ProjectsStore from '~/projects_dropdown/store/projects_store';
|
||||
import ProjectsService from '~/projects_dropdown/service/projects_service';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { currentSession, mockProject, mockRawProject } from '../mock_data';
|
||||
|
||||
const createComponent = () => {
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue';
|
|||
|
||||
import projectsListFrequentComponent from '~/projects_dropdown/components/projects_list_frequent.vue';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { mockFrequents } from '../mock_data';
|
||||
|
||||
const createComponent = () => {
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue';
|
|||
|
||||
import projectsListItemComponent from '~/projects_dropdown/components/projects_list_item.vue';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { mockProject } from '../mock_data';
|
||||
|
||||
const createComponent = () => {
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue';
|
|||
|
||||
import projectsListSearchComponent from '~/projects_dropdown/components/projects_list_search.vue';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { mockProject } from '../mock_data';
|
||||
|
||||
const createComponent = () => {
|
||||
|
|
|
@ -3,7 +3,7 @@ import Vue from 'vue';
|
|||
import searchComponent from '~/projects_dropdown/components/search.vue';
|
||||
import eventHub from '~/projects_dropdown/event_hub';
|
||||
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
const createComponent = () => {
|
||||
const Component = Vue.extend(searchComponent);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import _ from 'underscore';
|
||||
import Vue from 'vue';
|
||||
import registry from '~/registry/components/app.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { reposServerResponse } from '../mock_data';
|
||||
|
||||
describe('Registry List', () => {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import store from '~/ide/stores';
|
||||
import listCollapsed from '~/ide/components/commit_sidebar/list_collapsed.vue';
|
||||
import { createComponentWithStore } from '../../../helpers/vue_mount_component_helper';
|
||||
import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
|
||||
import { file } from '../../helpers';
|
||||
|
||||
describe('Multi-file editor commit sidebar list collapsed', () => {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import listItem from '~/ide/components/commit_sidebar/list_item.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import { file } from '../../helpers';
|
||||
|
||||
describe('Multi-file editor commit sidebar list item', () => {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import store from '~/ide/stores';
|
||||
import commitSidebarList from '~/ide/components/commit_sidebar/list.vue';
|
||||
import { createComponentWithStore } from '../../../helpers/vue_mount_component_helper';
|
||||
import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
|
||||
import { file } from '../../helpers';
|
||||
|
||||
describe('Multi-file editor commit sidebar list', () => {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import store from '~/ide/stores';
|
||||
import ideContextBar from '~/ide/components/ide_context_bar.vue';
|
||||
import { createComponentWithStore } from '../../helpers/vue_mount_component_helper';
|
||||
import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Multi-file editor right context bar', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import Vue from 'vue';
|
||||
import store from '~/ide/stores';
|
||||
import ideSidebar from '~/ide/components/ide_side_bar.vue';
|
||||
import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
|
||||
import { resetStore } from '../helpers';
|
||||
import { createComponentWithStore } from '../../helpers/vue_mount_component_helper';
|
||||
|
||||
describe('IdeSidebar', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import store from '~/ide/stores';
|
||||
import ide from '~/ide/components/ide.vue';
|
||||
import { createComponentWithStore } from '../../helpers/vue_mount_component_helper';
|
||||
import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
|
||||
import { file, resetStore } from '../helpers';
|
||||
|
||||
describe('ide component', () => {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import store from '~/ide/stores';
|
||||
import newBranchForm from '~/ide/components/new_branch_form.vue';
|
||||
import { createComponentWithStore } from '../../helpers/vue_mount_component_helper';
|
||||
import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
|
||||
import { resetStore } from '../helpers';
|
||||
|
||||
describe('Multi-file editor new branch form', () => {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import store from '~/ide/stores';
|
||||
import newDropdown from '~/ide/components/new_dropdown/index.vue';
|
||||
import { createComponentWithStore } from '../../../helpers/vue_mount_component_helper';
|
||||
import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
|
||||
import { resetStore } from '../../helpers';
|
||||
|
||||
describe('new dropdown component', () => {
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue';
|
|||
import store from '~/ide/stores';
|
||||
import service from '~/ide/services';
|
||||
import modal from '~/ide/components/new_dropdown/modal.vue';
|
||||
import { createComponentWithStore } from '../../../helpers/vue_mount_component_helper';
|
||||
import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
|
||||
import { file, resetStore } from '../../helpers';
|
||||
|
||||
describe('new file modal component', () => {
|
||||
|
|
|
@ -2,7 +2,7 @@ import Vue from 'vue';
|
|||
import upload from '~/ide/components/new_dropdown/upload.vue';
|
||||
import store from '~/ide/stores';
|
||||
import service from '~/ide/services';
|
||||
import { createComponentWithStore } from '../../../helpers/vue_mount_component_helper';
|
||||
import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
|
||||
import { resetStore } from '../../helpers';
|
||||
|
||||
describe('new dropdown upload', () => {
|
||||
|
|
|
@ -3,7 +3,7 @@ import * as urlUtils from '~/lib/utils/url_utility';
|
|||
import store from '~/ide/stores';
|
||||
import service from '~/ide/services';
|
||||
import repoCommitSection from '~/ide/components/repo_commit_section.vue';
|
||||
import getSetTimeoutPromise from '../../helpers/set_timeout_promise_helper';
|
||||
import getSetTimeoutPromise from 'spec/helpers/set_timeout_promise_helper';
|
||||
import { file, resetStore } from '../helpers';
|
||||
|
||||
describe('RepoCommitSection', () => {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import editFormButtons from '~/sidebar/components/lock/edit_form_buttons.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('EditFormButtons', () => {
|
||||
let vm1;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import participants from '~/sidebar/components/participants/participants.vue';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
const PARTICIPANT = {
|
||||
id: 1,
|
||||
|
|
|
@ -4,8 +4,8 @@ import SidebarAssignees from '~/sidebar/components/assignees/sidebar_assignees';
|
|||
import SidebarMediator from '~/sidebar/sidebar_mediator';
|
||||
import SidebarService from '~/sidebar/services/sidebar_service';
|
||||
import SidebarStore from '~/sidebar/stores/sidebar_store';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import Mock from './mock_data';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
|
||||
describe('sidebar assignees', () => {
|
||||
let vm;
|
||||
|
|
|
@ -4,7 +4,7 @@ import SidebarMediator from '~/sidebar/sidebar_mediator';
|
|||
import SidebarService from '~/sidebar/services/sidebar_service';
|
||||
import SidebarStore from '~/sidebar/stores/sidebar_store';
|
||||
import eventHub from '~/sidebar/event_hub';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import Mock from './mock_data';
|
||||
|
||||
describe('Sidebar Subscriptions', function () {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import subscriptions from '~/sidebar/components/subscriptions/subscriptions.vue';
|
||||
import mountComponent from '../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Subscriptions', function () {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import authorComponent from '~/vue_merge_request_widget/components/mr_widget_author.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetAuthor', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import authorTimeComponent from '~/vue_merge_request_widget/components/mr_widget_author_time.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetAuthorTime', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import headerComponent from '~/vue_merge_request_widget/components/mr_widget_header.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetHeader', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import mergeHelpComponent from '~/vue_merge_request_widget/components/mr_widget_merge_help.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetMergeHelp', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import pipelineComponent from '~/vue_merge_request_widget/components/mr_widget_pipeline.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
import mockData from '../mock_data';
|
||||
|
||||
describe('MRWidgetPipeline', () => {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import eventHub from '~/vue_merge_request_widget/event_hub';
|
||||
import component from '~/vue_merge_request_widget/components/states/mr_widget_rebase.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('Merge request widget rebase component', () => {
|
||||
let Component;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import relatedLinksComponent from '~/vue_merge_request_widget/components/mr_widget_related_links.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetRelatedLinks', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import mrStatusIcon from '~/vue_merge_request_widget/components/mr_widget_status_icon.vue';
|
||||
import mountComponent from '../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MR widget status icon component', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import archivedComponent from '~/vue_merge_request_widget/components/states/mr_widget_archived.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetArchived', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import autoMergeFailedComponent from '~/vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue';
|
||||
import eventHub from '~/vue_merge_request_widget/event_hub';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetAutoMergeFailed', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import checkingComponent from '~/vue_merge_request_widget/components/states/mr_widget_checking.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetChecking', () => {
|
||||
let Component;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import closedComponent from '~/vue_merge_request_widget/components/states/mr_widget_closed.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetClosed', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import conflictsComponent from '~/vue_merge_request_widget/components/states/mr_widget_conflicts.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetConflicts', () => {
|
||||
let Component;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import failedToMergeComponent from '~/vue_merge_request_widget/components/states/mr_widget_failed_to_merge.vue';
|
||||
import eventHub from '~/vue_merge_request_widget/event_hub';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetFailedToMerge', () => {
|
||||
let Component;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import mwpsComponent from '~/vue_merge_request_widget/components/states/mr_widget_merge_when_pipeline_succeeds.vue';
|
||||
import eventHub from '~/vue_merge_request_widget/event_hub';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetMergeWhenPipelineSucceeds', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import mergedComponent from '~/vue_merge_request_widget/components/states/mr_widget_merged.vue';
|
||||
import eventHub from '~/vue_merge_request_widget/event_hub';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetMerged', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import mergingComponent from '~/vue_merge_request_widget/components/states/mr_widget_merging.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetMerging', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import missingBranchComponent from '~/vue_merge_request_widget/components/states/mr_widget_missing_branch.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetMissingBranch', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import notAllowedComponent from '~/vue_merge_request_widget/components/states/mr_widget_not_allowed.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetNotAllowed', () => {
|
||||
let vm;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import Vue from 'vue';
|
||||
import pipelineBlockedComponent from '~/vue_merge_request_widget/components/states/mr_widget_pipeline_blocked.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetPipelineBlocked', () => {
|
||||
let vm;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue