Commit eb06a776 authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab master

parents 03a8f65e b9686944
...@@ -36,7 +36,7 @@ class Commit ...@@ -36,7 +36,7 @@ class Commit
LINK_EXTENSION_PATTERN = /(patch)/.freeze LINK_EXTENSION_PATTERN = /(patch)/.freeze
cache_markdown_field :title, pipeline: :single_line cache_markdown_field :title, pipeline: :single_line
cache_markdown_field :full_title, pipeline: :single_line cache_markdown_field :full_title, pipeline: :single_line, limit: 1.kilobyte
cache_markdown_field :description, pipeline: :commit_description, limit: 1.megabyte cache_markdown_field :description, pipeline: :commit_description, limit: 1.megabyte
class << self class << self
......
...@@ -2,9 +2,8 @@ ...@@ -2,9 +2,8 @@
module AlertManagement module AlertManagement
class ProcessPrometheusAlertService class ProcessPrometheusAlertService
include BaseServiceUtility extend ::Gitlab::Utils::Override
include Gitlab::Utils::StrongMemoize include ::AlertManagement::AlertProcessing
include ::IncidentManagement::Settings
def initialize(project, payload) def initialize(project, payload)
@project = project @project = project
...@@ -14,11 +13,10 @@ module AlertManagement ...@@ -14,11 +13,10 @@ module AlertManagement
def execute def execute
return bad_request unless incoming_payload.has_required_attributes? return bad_request unless incoming_payload.has_required_attributes?
process_alert_management_alert process_alert
return bad_request unless alert.persisted? return bad_request unless alert.persisted?
process_incident_issues if process_issues? complete_post_processing_tasks
send_alert_email if send_email?
ServiceResponse.success ServiceResponse.success
end end
...@@ -27,110 +25,31 @@ module AlertManagement ...@@ -27,110 +25,31 @@ module AlertManagement
attr_reader :project, :payload attr_reader :project, :payload
def process_alert_management_alert override :process_new_alert
if incoming_payload.resolved? def process_new_alert
process_resolved_alert_management_alert return if resolving_alert?
else
process_firing_alert_management_alert
end
end
def process_firing_alert_management_alert
if alert.persisted?
alert.register_new_event!
reset_alert_management_alert_status
else
create_alert_management_alert
end
end
def reset_alert_management_alert_status super
return if alert.trigger
logger.warn(
message: 'Unable to update AlertManagement::Alert status to triggered',
project_id: project.id,
alert_id: alert.id
)
end end
def create_alert_management_alert override :process_firing_alert
if alert.save def process_firing_alert
alert.execute_services super
SystemNoteService.create_new_alert(alert, Gitlab::AlertManagement::Payload::MONITORING_TOOLS[:prometheus])
return
end
logger.warn( reset_alert_status
message: 'Unable to create AlertManagement::Alert',
project_id: project.id,
alert_errors: alert.errors.messages
)
end end
def process_resolved_alert_management_alert def reset_alert_status
return unless alert.persisted? return if alert.trigger
return unless auto_close_incident?
if alert.resolve(incoming_payload.ends_at)
close_issue(alert.issue)
return
end
logger.warn( logger.warn(
message: 'Unable to update AlertManagement::Alert status to resolved', message: 'Unable to update AlertManagement::Alert status to triggered',
project_id: project.id, project_id: project.id,
alert_id: alert.id alert_id: alert.id
) )
end end
def close_issue(issue) override :incoming_payload
return if issue.blank? || issue.closed?
Issues::CloseService
.new(project, User.alert_bot)
.execute(issue, system_note: false)
SystemNoteService.auto_resolve_prometheus_alert(issue, project, User.alert_bot) if issue.reset.closed?
end
def process_incident_issues
return if alert.issue || alert.resolved?
IncidentManagement::ProcessAlertWorker.perform_async(nil, nil, alert.id)
end
def send_alert_email
notification_service
.async
.prometheus_alerts_fired(project, [alert])
end
def logger
@logger ||= Gitlab::AppLogger
end
def alert
strong_memoize(:alert) do
existing_alert || new_alert
end
end
def existing_alert
strong_memoize(:existing_alert) do
AlertManagement::Alert.not_resolved.for_fingerprint(project, incoming_payload.gitlab_fingerprint).first
end
end
def new_alert
strong_memoize(:new_alert) do
AlertManagement::Alert.new(
**incoming_payload.alert_params,
ended_at: nil
)
end
end
def incoming_payload def incoming_payload
strong_memoize(:incoming_payload) do strong_memoize(:incoming_payload) do
Gitlab::AlertManagement::Payload.parse( Gitlab::AlertManagement::Payload.parse(
...@@ -141,6 +60,11 @@ module AlertManagement ...@@ -141,6 +60,11 @@ module AlertManagement
end end
end end
override :resolving_alert?
def resolving_alert?
incoming_payload.resolved?
end
def bad_request def bad_request
ServiceResponse.error(message: 'Bad Request', http_status: :bad_request) ServiceResponse.error(message: 'Bad Request', http_status: :bad_request)
end end
......
# frozen_string_literal: true
module AlertManagement
# Module to support the processing of new alert payloads
# from various sources. Payloads may be for new alerts,
# existing alerts, or acting as a resolving alert.
#
# Performs processing-related tasks, such as creating system
# notes, creating or resolving related issues, and notifying
# stakeholders of the alert.
#
# Requires #project [Project] and #payload [Hash] methods
# to be defined.
module AlertProcessing
include BaseServiceUtility
include Gitlab::Utils::StrongMemoize
include ::IncidentManagement::Settings
# Updates or creates alert from payload for project
# including system notes
def process_alert
if alert.persisted?
process_existing_alert
else
process_new_alert
end
end
# Creates or closes issue for alert and notifies stakeholders
def complete_post_processing_tasks
process_incident_issues if process_issues?
send_alert_email if send_email?
end
def process_existing_alert
if resolving_alert?
process_resolved_alert
else
process_firing_alert
end
end
def process_resolved_alert
return unless auto_close_incident?
return close_issue(alert.issue) if alert.resolve(incoming_payload.ends_at)
logger.warn(
message: 'Unable to update AlertManagement::Alert status to resolved',
project_id: project.id,
alert_id: alert.id
)
end
def process_firing_alert
alert.register_new_event!
end
def close_issue(issue)
return if issue.blank? || issue.closed?
::Issues::CloseService
.new(project, User.alert_bot)
.execute(issue, system_note: false)
SystemNoteService.auto_resolve_prometheus_alert(issue, project, User.alert_bot) if issue.reset.closed?
end
def process_new_alert
if alert.save
alert.execute_services
SystemNoteService.create_new_alert(alert, alert_source)
else
logger.warn(
message: "Unable to create AlertManagement::Alert from #{alert_source}",
project_id: project.id,
alert_errors: alert.errors.messages
)
end
end
def process_incident_issues
return if alert.issue || alert.resolved?
::IncidentManagement::ProcessAlertWorker.perform_async(nil, nil, alert.id)
end
def send_alert_email
notification_service
.async
.prometheus_alerts_fired(project, [alert])
end
def incoming_payload
strong_memoize(:incoming_payload) do
Gitlab::AlertManagement::Payload.parse(project, payload.to_h)
end
end
def alert
strong_memoize(:alert) do
find_existing_alert || build_new_alert
end
end
def find_existing_alert
return unless incoming_payload.gitlab_fingerprint
AlertManagement::Alert.not_resolved.for_fingerprint(project, incoming_payload.gitlab_fingerprint).first
end
def build_new_alert
AlertManagement::Alert.new(**incoming_payload.alert_params, ended_at: nil)
end
def resolving_alert?
incoming_payload.ends_at.present?
end
def alert_source
alert.monitoring_tool
end
def logger
@logger ||= Gitlab::AppLogger
end
end
end
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
module Projects module Projects
module Alerting module Alerting
class NotifyService class NotifyService
include BaseServiceUtility extend ::Gitlab::Utils::Override
include Gitlab::Utils::StrongMemoize include ::AlertManagement::AlertProcessing
include ::IncidentManagement::Settings
def initialize(project, payload) def initialize(project, payload)
@project = project @project = project
...@@ -22,8 +21,7 @@ module Projects ...@@ -22,8 +21,7 @@ module Projects
process_alert process_alert
return bad_request unless alert.persisted? return bad_request unless alert.persisted?
process_incident_issues if process_issues? complete_post_processing_tasks
send_alert_email if send_email?
ServiceResponse.success ServiceResponse.success
end end
...@@ -32,93 +30,15 @@ module Projects ...@@ -32,93 +30,15 @@ module Projects
attr_reader :project, :payload, :integration attr_reader :project, :payload, :integration
def process_alert def valid_payload_size?
if alert.persisted? Gitlab::Utils::DeepSize.new(payload).valid?
process_existing_alert
else
create_alert
end
end
def process_existing_alert
if incoming_payload.ends_at.present?
process_resolved_alert
else
alert.register_new_event!
end
alert
end
def process_resolved_alert
return unless auto_close_incident?
if alert.resolve(incoming_payload.ends_at)
close_issue(alert.issue)
end
alert
end
def close_issue(issue)
return if issue.blank? || issue.closed?
::Issues::CloseService
.new(project, User.alert_bot)
.execute(issue, system_note: false)
SystemNoteService.auto_resolve_prometheus_alert(issue, project, User.alert_bot) if issue.reset.closed?
end
def create_alert
return unless alert.save
alert.execute_services
SystemNoteService.create_new_alert(alert, notification_source)
end
def process_incident_issues
return if alert.issue || alert.resolved?
::IncidentManagement::ProcessAlertWorker.perform_async(nil, nil, alert.id)
end
def send_alert_email
notification_service
.async
.prometheus_alerts_fired(project, [alert])
end
def alert
strong_memoize(:alert) do
existing_alert || new_alert
end
end
def existing_alert
return unless incoming_payload.gitlab_fingerprint
AlertManagement::Alert.not_resolved.for_fingerprint(project, incoming_payload.gitlab_fingerprint).first
end
def new_alert
AlertManagement::Alert.new(**incoming_payload.alert_params, ended_at: nil)
end
def incoming_payload
strong_memoize(:incoming_payload) do
Gitlab::AlertManagement::Payload.parse(project, payload.to_h)
end
end end
def notification_source override :alert_source
def alert_source
alert.monitoring_tool || integration&.name || 'Generic Alert Endpoint' alert.monitoring_tool || integration&.name || 'Generic Alert Endpoint'
end end
def valid_payload_size?
Gitlab::Utils::DeepSize.new(payload).valid?
end
def active_integration? def active_integration?
integration&.active? integration&.active?
end end
......
---
title: Allow dots in label names through REST API
merge_request: 52591
author:
type: fixed
---
title: Introduce a rendering limit for commit titles
merge_request: 52904
author:
type: performance
...@@ -127,6 +127,15 @@ It's possible that this limit will be changed to a lower number in the future. ...@@ -127,6 +127,15 @@ It's possible that this limit will be changed to a lower number in the future.
- **Max size:** ~1 million characters / ~1 MB - **Max size:** ~1 million characters / ~1 MB
## Size of commit titles and descriptions
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/292039) in GitLab 13.9
Commits with arbitrarily large messages may be pushed to GitLab, but when
displaying commits, titles (the first line of the commit message) will be
limited to 1KiB, and descriptions (the rest of the message) will be limited to
1MiB.
## Number of issues in the milestone overview ## Number of issues in the milestone overview
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/39453) in GitLab 12.10. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/39453) in GitLab 12.10.
......
...@@ -11,9 +11,6 @@ import { ...@@ -11,9 +11,6 @@ import {
import * as Sentry from '~/sentry/wrapper'; import * as Sentry from '~/sentry/wrapper';
import getGroupsQuery from '../graphql/queries/get_groups.query.graphql'; import getGroupsQuery from '../graphql/queries/get_groups.query.graphql';
import devopsAdoptionSegmentsQuery from '../graphql/queries/devops_adoption_segments.query.graphql'; import devopsAdoptionSegmentsQuery from '../graphql/queries/devops_adoption_segments.query.graphql';
import DevopsAdoptionEmptyState from './devops_adoption_empty_state.vue';
import DevopsAdoptionSegmentModal from './devops_adoption_segment_modal.vue';
import DevopsAdoptionTable from './devops_adoption_table.vue';
import { import {
DEVOPS_ADOPTION_STRINGS, DEVOPS_ADOPTION_STRINGS,
DEVOPS_ADOPTION_ERROR_KEYS, DEVOPS_ADOPTION_ERROR_KEYS,
...@@ -22,6 +19,9 @@ import { ...@@ -22,6 +19,9 @@ import {
DATE_TIME_FORMAT, DATE_TIME_FORMAT,
DEVOPS_ADOPTION_SEGMENT_MODAL_ID, DEVOPS_ADOPTION_SEGMENT_MODAL_ID,
} from '../constants'; } from '../constants';
import DevopsAdoptionEmptyState from './devops_adoption_empty_state.vue';
import DevopsAdoptionSegmentModal from './devops_adoption_segment_modal.vue';
import DevopsAdoptionTable from './devops_adoption_table.vue';
export default { export default {
name: 'DevopsAdoptionApp', name: 'DevopsAdoptionApp',
......
...@@ -8,8 +8,6 @@ import { ...@@ -8,8 +8,6 @@ import {
GlIcon, GlIcon,
} from '@gitlab/ui'; } from '@gitlab/ui';
import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue'; import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
import DevopsAdoptionTableCellFlag from './devops_adoption_table_cell_flag.vue';
import DevopsAdoptionDeleteModal from './devops_adoption_delete_modal.vue';
import { import {
DEVOPS_ADOPTION_TABLE_TEST_IDS, DEVOPS_ADOPTION_TABLE_TEST_IDS,
DEVOPS_ADOPTION_STRINGS, DEVOPS_ADOPTION_STRINGS,
...@@ -18,6 +16,8 @@ import { ...@@ -18,6 +16,8 @@ import {
DEVOPS_ADOPTION_SEGMENTS_TABLE_SORT_BY_STORAGE_KEY, DEVOPS_ADOPTION_SEGMENTS_TABLE_SORT_BY_STORAGE_KEY,
DEVOPS_ADOPTION_SEGMENTS_TABLE_SORT_DESC_STORAGE_KEY, DEVOPS_ADOPTION_SEGMENTS_TABLE_SORT_DESC_STORAGE_KEY,
} from '../constants'; } from '../constants';
import DevopsAdoptionTableCellFlag from './devops_adoption_table_cell_flag.vue';
import DevopsAdoptionDeleteModal from './devops_adoption_delete_modal.vue';
const NAME_HEADER = 'name'; const NAME_HEADER = 'name';
......
import FilteredSearchManager from 'ee_else_ce/filtered_search/filtered_search_manager'; import FilteredSearchManager from 'ee_else_ce/filtered_search/filtered_search_manager';
import CodeReviewAnalyticsFilteredSearchTokenKeys from './code_review_analytics_filtered_search_token_keys';
import { urlParamsToObject } from '~/lib/utils/common_utils'; import { urlParamsToObject } from '~/lib/utils/common_utils';
import { __ } from '~/locale'; import { __ } from '~/locale';
import CodeReviewAnalyticsFilteredSearchTokenKeys from './code_review_analytics_filtered_search_token_keys';
import store from './store'; import store from './store';
import transformFilters from './utils'; import transformFilters from './utils';
......
import API from 'ee/api'; import API from 'ee/api';
import * as types from './mutation_types';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { deprecatedCreateFlash as createFlash } from '~/flash'; import { deprecatedCreateFlash as createFlash } from '~/flash';
import { normalizeHeaders, parseIntPagination } from '~/lib/utils/common_utils'; import { normalizeHeaders, parseIntPagination } from '~/lib/utils/common_utils';
import { filterToQueryObject } from '~/vue_shared/components/filtered_search_bar/filtered_search_utils'; import { filterToQueryObject } from '~/vue_shared/components/filtered_search_bar/filtered_search_utils';
import * as types from './mutation_types';
export const setProjectId = ({ commit }, projectId) => commit(types.SET_PROJECT_ID, projectId); export const setProjectId = ({ commit }, projectId) => commit(types.SET_PROJECT_ID, projectId);
......
import Vue from 'vue'; import Vue from 'vue';
import { sortBy } from 'lodash'; import { sortBy } from 'lodash';
import ColumnChart from './components/column_chart.vue';
import { __ } from '~/locale'; import { __ } from '~/locale';
import ColumnChart from './components/column_chart.vue';
const sortByValue = (data) => sortBy(data, (item) => item[1]).reverse(); const sortByValue = (data) => sortBy(data, (item) => item[1]).reverse();
......
<script> <script>
import { GlEmptyState } from '@gitlab/ui'; import { GlEmptyState } from '@gitlab/ui';
import { mapActions, mapState, mapGetters } from 'vuex'; import { mapActions, mapState, mapGetters } from 'vuex';
import UrlSync from '~/vue_shared/components/url_sync.vue';
import { PROJECTS_PER_PAGE } from '../constants'; import { PROJECTS_PER_PAGE } from '../constants';
import ProjectsDropdownFilter from '../../shared/components/projects_dropdown_filter.vue'; import ProjectsDropdownFilter from '../../shared/components/projects_dropdown_filter.vue';
import { DATE_RANGE_LIMIT } from '../../shared/constants'; import { DATE_RANGE_LIMIT } from '../../shared/constants';
import DateRange from '../../shared/components/daterange.vue'; import DateRange from '../../shared/components/daterange.vue';
import { toYmd } from '../../shared/utils';
import StageTable from './stage_table.vue'; import StageTable from './stage_table.vue';
import DurationChart from './duration_chart.vue'; import DurationChart from './duration_chart.vue';
import TypeOfWorkCharts from './type_of_work_charts.vue'; import TypeOfWorkCharts from './type_of_work_charts.vue';
import UrlSync from '~/vue_shared/components/url_sync.vue';
import { toYmd } from '../../shared/utils';
import StageTableNav from './stage_table_nav.vue'; import StageTableNav from './stage_table_nav.vue';
import CustomStageForm from './custom_stage_form.vue'; import CustomStageForm from './custom_stage_form.vue';
import PathNavigation from './path_navigation.vue'; import PathNavigation from './path_navigation.vue';
......
<script> <script>
import { GlFormGroup, GlFormInput, GlDropdown, GlDropdownItem } from '@gitlab/ui'; import { GlFormGroup, GlFormInput, GlDropdown, GlDropdownItem } from '@gitlab/ui';
import StageFieldActions from './stage_field_actions.vue';
import LabelsSelector from '../labels_selector.vue'; import LabelsSelector from '../labels_selector.vue';
import { isLabelEvent, getLabelEventsIdentifiers } from '../../utils';
import StageFieldActions from './stage_field_actions.vue';
import { I18N } from './constants'; import { I18N } from './constants';
import { startEventOptions, endEventOptions } from './utils'; import { startEventOptions, endEventOptions } from './utils';
import { isLabelEvent, getLabelEventsIdentifiers } from '../../utils';
export default { export default {
name: 'CustomStageFormFields', name: 'CustomStageFormFields',
......
import { isStartEvent, getAllowedEndEvents, eventToOption, eventsByIdentifier } from '../../utils'; import { isStartEvent, getAllowedEndEvents, eventToOption, eventsByIdentifier } from '../../utils';
import { I18N, ERRORS, defaultErrors, defaultFields, NAME_MAX_LENGTH } from './constants';
import { DEFAULT_STAGE_NAMES } from '../../constants'; import { DEFAULT_STAGE_NAMES } from '../../constants';
import { I18N, ERRORS, defaultErrors, defaultFields, NAME_MAX_LENGTH } from './constants';
/** /**
* @typedef {Object} CustomStageEvents * @typedef {Object} CustomStageEvents
......
...@@ -10,11 +10,11 @@ import { ...@@ -10,11 +10,11 @@ import {
GlButton, GlButton,
} from '@gitlab/ui'; } from '@gitlab/ui';
import { convertObjectPropsToSnakeCase } from '~/lib/utils/common_utils'; import { convertObjectPropsToSnakeCase } from '~/lib/utils/common_utils';
import { STAGE_ACTIONS } from '../constants';
import { getAllowedEndEvents, getLabelEventsIdentifiers, isLabelEvent } from '../utils';
import CustomStageFormFields from './create_value_stream_form/custom_stage_fields.vue'; import CustomStageFormFields from './create_value_stream_form/custom_stage_fields.vue';
import { validateStage, initializeFormData } from './create_value_stream_form/utils'; import { validateStage, initializeFormData } from './create_value_stream_form/utils';
import { defaultFields, ERRORS, I18N } from './create_value_stream_form/constants'; import { defaultFields, ERRORS, I18N } from './create_value_stream_form/constants';
import { STAGE_ACTIONS } from '../constants';
import { getAllowedEndEvents, getLabelEventsIdentifiers, isLabelEvent } from '../utils';
export default { export default {
components: { components: {
......
<script> <script>
import Api from 'ee/api';
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import { import {
GlDropdown, GlDropdown,
...@@ -10,6 +9,7 @@ import { ...@@ -10,6 +9,7 @@ import {
GlSearchBoxByType, GlSearchBoxByType,
} from '@gitlab/ui'; } from '@gitlab/ui';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import Api from 'ee/api';
import { deprecatedCreateFlash as createFlash } from '~/flash'; import { deprecatedCreateFlash as createFlash } from '~/flash';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { removeFlash } from '../utils'; import { removeFlash } from '../utils';
......
<script> <script>
import MetricCard from '~/analytics/shared/components/metric_card.vue';
import { OVERVIEW_METRICS } from '../constants'; import { OVERVIEW_METRICS } from '../constants';
import TimeMetricsCard from './time_metrics_card.vue'; import TimeMetricsCard from './time_metrics_card.vue';
import MetricCard from '~/analytics/shared/components/metric_card.vue';
export default { export default {
name: 'OverviewActivity', name: 'OverviewActivity',
......
<script> <script>
import Sortable from 'sortablejs'; import Sortable from 'sortablejs';
import StageNavItem from './stage_nav_item.vue';
import AddStageButton from './add_stage_button.vue';
import { STAGE_ACTIONS } from '../constants'; import { STAGE_ACTIONS } from '../constants';
import { NO_DRAG_CLASS } from '../../shared/constants'; import { NO_DRAG_CLASS } from '../../shared/constants';
import sortableDefaultOptions from '../../shared/mixins/sortable_default_options'; import sortableDefaultOptions from '../../shared/mixins/sortable_default_options';
import AddStageButton from './add_stage_button.vue';
import StageNavItem from './stage_nav_item.vue';
export default { export default {
name: 'StageTableNav', name: 'StageTableNav',
......
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
import { mapActions, mapGetters, mapState } from 'vuex'; import { mapActions, mapGetters, mapState } from 'vuex';
import { GlAlert } from '@gitlab/ui'; import { GlAlert } from '@gitlab/ui';
import ChartSkeletonLoader from '~/vue_shared/components/resizable_chart/skeleton_loader.vue'; import ChartSkeletonLoader from '~/vue_shared/components/resizable_chart/skeleton_loader.vue';
import TasksByTypeChart from './tasks_by_type/tasks_by_type_chart.vue';
import TasksByTypeFilters from './tasks_by_type/tasks_by_type_filters.vue';
import { s__, sprintf, __ } from '~/locale'; import { s__, sprintf, __ } from '~/locale';
import { formattedDate } from '../../shared/utils'; import { formattedDate } from '../../shared/utils';
import { TASKS_BY_TYPE_SUBJECT_ISSUE } from '../constants'; import { TASKS_BY_TYPE_SUBJECT_ISSUE } from '../constants';
import TasksByTypeFilters from './tasks_by_type/tasks_by_type_filters.vue';
import TasksByTypeChart from './tasks_by_type/tasks_by_type_chart.vue';
export default { export default {
name: 'TypeOfWorkCharts', name: 'TypeOfWorkCharts',
......
import Vue from 'vue'; import Vue from 'vue';
import VueApollo from 'vue-apollo'; import VueApollo from 'vue-apollo';
import { GlToast } from '@gitlab/ui'; import { GlToast } from '@gitlab/ui';
import CycleAnalytics from './components/base.vue';
import createStore from './store';
import { buildCycleAnalyticsInitialData } from '../shared/utils';
import createDefaultClient from '~/lib/graphql'; import createDefaultClient from '~/lib/graphql';
import { urlQueryToFilter } from '~/vue_shared/components/filtered_search_bar/filtered_search_utils'; import { urlQueryToFilter } from '~/vue_shared/components/filtered_search_bar/filtered_search_utils';
import { buildCycleAnalyticsInitialData } from '../shared/utils';
import CycleAnalytics from './components/base.vue';
import createStore from './store';
Vue.use(GlToast); Vue.use(GlToast);
Vue.use(VueApollo); Vue.use(VueApollo);
......
...@@ -2,7 +2,6 @@ import Api from 'ee/api'; ...@@ -2,7 +2,6 @@ import Api from 'ee/api';
import { deprecatedCreateFlash as createFlash } from '~/flash'; import { deprecatedCreateFlash as createFlash } from '~/flash';
import { __, sprintf } from '~/locale'; import { __, sprintf } from '~/locale';
import httpStatus from '~/lib/utils/http_status'; import httpStatus from '~/lib/utils/http_status';
import * as types from './mutation_types';
import { FETCH_VALUE_STREAM_DATA } from '../constants'; import { FETCH_VALUE_STREAM_DATA } from '../constants';
import { import {
removeFlash, removeFlash,
...@@ -11,6 +10,7 @@ import { ...@@ -11,6 +10,7 @@ import {
checkForDataError, checkForDataError,
flashErrorIfStatusNotOk, flashErrorIfStatusNotOk,
} from '../utils'; } from '../utils';
import * as types from './mutation_types';
const appendExtension = (path) => (path.indexOf('.') > -1 ? path : `${path}.json`); const appendExtension = (path) => (path.indexOf('.') > -1 ? path : `${path}.json`);
......
...@@ -2,8 +2,8 @@ import Api from 'ee/api'; ...@@ -2,8 +2,8 @@ import Api from 'ee/api';
import { deprecatedCreateFlash as createFlash } from '~/flash'; import { deprecatedCreateFlash as createFlash } from '~/flash';
import { __, sprintf } from '~/locale'; import { __, sprintf } from '~/locale';
import httpStatusCodes from '~/lib/utils/http_status'; import httpStatusCodes from '~/lib/utils/http_status';
import * as types from './mutation_types';
import { removeFlash, isStageNameExistsError } from '../../../utils'; import { removeFlash, isStageNameExistsError } from '../../../utils';
import * as types from './mutation_types';
export const setStageEvents = ({ commit }, data) => commit(types.SET_STAGE_EVENTS, data); export const setStageEvents = ({ commit }, data) => commit(types.SET_STAGE_EVENTS, data);
export const setStageFormErrors = ({ commit }, errors) => export const setStageFormErrors = ({ commit }, errors) =>
......
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import * as types from './mutation_types';
import { transformRawStages } from '../../../utils'; import { transformRawStages } from '../../../utils';
import * as types from './mutation_types';
const extractFormFields = (rawStage = {}) => { const extractFormFields = (rawStage = {}) => {
const [ const [
......
import Api from 'ee/api'; import Api from 'ee/api';
import { __ } from '~/locale'; import { __ } from '~/locale';
import * as types from './mutation_types';
import { checkForDataError, flashErrorIfStatusNotOk } from '../../../utils'; import { checkForDataError, flashErrorIfStatusNotOk } from '../../../utils';
import * as types from './mutation_types';
export const setLoading = ({ commit }, loading) => commit(types.SET_LOADING, loading); export const setLoading = ({ commit }, loading) => commit(types.SET_LOADING, loading);
......
import Api from 'ee/api'; import Api from 'ee/api';
import { __ } from '~/locale'; import { __ } from '~/locale';
import * as types from './mutation_types';
import { throwIfUserForbidden, checkForDataError, flashErrorIfStatusNotOk } from '../../../utils'; import { throwIfUserForbidden, checkForDataError, flashErrorIfStatusNotOk } from '../../../utils';
import * as types from './mutation_types';
export const setLoading = ({ commit }, loading) => commit(types.SET_LOADING, loading); export const setLoading = ({ commit }, loading) => commit(types.SET_LOADING, loading);
......
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import * as types from './mutation_types';
import { transformRawTasksByTypeData, toggleSelectedLabel } from '../../../utils'; import { transformRawTasksByTypeData, toggleSelectedLabel } from '../../../utils';
import { TASKS_BY_TYPE_FILTERS } from '../../../constants'; import { TASKS_BY_TYPE_FILTERS } from '../../../constants';
import * as types from './mutation_types';
export default { export default {
[types.SET_LOADING](state, loading) { [types.SET_LOADING](state, loading) {
......
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import * as types from './mutation_types';
import { transformRawStages } from '../utils'; import { transformRawStages } from '../utils';
import * as types from './mutation_types';
export default { export default {
[types.SET_FEATURE_FLAGS](state, featureFlags) { [types.SET_FEATURE_FLAGS](state, featureFlags) {
......
...@@ -14,12 +14,12 @@ import dateFormat from 'dateformat'; ...@@ -14,12 +14,12 @@ import dateFormat from 'dateformat';
import { GlColumnChart } from '@gitlab/ui/dist/charts'; import { GlColumnChart } from '@gitlab/ui/dist/charts';
import featureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import featureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { beginOfDayTime, endOfDayTime } from '~/lib/utils/datetime_utility'; import { beginOfDayTime, endOfDayTime } from '~/lib/utils/datetime_utility';
import MetricChart from './metric_chart.vue';
import Scatterplot from '../../shared/components/scatterplot.vue'; import Scatterplot from '../../shared/components/scatterplot.vue';
import MergeRequestTable from './mr_table.vue';
import { chartKeys } from '../constants'; import { chartKeys } from '../constants';
import { dateFormats } from '../../shared/constants'; import { dateFormats } from '../../shared/constants';
import urlSyncMixin from '../../shared/mixins/url_sync_mixin'; import urlSyncMixin from '../../shared/mixins/url_sync_mixin';
import MergeRequestTable from './mr_table.vue';
import MetricChart from './metric_chart.vue';
export default { export default {
components: { components: {
......
<script> <script>
import { mapState, mapActions } from 'vuex'; import { mapState, mapActions } from 'vuex';
import GroupsDropdownFilter from '../../shared/components/groups_dropdown_filter.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import GroupsDropdownFilter from '../../shared/components/groups_dropdown_filter.vue';
import ProjectsDropdownFilter from '../../shared/components/projects_dropdown_filter.vue'; import ProjectsDropdownFilter from '../../shared/components/projects_dropdown_filter.vue';
import { accessLevelReporter, projectsPerPage } from '../constants'; import { accessLevelReporter, projectsPerPage } from '../constants';
......
<script> <script>
import { GlDropdown, GlDropdownItem, GlIcon } from '@gitlab/ui'; import { GlDropdown, GlDropdownItem, GlIcon } from '@gitlab/ui';
import MergeRequestTableRow from './mr_table_row.vue';
import Pagination from '~/vue_shared/components/pagination_links.vue'; import Pagination from '~/vue_shared/components/pagination_links.vue';
import MergeRequestTableRow from './mr_table_row.vue';
export default { export default {
components: { components: {
......
import FilteredSearchManager from 'ee_else_ce/filtered_search/filtered_search_manager'; import FilteredSearchManager from 'ee_else_ce/filtered_search/filtered_search_manager';
import ProductivityAnalyticsFilteredSearchTokenKeys from './productivity_analytics_filtered_search_token_keys';
import { urlParamsToObject } from '~/lib/utils/common_utils'; import { urlParamsToObject } from '~/lib/utils/common_utils';
import { __ } from '~/locale'; import { __ } from '~/locale';
import ProductivityAnalyticsFilteredSearchTokenKeys from './productivity_analytics_filtered_search_token_keys';
import store from './store'; import store from './store';
export default class FilteredSearchProductivityAnalytics extends FilteredSearchManager { export default class FilteredSearchProductivityAnalytics extends FilteredSearchManager {
......
import Vue from 'vue'; import Vue from 'vue';
import VueApollo from 'vue-apollo'; import VueApollo from 'vue-apollo';
import { mapState, mapActions } from 'vuex'; import { mapState, mapActions } from 'vuex';
import createDefaultClient from '~/lib/graphql';
import { parseBoolean } from '~/lib/utils/common_utils';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import DateRange from '../shared/components/daterange.vue';
import { buildGroupFromDataset, buildProjectFromDataset } from '../shared/utils';
import store from './store'; import store from './store';
import FilterDropdowns from './components/filter_dropdowns.vue'; import FilterDropdowns from './components/filter_dropdowns.vue';
import DateRange from '../shared/components/daterange.vue';
import ProductivityAnalyticsApp from './components/app.vue'; import ProductivityAnalyticsApp from './components/app.vue';
import FilteredSearchProductivityAnalytics from './filtered_search_productivity_analytics'; import FilteredSearchProductivityAnalytics from './filtered_search_productivity_analytics';
import createDefaultClient from '~/lib/graphql';
import { parseBoolean } from '~/lib/utils/common_utils';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import { getLabelsEndpoint, getMilestonesEndpoint } from './utils'; import { getLabelsEndpoint, getMilestonesEndpoint } from './utils';
import { buildGroupFromDataset, buildProjectFromDataset } from '../shared/utils';
Vue.use(VueApollo); Vue.use(VueApollo);
......
import axios from '~/lib/utils/axios_utils'; import axios from '~/lib/utils/axios_utils';
import * as types from './mutation_types';
import { getDateInPast } from '~/lib/utils/datetime_utility'; import { getDateInPast } from '~/lib/utils/datetime_utility';
import { chartKeys, scatterPlotAddonQueryDays } from '../../../constants'; import { chartKeys, scatterPlotAddonQueryDays } from '../../../constants';
import { transformScatterData } from '../../../utils'; import { transformScatterData } from '../../../utils';
import * as types from './mutation_types';
/** /**
* Fetches data for all charts except for the main chart * Fetches data for all charts except for the main chart
......
import * as types from './mutation_types';
import { chartKeys } from '../../../constants'; import { chartKeys } from '../../../constants';
import * as types from './mutation_types';
export default { export default {
[types.RESET_CHART_DATA](state, chartKey) { [types.RESET_CHART_DATA](state, chartKey) {
......
import * as types from './mutation_types';
import { chartKeys } from '../../../constants'; import { chartKeys } from '../../../constants';
import * as types from './mutation_types';
export const setInitialData = ({ commit, dispatch }, { skipFetch = false, data }) => { export const setInitialData = ({ commit, dispatch }, { skipFetch = false, data }) => {
commit(types.SET_INITIAL_DATA, data); commit(types.SET_INITIAL_DATA, data);
......
import axios from '~/lib/utils/axios_utils'; import axios from '~/lib/utils/axios_utils';
import * as types from './mutation_types';
import { parseIntPagination, normalizeHeaders } from '~/lib/utils/common_utils'; import { parseIntPagination, normalizeHeaders } from '~/lib/utils/common_utils';
import { daysToMergeMetric } from '../../../constants'; import { daysToMergeMetric } from '../../../constants';
import * as types from './mutation_types';
export const fetchMergeRequests = ({ dispatch, state, rootState, rootGetters }) => { export const fetchMergeRequests = ({ dispatch, state, rootState, rootGetters }) => {
dispatch('requestMergeRequests'); dispatch('requestMergeRequests');
......
import * as types from './mutation_types';
import { tableSortOrder } from '../../../constants'; import { tableSortOrder } from '../../../constants';
import * as types from './mutation_types';
export default { export default {
[types.REQUEST_MERGE_REQUESTS](state) { [types.REQUEST_MERGE_REQUESTS](state) {
......
...@@ -7,8 +7,8 @@ import { __, s__ } from '~/locale'; ...@@ -7,8 +7,8 @@ import { __, s__ } from '~/locale';
import { joinPaths } from '~/lib/utils/url_utility'; import { joinPaths } from '~/lib/utils/url_utility';
import { SUPPORTED_FORMATS, getFormatter } from '~/lib/utils/unit_format'; import { SUPPORTED_FORMATS, getFormatter } from '~/lib/utils/unit_format';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import SelectProjectsDropdown from './select_projects_dropdown.vue';
import getProjectsTestCoverage from '../graphql/queries/get_projects_test_coverage.query.graphql'; import getProjectsTestCoverage from '../graphql/queries/get_projects_test_coverage.query.graphql';
import SelectProjectsDropdown from './select_projects_dropdown.vue';
export default { export default {
name: 'TestCoverageTable', name: 'TestCoverageTable',
......
<script> <script>
import ApprovalCheckPopover from './approval_check_popover.vue';
import { VULNERABILITY_CHECK_NAME, LICENSE_CHECK_NAME, APPROVAL_RULE_CONFIGS } from '../constants'; import { VULNERABILITY_CHECK_NAME, LICENSE_CHECK_NAME, APPROVAL_RULE_CONFIGS } from '../constants';
import ApprovalCheckPopover from './approval_check_popover.vue';
export default { export default {
name: 'ApprovalCheckRulePopover', name: 'ApprovalCheckRulePopover',
......
<script> <script>
import { GlButton, GlTooltipDirective } from '@gitlab/ui'; import { GlButton, GlTooltipDirective } from '@gitlab/ui';
import Avatar from '~/vue_shared/components/project_avatar/default.vue'; import Avatar from '~/vue_shared/components/project_avatar/default.vue';
import HiddenGroupsItem from './hidden_groups_item.vue';
import { TYPE_USER, TYPE_GROUP, TYPE_HIDDEN_GROUPS } from '../constants'; import { TYPE_USER, TYPE_GROUP, TYPE_HIDDEN_GROUPS } from '../constants';
import HiddenGroupsItem from './hidden_groups_item.vue';
const types = [TYPE_USER, TYPE_GROUP, TYPE_HIDDEN_GROUPS]; const types = [TYPE_USER, TYPE_GROUP, TYPE_HIDDEN_GROUPS];
......
...@@ -3,9 +3,9 @@ import $ from 'jquery'; ...@@ -3,9 +3,9 @@ import $ from 'jquery';
import { escape, debounce } from 'lodash'; import { escape, debounce } from 'lodash';
import Api from 'ee/api'; import Api from 'ee/api';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { TYPE_USER, TYPE_GROUP } from '../constants';
import { renderAvatar } from '~/helpers/avatar_helper'; import { renderAvatar } from '~/helpers/avatar_helper';
import { loadCSSFile } from '~/lib/utils/css_utils'; import { loadCSSFile } from '~/lib/utils/css_utils';
import { TYPE_USER, TYPE_GROUP } from '../constants';
function addType(type) { function addType(type) {
return (items) => items.map((obj) => Object.assign(obj, { type })); return (items) => items.map((obj) => Object.assign(obj, { type }));
......
...@@ -8,8 +8,8 @@ import { ...@@ -8,8 +8,8 @@ import {
GlSprintf, GlSprintf,
} from '@gitlab/ui'; } from '@gitlab/ui';
import { APPROVALS, APPROVALS_MODAL } from 'ee/approvals/stores/modules/license_compliance'; import { APPROVALS, APPROVALS_MODAL } from 'ee/approvals/stores/modules/license_compliance';
import ModalLicenseCompliance from './modal.vue';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import ModalLicenseCompliance from './modal.vue';
export default { export default {
components: { components: {
......
<script> <script>
import { mapState, mapActions } from 'vuex'; import { mapState, mapActions } from 'vuex';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { RULE_TYPE_ANY_APPROVER, RULE_TYPE_REGULAR, RULE_NAME_ANY_APPROVER } from '../../constants';
import UserAvatarList from '~/vue_shared/components/user_avatar/user_avatar_list.vue'; import UserAvatarList from '~/vue_shared/components/user_avatar/user_avatar_list.vue';
import { RULE_TYPE_ANY_APPROVER, RULE_TYPE_REGULAR, RULE_NAME_ANY_APPROVER } from '../../constants';
import Rules from '../rules.vue'; import Rules from '../rules.vue';
import RuleControls from '../rule_controls.vue'; import RuleControls from '../rule_controls.vue';
import EmptyRule from '../empty_rule.vue'; import EmptyRule from '../empty_rule.vue';
......
...@@ -3,9 +3,9 @@ import { mapState, mapActions } from 'vuex'; ...@@ -3,9 +3,9 @@ import { mapState, mapActions } from 'vuex';
import RuleName from 'ee/approvals/components/rule_name.vue'; import RuleName from 'ee/approvals/components/rule_name.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { n__, sprintf } from '~/locale'; import { n__, sprintf } from '~/locale';
import UserAvatarList from '~/vue_shared/components/user_avatar/user_avatar_list.vue';
import { RULE_TYPE_ANY_APPROVER, RULE_TYPE_REGULAR } from '../../constants'; import { RULE_TYPE_ANY_APPROVER, RULE_TYPE_REGULAR } from '../../constants';
import UserAvatarList from '~/vue_shared/components/user_avatar/user_avatar_list.vue';
import Rules from '../rules.vue'; import Rules from '../rules.vue';
import RuleControls from '../rule_controls.vue'; import RuleControls from '../rule_controls.vue';
import EmptyRule from '../empty_rule.vue'; import EmptyRule from '../empty_rule.vue';
......
...@@ -3,10 +3,10 @@ import { mapState, mapActions } from 'vuex'; ...@@ -3,10 +3,10 @@ import { mapState, mapActions } from 'vuex';
import { groupBy, isNumber } from 'lodash'; import { groupBy, isNumber } from 'lodash';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { sprintf, __ } from '~/locale'; import { sprintf, __ } from '~/locale';
import { TYPE_USER, TYPE_GROUP, TYPE_HIDDEN_GROUPS } from '../constants';
import ApproversList from './approvers_list.vue'; import ApproversList from './approvers_list.vue';
import ApproversSelect from './approvers_select.vue'; import ApproversSelect from './approvers_select.vue';
import BranchesSelect from './branches_select.vue'; import BranchesSelect from './branches_select.vue';
import { TYPE_USER, TYPE_GROUP, TYPE_HIDDEN_GROUPS } from '../constants';
const DEFAULT_NAME = 'Default'; const DEFAULT_NAME = 'Default';
const DEFAULT_NAME_FOR_LICENSE_REPORT = 'License-Check'; const DEFAULT_NAME_FOR_LICENSE_REPORT = 'License-Check';
......
import Vue from 'vue'; import Vue from 'vue';
import Vuex from 'vuex'; import Vuex from 'vuex';
import { parseBoolean } from '~/lib/utils/common_utils';
import createStore from './stores'; import createStore from './stores';
import projectSettingsModule from './stores/modules/project_settings'; import projectSettingsModule from './stores/modules/project_settings';
import ProjectSettingsApp from './components/project_settings/app.vue'; import ProjectSettingsApp from './components/project_settings/app.vue';
import { parseBoolean } from '~/lib/utils/common_utils';
Vue.use(Vuex); Vue.use(Vuex);
......
import * as types from './mutation_types';
import { RULE_TYPE_ANY_APPROVER } from '../../../constants'; import { RULE_TYPE_ANY_APPROVER } from '../../../constants';
import * as types from './mutation_types';
export default { export default {
[types.SET_LOADING](state, isLoading) { [types.SET_LOADING](state, isLoading) {
......
...@@ -3,9 +3,9 @@ import { deprecatedCreateFlash as createFlash } from '~/flash'; ...@@ -3,9 +3,9 @@ import { deprecatedCreateFlash as createFlash } from '~/flash';
import { __ } from '~/locale'; import { __ } from '~/locale';
import Api from '~/api'; import Api from '~/api';
import axios from '~/lib/utils/axios_utils'; import axios from '~/lib/utils/axios_utils';
import * as types from './mutation_types';
import { RULE_TYPE_ANY_APPROVER } from '../../../constants'; import { RULE_TYPE_ANY_APPROVER } from '../../../constants';
import { mapMRApprovalSettingsResponse } from '../../../mappers'; import { mapMRApprovalSettingsResponse } from '../../../mappers';
import * as types from './mutation_types';
const fetchGroupMembers = memoize((id) => Api.groupMembers(id).then((response) => response.data)); const fetchGroupMembers = memoize((id) => Api.groupMembers(id).then((response) => response.data));
......
import base from '../base/mutations'; import base from '../base/mutations';
import * as types from './mutation_types';
import { RULE_TYPE_ANY_APPROVER } from '../../../constants'; import { RULE_TYPE_ANY_APPROVER } from '../../../constants';
import * as types from './mutation_types';
export default { export default {
...base, ...base,
......
import Api from '~/api'; import Api from '~/api';
import * as types from './mutation_types';
import createFlash from '~/flash'; import createFlash from '~/flash';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import * as types from './mutation_types';
export const fetchBillableMembersList = ({ dispatch, state }, { page, search } = {}) => { export const fetchBillableMembersList = ({ dispatch, state }, { page, search } = {}) => {
dispatch('requestBillableMembersList'); dispatch('requestBillableMembersList');
......
...@@ -4,8 +4,8 @@ import { mapActions, mapState, mapGetters } from 'vuex'; ...@@ -4,8 +4,8 @@ import { mapActions, mapState, mapGetters } from 'vuex';
import { GlButton, GlLoadingIcon } from '@gitlab/ui'; import { GlButton, GlLoadingIcon } from '@gitlab/ui';
import { TABLE_TYPE_DEFAULT, TABLE_TYPE_FREE, TABLE_TYPE_TRIAL } from 'ee/billings/constants'; import { TABLE_TYPE_DEFAULT, TABLE_TYPE_FREE, TABLE_TYPE_TRIAL } from 'ee/billings/constants';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import SubscriptionTableRow from './subscription_table_row.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import SubscriptionTableRow from './subscription_table_row.vue';
const createButtonProps = (text, href, testId) => ({ text, href, testId }); const createButtonProps = (text, href, testId) => ({ text, href, testId });
......
import ApiEe from 'ee/api'; import ApiEe from 'ee/api';
import Api from '~/api'; import Api from '~/api';
import * as types from './mutation_types';
import createFlash from '~/flash'; import createFlash from '~/flash';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import * as types from './mutation_types';
export const setNamespaceId = ({ commit }, namespaceId) => { export const setNamespaceId = ({ commit }, namespaceId) => {
commit(types.SET_NAMESPACE_ID, namespaceId); commit(types.SET_NAMESPACE_ID, namespaceId);
......
...@@ -6,8 +6,8 @@ import { ...@@ -6,8 +6,8 @@ import {
TABLE_TYPE_TRIAL, TABLE_TYPE_TRIAL,
HEADER_TOTAL_ENTRIES, HEADER_TOTAL_ENTRIES,
} from 'ee/billings/constants'; } from 'ee/billings/constants';
import * as types from './mutation_types';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import * as types from './mutation_types';
export default { export default {
[types.SET_NAMESPACE_ID](state, payload) { [types.SET_NAMESPACE_ID](state, payload) {
......
import { urlParamsToObject } from '~/lib/utils/common_utils';
import { objectToQuery } from '~/lib/utils/url_utility';
import { import {
IterationFilterType, IterationFilterType,
IterationIDs, IterationIDs,
...@@ -6,8 +8,6 @@ import { ...@@ -6,8 +8,6 @@ import {
WeightFilterType, WeightFilterType,
WeightIDs, WeightIDs,
} from './constants'; } from './constants';
import { urlParamsToObject } from '~/lib/utils/common_utils';
import { objectToQuery } from '~/lib/utils/url_utility';
export function getMilestone({ milestone }) { export function getMilestone({ milestone }) {
return milestone || null; return milestone || null;
......
...@@ -4,15 +4,15 @@ import { GlDrawer } from '@gitlab/ui'; ...@@ -4,15 +4,15 @@ import { GlDrawer } from '@gitlab/ui';
import { ISSUABLE } from '~/boards/constants'; import { ISSUABLE } from '~/boards/constants';
import { contentTop } from '~/lib/utils/common_utils'; import { contentTop } from '~/lib/utils/common_utils';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import BoardSidebarEpicSelect from './sidebar/board_sidebar_epic_select.vue';
import BoardAssigneeDropdown from '~/boards/components/board_assignee_dropdown.vue'; import BoardAssigneeDropdown from '~/boards/components/board_assignee_dropdown.vue';
import BoardSidebarTimeTracker from './sidebar/board_sidebar_time_tracker.vue';
import BoardSidebarWeightInput from './sidebar/board_sidebar_weight_input.vue';
import BoardSidebarLabelsSelect from '~/boards/components/sidebar/board_sidebar_labels_select.vue'; import BoardSidebarLabelsSelect from '~/boards/components/sidebar/board_sidebar_labels_select.vue';
import BoardSidebarIssueTitle from '~/boards/components/sidebar/board_sidebar_issue_title.vue'; import BoardSidebarIssueTitle from '~/boards/components/sidebar/board_sidebar_issue_title.vue';
import BoardSidebarDueDate from '~/boards/components/sidebar/board_sidebar_due_date.vue'; import BoardSidebarDueDate from '~/boards/components/sidebar/board_sidebar_due_date.vue';
import BoardSidebarSubscription from '~/boards/components/sidebar/board_sidebar_subscription.vue'; import BoardSidebarSubscription from '~/boards/components/sidebar/board_sidebar_subscription.vue';
import BoardSidebarMilestoneSelect from '~/boards/components/sidebar/board_sidebar_milestone_select.vue'; import BoardSidebarMilestoneSelect from '~/boards/components/sidebar/board_sidebar_milestone_select.vue';
import BoardSidebarWeightInput from './sidebar/board_sidebar_weight_input.vue';
import BoardSidebarTimeTracker from './sidebar/board_sidebar_time_tracker.vue';
import BoardSidebarEpicSelect from './sidebar/board_sidebar_epic_select.vue';
export default { export default {
headerHeight: `${contentTop()}px`, headerHeight: `${contentTop()}px`,
......
import Vue from 'vue'; import Vue from 'vue';
import boardsStore from '~/boards/stores/boards_store'; import boardsStore from '~/boards/stores/boards_store';
import vuexStore from '~/boards/stores'; import vuexStore from '~/boards/stores';
import ListContainer from './list_container.vue';
import { fullMilestoneId, fullUserId } from '../../boards_util'; import { fullMilestoneId, fullUserId } from '../../boards_util';
import ListContainer from './list_container.vue';
export default Vue.extend({ export default Vue.extend({
components: { components: {
......
...@@ -3,12 +3,12 @@ import { mapActions, mapGetters, mapState } from 'vuex'; ...@@ -3,12 +3,12 @@ import { mapActions, mapGetters, mapState } from 'vuex';
import { GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui'; import { GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui';
import Draggable from 'vuedraggable'; import Draggable from 'vuedraggable';
import BoardListHeader from 'ee_else_ce/boards/components/board_list_header.vue'; import BoardListHeader from 'ee_else_ce/boards/components/board_list_header.vue';
import { DRAGGABLE_TAG } from '../constants';
import defaultSortableConfig from '~/sortable/sortable_config'; import defaultSortableConfig from '~/sortable/sortable_config';
import { n__ } from '~/locale'; import { n__ } from '~/locale';
import { isListDraggable } from '~/boards/boards_util';
import { DRAGGABLE_TAG } from '../constants';
import EpicLane from './epic_lane.vue'; import EpicLane from './epic_lane.vue';
import IssuesLaneList from './issues_lane_list.vue'; import IssuesLaneList from './issues_lane_list.vue';
import { isListDraggable } from '~/boards/boards_util';
export default { export default {
components: { components: {
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
import { mapState, mapGetters, mapActions } from 'vuex'; import { mapState, mapGetters, mapActions } from 'vuex';
import EpicsSelect from 'ee/vue_shared/components/sidebar/epics_select/base.vue'; import EpicsSelect from 'ee/vue_shared/components/sidebar/epics_select/base.vue';
import { getIdFromGraphQLId } from '~/graphql_shared/utils'; import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import { fullEpicId } from '../../boards_util';
import BoardEditableItem from '~/boards/components/sidebar/board_editable_item.vue'; import BoardEditableItem from '~/boards/components/sidebar/board_editable_item.vue';
import createFlash from '~/flash'; import createFlash from '~/flash';
import { __, s__ } from '~/locale'; import { __, s__ } from '~/locale';
import { fullEpicId } from '../../boards_util';
export default { export default {
components: { components: {
......
...@@ -9,11 +9,7 @@ import { ...@@ -9,11 +9,7 @@ import {
import { mergeUrlParams, removeParams } from '~/lib/utils/url_utility'; import { mergeUrlParams, removeParams } from '~/lib/utils/url_utility';
import actionsCE from '~/boards/stores/actions'; import actionsCE from '~/boards/stores/actions';
import { BoardType } from '~/boards/constants'; import { BoardType } from '~/boards/constants';
import { EpicFilterType, IterationFilterType, GroupByParamType } from '../constants';
import boardsStoreEE from './boards_store_ee';
import * as types from './mutation_types';
import * as typesCE from '~/boards/stores/mutation_types'; import * as typesCE from '~/boards/stores/mutation_types';
import { fullEpicId } from '../boards_util';
import { import {
formatBoardLists, formatBoardLists,
formatListIssues, formatListIssues,
...@@ -22,16 +18,20 @@ import { ...@@ -22,16 +18,20 @@ import {
} from '~/boards/boards_util'; } from '~/boards/boards_util';
import { getIdFromGraphQLId } from '~/graphql_shared/utils'; import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import eventHub from '~/boards/eventhub'; import eventHub from '~/boards/eventhub';
import createGqClient, { fetchPolicies } from '~/lib/graphql'; import createGqClient, { fetchPolicies } from '~/lib/graphql';
import listsIssuesQuery from '~/boards/graphql/lists_issues.query.graphql';
import { fullEpicId } from '../boards_util';
import epicQuery from '../graphql/epic.query.graphql'; import epicQuery from '../graphql/epic.query.graphql';
import epicsSwimlanesQuery from '../graphql/epics_swimlanes.query.graphql'; import epicsSwimlanesQuery from '../graphql/epics_swimlanes.query.graphql';
import issueSetEpicMutation from '../graphql/issue_set_epic.mutation.graphql'; import issueSetEpicMutation from '../graphql/issue_set_epic.mutation.graphql';
import issueSetWeightMutation from '../graphql/issue_set_weight.mutation.graphql'; import issueSetWeightMutation from '../graphql/issue_set_weight.mutation.graphql';
import listsIssuesQuery from '~/boards/graphql/lists_issues.query.graphql'; import { EpicFilterType, IterationFilterType, GroupByParamType } from '../constants';
import issueMoveListMutation from '../graphql/issue_move_list.mutation.graphql'; import issueMoveListMutation from '../graphql/issue_move_list.mutation.graphql';
import listUpdateLimitMetricsMutation from '../graphql/list_update_limit_metrics.mutation.graphql'; import listUpdateLimitMetricsMutation from '../graphql/list_update_limit_metrics.mutation.graphql';
import updateBoardEpicUserPreferencesMutation from '../graphql/updateBoardEpicUserPreferences.mutation.graphql'; import updateBoardEpicUserPreferencesMutation from '../graphql/updateBoardEpicUserPreferences.mutation.graphql';
import * as types from './mutation_types';
import boardsStoreEE from './boards_store_ee';
const notImplemented = () => { const notImplemented = () => {
/* eslint-disable-next-line @gitlab/require-i18n-strings */ /* eslint-disable-next-line @gitlab/require-i18n-strings */
......
import Vue from 'vue'; import Vue from 'vue';
import ToggleEpicsSwimlanes from './components/toggle_epics_swimlanes.vue';
import store from '~/boards/stores'; import store from '~/boards/stores';
import ToggleEpicsSwimlanes from './components/toggle_epics_swimlanes.vue';
export default () => { export default () => {
const el = document.getElementById('js-board-epics-swimlanes-toggle'); const el = document.getElementById('js-board-epics-swimlanes-toggle');
......
...@@ -4,15 +4,15 @@ import dateFormat from 'dateformat'; ...@@ -4,15 +4,15 @@ import dateFormat from 'dateformat';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { getDayDifference, nDaysAfter, newDateAsLocaleTime } from '~/lib/utils/datetime_utility'; import { getDayDifference, nDaysAfter, newDateAsLocaleTime } from '~/lib/utils/datetime_utility';
import { deprecatedCreateFlash as createFlash } from '~/flash';
import axios from '~/lib/utils/axios_utils';
import { Namespace } from '../constants';
import BurnupQuery from '../graphql/burnup.query.graphql';
import BurndownChartData from '../burn_chart_data';
import BurndownChart from './burndown_chart.vue'; import BurndownChart from './burndown_chart.vue';
import BurnupChart from './burnup_chart.vue'; import BurnupChart from './burnup_chart.vue';
import TimeboxSummaryCards from './timebox_summary_cards.vue'; import TimeboxSummaryCards from './timebox_summary_cards.vue';
import OpenTimeboxSummary from './open_timebox_summary.vue'; import OpenTimeboxSummary from './open_timebox_summary.vue';
import { Namespace } from '../constants';
import BurnupQuery from '../graphql/burnup.query.graphql';
import BurndownChartData from '../burn_chart_data';
import { deprecatedCreateFlash as createFlash } from '~/flash';
import axios from '~/lib/utils/axios_utils';
export default { export default {
components: { components: {
......
<script> <script>
import { GlAlert, GlKeysetPagination, GlLoadingIcon } from '@gitlab/ui'; import { GlAlert, GlKeysetPagination, GlLoadingIcon } from '@gitlab/ui';
import AgentEmptyState from './agent_empty_state.vue';
import AgentTable from './agent_table.vue';
import getAgentsQuery from '../graphql/queries/get_agents.query.graphql'; import getAgentsQuery from '../graphql/queries/get_agents.query.graphql';
import { MAX_LIST_COUNT } from '../constants'; import { MAX_LIST_COUNT } from '../constants';
import AgentEmptyState from './agent_empty_state.vue';
import AgentTable from './agent_table.vue';
export default { export default {
apollo: { apollo: {
......
import Vue from 'vue'; import Vue from 'vue';
import VueApollo from 'vue-apollo'; import VueApollo from 'vue-apollo';
import loadAgents from './load_agents';
import loadClusters from '~/clusters_list/load_clusters'; import loadClusters from '~/clusters_list/load_clusters';
import loadAgents from './load_agents';
Vue.use(VueApollo); Vue.use(VueApollo);
......
import Agents from './components/agents.vue';
import createDefaultClient from '~/lib/graphql'; import createDefaultClient from '~/lib/graphql';
import Agents from './components/agents.vue';
export default (Vue, VueApollo) => { export default (Vue, VueApollo) => {
const el = document.querySelector('#js-cluster-agents-list'); const el = document.querySelector('#js-cluster-agents-list');
......
import axios from '~/lib/utils/axios_utils'; import axios from '~/lib/utils/axios_utils';
import * as types from './mutation_types';
import { deprecatedCreateFlash as createFlash } from '~/flash'; import { deprecatedCreateFlash as createFlash } from '~/flash';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import { VIEW_EVENT_FEATURE_FLAG, VIEW_EVENT_NAME } from './constants';
import Api from '~/api'; import Api from '~/api';
import { parseCodeclimateMetrics } from '~/reports/codequality_report/store/utils/codequality_comparison'; import { parseCodeclimateMetrics } from '~/reports/codequality_report/store/utils/codequality_comparison';
import { VIEW_EVENT_FEATURE_FLAG, VIEW_EVENT_NAME } from './constants';
import * as types from './mutation_types';
export const setPage = ({ commit }, page) => commit(types.SET_PAGE, page); export const setPage = ({ commit }, page) => commit(types.SET_PAGE, page);
......
import Vue from 'vue'; import Vue from 'vue';
import ComplianceDashboard from './components/dashboard.vue';
import { parseBoolean } from '~/lib/utils/common_utils'; import { parseBoolean } from '~/lib/utils/common_utils';
import ComplianceDashboard from './components/dashboard.vue';
export default () => { export default () => {
const el = document.getElementById('js-compliance-dashboard'); const el = document.getElementById('js-compliance-dashboard');
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import { GlTabs, GlTab } from '@gitlab/ui'; import { GlTabs, GlTab } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { COMPLIANCE_TAB_COOKIE_KEY } from '../constants';
import MergeRequestsGrid from './merge_requests/grid.vue'; import MergeRequestsGrid from './merge_requests/grid.vue';
import EmptyState from './empty_state.vue'; import EmptyState from './empty_state.vue';
import MergeCommitsExportButton from './merge_requests/merge_commits_export_button.vue'; import MergeCommitsExportButton from './merge_requests/merge_commits_export_button.vue';
import { COMPLIANCE_TAB_COOKIE_KEY } from '../constants';
export default { export default {
name: 'ComplianceDashboard', name: 'ComplianceDashboard',
......
...@@ -4,11 +4,11 @@ import { GlSprintf } from '@gitlab/ui'; ...@@ -4,11 +4,11 @@ import { GlSprintf } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import GridColumnHeading from '../shared/grid_column_heading.vue';
import Pagination from '../shared/pagination.vue';
import Approvers from './approvers.vue'; import Approvers from './approvers.vue';
import BranchDetails from './branch_details.vue'; import BranchDetails from './branch_details.vue';
import GridColumnHeading from '../shared/grid_column_heading.vue';
import MergeRequest from './merge_request.vue'; import MergeRequest from './merge_request.vue';
import Pagination from '../shared/pagination.vue';
import Status from './status.vue'; import Status from './status.vue';
export default { export default {
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
import { mapActions, mapGetters, mapState } from 'vuex'; import { mapActions, mapGetters, mapState } from 'vuex';
import { GlEmptyState, GlIcon, GlLoadingIcon, GlSprintf, GlLink, GlButton } from '@gitlab/ui'; import { GlEmptyState, GlIcon, GlLoadingIcon, GlSprintf, GlLink, GlButton } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { DEPENDENCY_LIST_TYPES } from '../store/constants';
import { REPORT_STATUS } from '../store/modules/list/constants';
import DependenciesActions from './dependencies_actions.vue'; import DependenciesActions from './dependencies_actions.vue';
import DependencyListIncompleteAlert from './dependency_list_incomplete_alert.vue'; import DependencyListIncompleteAlert from './dependency_list_incomplete_alert.vue';
import DependencyListJobFailedAlert from './dependency_list_job_failed_alert.vue'; import DependencyListJobFailedAlert from './dependency_list_job_failed_alert.vue';
import PaginatedDependenciesTable from './paginated_dependencies_table.vue'; import PaginatedDependenciesTable from './paginated_dependencies_table.vue';
import { DEPENDENCY_LIST_TYPES } from '../store/constants';
import { REPORT_STATUS } from '../store/modules/list/constants';
export default { export default {
name: 'DependenciesApp', name: 'DependenciesApp',
......
<script> <script>
import { mapActions, mapState } from 'vuex'; import { mapActions, mapState } from 'vuex';
import Pagination from '~/vue_shared/components/pagination_links.vue'; import Pagination from '~/vue_shared/components/pagination_links.vue';
import DependenciesTable from './dependencies_table.vue';
import { DEPENDENCY_LIST_TYPES } from '../store/constants'; import { DEPENDENCY_LIST_TYPES } from '../store/constants';
import DependenciesTable from './dependencies_table.vue';
export default { export default {
name: 'PaginatedDependenciesTable', name: 'PaginatedDependenciesTable',
......
import { normalizeHeaders, parseIntPagination } from '~/lib/utils/common_utils'; import { normalizeHeaders, parseIntPagination } from '~/lib/utils/common_utils';
import { deprecatedCreateFlash as createFlash } from '~/flash'; import { deprecatedCreateFlash as createFlash } from '~/flash';
import axios from '~/lib/utils/axios_utils';
import { __ } from '~/locale';
import { FETCH_ERROR_MESSAGE } from './constants'; import { FETCH_ERROR_MESSAGE } from './constants';
import { isValidResponse } from './utils'; import { isValidResponse } from './utils';
import * as types from './mutation_types'; import * as types from './mutation_types';
import axios from '~/lib/utils/axios_utils';
import { __ } from '~/locale';
export const setDependenciesEndpoint = ({ commit }, endpoint) => export const setDependenciesEndpoint = ({ commit }, endpoint) =>
commit(types.SET_DEPENDENCIES_ENDPOINT, endpoint); commit(types.SET_DEPENDENCIES_ENDPOINT, endpoint);
......
import { REPORT_STATUS } from './constants';
import { getTimeago } from '~/lib/utils/datetime_utility'; import { getTimeago } from '~/lib/utils/datetime_utility';
import { REPORT_STATUS } from './constants';
export const generatedAtTimeAgo = ({ reportInfo: { generatedAt } }) => export const generatedAtTimeAgo = ({ reportInfo: { generatedAt } }) =>
generatedAt ? getTimeago().format(generatedAt) : ''; generatedAt ? getTimeago().format(generatedAt) : '';
......
...@@ -3,21 +3,19 @@ import { mapState, mapGetters, mapActions } from 'vuex'; ...@@ -3,21 +3,19 @@ import { mapState, mapGetters, mapActions } from 'vuex';
import AncestorsTree from 'ee/sidebar/components/ancestors_tree/ancestors_tree.vue'; import AncestorsTree from 'ee/sidebar/components/ancestors_tree/ancestors_tree.vue';
import epicUtils from '../utils/epic_utils';
import SidebarHeader from './sidebar_items/sidebar_header.vue';
import SidebarTodo from './sidebar_items/sidebar_todo.vue';
import SidebarDatePicker from './sidebar_items/sidebar_date_picker.vue';
import SidebarDatePickerCollapsed from '~/vue_shared/components/sidebar/collapsed_grouped_date_picker.vue'; import SidebarDatePickerCollapsed from '~/vue_shared/components/sidebar/collapsed_grouped_date_picker.vue';
import SidebarLabels from './sidebar_items/sidebar_labels.vue';
import SidebarParticipants from '~/sidebar/components/participants/participants.vue'; import SidebarParticipants from '~/sidebar/components/participants/participants.vue';
import SidebarSubscription from './sidebar_items/sidebar_subscription.vue';
import ConfidentialIssueSidebar from '~/sidebar/components/confidential/confidential_issue_sidebar.vue'; import ConfidentialIssueSidebar from '~/sidebar/components/confidential/confidential_issue_sidebar.vue';
import notesEventHub from '~/notes/event_hub'; import notesEventHub from '~/notes/event_hub';
import sidebarEventHub from '~/sidebar/event_hub'; import sidebarEventHub from '~/sidebar/event_hub';
import epicUtils from '../utils/epic_utils';
import { dateTypes } from '../constants'; import { dateTypes } from '../constants';
import SidebarHeader from './sidebar_items/sidebar_header.vue';
import SidebarTodo from './sidebar_items/sidebar_todo.vue';
import SidebarDatePicker from './sidebar_items/sidebar_date_picker.vue';
import SidebarLabels from './sidebar_items/sidebar_labels.vue';
import SidebarSubscription from './sidebar_items/sidebar_subscription.vue';
export default { export default {
dateTypes, dateTypes,
......
...@@ -2,9 +2,8 @@ ...@@ -2,9 +2,8 @@
import { mapState, mapActions } from 'vuex'; import { mapState, mapActions } from 'vuex';
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import ListLabel from '../../models/label';
import LabelsSelectVue from '~/vue_shared/components/sidebar/labels_select_vue/labels_select_root.vue'; import LabelsSelectVue from '~/vue_shared/components/sidebar/labels_select_vue/labels_select_root.vue';
import ListLabel from '../../models/label';
export default { export default {
components: { components: {
......
import DropdownUser from '~/filtered_search/dropdown_user'; import DropdownUser from '~/filtered_search/dropdown_user';
import DropdownNonUser from '~/filtered_search/dropdown_non_user'; import DropdownNonUser from '~/filtered_search/dropdown_non_user';
import DropdownWeight from './dropdown_weight';
import DropdownAjaxFilter from '~/filtered_search/dropdown_ajax_filter'; import DropdownAjaxFilter from '~/filtered_search/dropdown_ajax_filter';
import AvailableDropdownMappingsCE from '~/filtered_search/available_dropdown_mappings'; import AvailableDropdownMappingsCE from '~/filtered_search/available_dropdown_mappings';
import DropdownWeight from './dropdown_weight';
export default class AvailableDropdownMappings { export default class AvailableDropdownMappings {
constructor({ constructor({
......
<script> <script>
import { GlFormGroup, GlFormSelect, GlFormCheckbox, GlSprintf, GlLink } from '@gitlab/ui'; import { GlFormGroup, GlFormSelect, GlFormCheckbox, GlSprintf, GlLink } from '@gitlab/ui';
import { SELECTIVE_SYNC_MORE_INFO, OBJECT_STORAGE_MORE_INFO } from '../constants';
import GeoNodeFormNamespaces from './geo_node_form_namespaces.vue'; import GeoNodeFormNamespaces from './geo_node_form_namespaces.vue';
import GeoNodeFormShards from './geo_node_form_shards.vue'; import GeoNodeFormShards from './geo_node_form_shards.vue';
import { SELECTIVE_SYNC_MORE_INFO, OBJECT_STORAGE_MORE_INFO } from '../constants';
export default { export default {
name: 'GeoNodeFormSelectiveSync', name: 'GeoNodeFormSelectiveSync',
......
import Api from 'ee/api';
import { flatten } from 'lodash'; import { flatten } from 'lodash';
import Api from 'ee/api';
import { deprecatedCreateFlash as createFlash } from '~/flash'; import { deprecatedCreateFlash as createFlash } from '~/flash';
import { visitUrl } from '~/lib/utils/url_utility'; import { visitUrl } from '~/lib/utils/url_utility';
import { convertObjectPropsToSnakeCase } from '~/lib/utils/common_utils'; import { convertObjectPropsToSnakeCase } from '~/lib/utils/common_utils';
......
<script> <script>
import { GlIcon } from '@gitlab/ui'; import { GlIcon } from '@gitlab/ui';
import GeoNodeLastUpdated from './geo_node_last_updated.vue';
import { HEALTH_STATUS_ICON, HEALTH_STATUS_CLASS } from '../constants'; import { HEALTH_STATUS_ICON, HEALTH_STATUS_CLASS } from '../constants';
import GeoNodeLastUpdated from './geo_node_last_updated.vue';
export default { export default {
components: { components: {
......
...@@ -9,8 +9,8 @@ import { ...@@ -9,8 +9,8 @@ import {
} from '~/lib/utils/common_utils'; } from '~/lib/utils/common_utils';
import buildReplicableTypeQuery from '../graphql/replicable_type_query_builder'; import buildReplicableTypeQuery from '../graphql/replicable_type_query_builder';
import { gqClient } from '../utils'; import { gqClient } from '../utils';
import * as types from './mutation_types';
import { FILTER_STATES, PREV, NEXT, DEFAULT_PAGE_SIZE } from '../constants'; import { FILTER_STATES, PREV, NEXT, DEFAULT_PAGE_SIZE } from '../constants';
import * as types from './mutation_types';
// Fetch Replicable Items // Fetch Replicable Items
export const requestReplicableItems = ({ commit }) => commit(types.REQUEST_REPLICABLE_ITEMS); export const requestReplicableItems = ({ commit }) => commit(types.REQUEST_REPLICABLE_ITEMS);
......
import * as types from './mutation_types';
import { DEFAULT_TIMEOUT, DEFAULT_ALLOWED_IP } from '../constants'; import { DEFAULT_TIMEOUT, DEFAULT_ALLOWED_IP } from '../constants';
import * as types from './mutation_types';
export default { export default {
[types.REQUEST_GEO_SETTINGS](state) { [types.REQUEST_GEO_SETTINGS](state) {
......
...@@ -2,9 +2,8 @@ ...@@ -2,9 +2,8 @@
import { visitUrl } from '~/lib/utils/url_utility'; import { visitUrl } from '~/lib/utils/url_utility';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import * as Sentry from '~/sentry/wrapper'; import * as Sentry from '~/sentry/wrapper';
import SharedForm from './shared_form.vue';
import createComplianceFrameworkMutation from '../graphql/queries/create_compliance_framework.mutation.graphql'; import createComplianceFrameworkMutation from '../graphql/queries/create_compliance_framework.mutation.graphql';
import SharedForm from './shared_form.vue';
export default { export default {
components: { components: {
......
...@@ -3,10 +3,10 @@ import { visitUrl } from '~/lib/utils/url_utility'; ...@@ -3,10 +3,10 @@ import { visitUrl } from '~/lib/utils/url_utility';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import * as Sentry from '~/sentry/wrapper'; import * as Sentry from '~/sentry/wrapper';
import { convertToGraphQLId } from '~/graphql_shared/utils'; import { convertToGraphQLId } from '~/graphql_shared/utils';
import SharedForm from './shared_form.vue';
import getComplianceFrameworkQuery from '../graphql/queries/get_compliance_framework.query.graphql'; import getComplianceFrameworkQuery from '../graphql/queries/get_compliance_framework.query.graphql';
import updateComplianceFrameworkMutation from '../graphql/queries/update_compliance_framework.mutation.graphql'; import updateComplianceFrameworkMutation from '../graphql/queries/update_compliance_framework.mutation.graphql';
import SharedForm from './shared_form.vue';
export default { export default {
components: { components: {
......
import Vue from 'vue'; import Vue from 'vue';
import VueApollo from 'vue-apollo'; import VueApollo from 'vue-apollo';
import createDefaultClient from '~/lib/graphql';
import CreateForm from './components/create_form.vue'; import CreateForm from './components/create_form.vue';
import EditForm from './components/edit_form.vue'; import EditForm from './components/edit_form.vue';
import createDefaultClient from '~/lib/graphql';
Vue.use(VueApollo); Vue.use(VueApollo);
......
...@@ -5,8 +5,8 @@ import { getSvgIconPathContent } from '~/lib/utils/icon_utils'; ...@@ -5,8 +5,8 @@ import { getSvgIconPathContent } from '~/lib/utils/icon_utils';
import ResizableChartContainer from '~/vue_shared/components/resizable_chart/resizable_chart_container.vue'; import ResizableChartContainer from '~/vue_shared/components/resizable_chart/resizable_chart_container.vue';
import ChartSkeletonLoader from '~/vue_shared/components/resizable_chart/skeleton_loader.vue'; import ChartSkeletonLoader from '~/vue_shared/components/resizable_chart/skeleton_loader.vue';
import InsightsChartError from './insights_chart_error.vue';
import { CHART_TYPES } from '../constants'; import { CHART_TYPES } from '../constants';
import InsightsChartError from './insights_chart_error.vue';
const CHART_HEIGHT = 300; const CHART_HEIGHT = 300;
......
...@@ -3,8 +3,8 @@ import { GlEmptyState } from '@gitlab/ui'; ...@@ -3,8 +3,8 @@ import { GlEmptyState } from '@gitlab/ui';
import { isUndefined } from 'lodash'; import { isUndefined } from 'lodash';
import { mapActions, mapState } from 'vuex'; import { mapActions, mapState } from 'vuex';
import InsightsChart from './insights_chart.vue';
import { __ } from '~/locale'; import { __ } from '~/locale';
import InsightsChart from './insights_chart.vue';
export default { export default {
components: { components: {
......
...@@ -9,14 +9,13 @@ import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; ...@@ -9,14 +9,13 @@ import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import IssuableList from '~/issuable_list/components/issuable_list_root.vue'; import IssuableList from '~/issuable_list/components/issuable_list_root.vue';
import JiraIssuesListEmptyState from './jira_issues_list_empty_state.vue';
import { import {
IssuableStates, IssuableStates,
IssuableListTabs, IssuableListTabs,
AvailableSortOptions, AvailableSortOptions,
DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE,
} from '~/issuable_list/constants'; } from '~/issuable_list/constants';
import JiraIssuesListEmptyState from './jira_issues_list_empty_state.vue';
export default { export default {
name: 'JiraIssuesList', name: 'JiraIssuesList',
......
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import createFlash from '~/flash'; import createFlash from '~/flash';
import * as types from './mutation_types';
import { deleteMetricImage, getMetricImages, uploadMetricImage } from '../service'; import { deleteMetricImage, getMetricImages, uploadMetricImage } from '../service';
import * as types from './mutation_types';
export const fetchMetricImages = async ({ state, commit }) => { export const fetchMetricImages = async ({ state, commit }) => {
commit(types.REQUEST_METRIC_IMAGES); commit(types.REQUEST_METRIC_IMAGES);
......
...@@ -7,9 +7,9 @@ import { s__ } from '~/locale'; ...@@ -7,9 +7,9 @@ import { s__ } from '~/locale';
import { getMonthNames } from '~/lib/utils/datetime_utility'; import { getMonthNames } from '~/lib/utils/datetime_utility';
import { getSvgIconPathContent } from '~/lib/utils/icon_utils'; import { getSvgIconPathContent } from '~/lib/utils/icon_utils';
import { mergeUrlParams } from '~/lib/utils/url_utility'; import { mergeUrlParams } from '~/lib/utils/url_utility';
import IssuesAnalyticsTable from './issues_analytics_table.vue';
import FilteredSearchIssueAnalytics from '../filtered_search_issues_analytics'; import FilteredSearchIssueAnalytics from '../filtered_search_issues_analytics';
import { transformFilters } from '../utils'; import { transformFilters } from '../utils';
import IssuesAnalyticsTable from './issues_analytics_table.vue';
export default { export default {
components: { components: {
......
import Vue from 'vue'; import Vue from 'vue';
import { urlParamsToObject } from '~/lib/utils/common_utils';
import IssuesAnalytics from './components/issues_analytics.vue'; import IssuesAnalytics from './components/issues_analytics.vue';
import store from './stores'; import store from './stores';
import { urlParamsToObject } from '~/lib/utils/common_utils';
export default () => { export default () => {
const el = document.querySelector('#js-issues-analytics'); const el = document.querySelector('#js-issues-analytics');
......
...@@ -4,9 +4,9 @@ import { deprecatedCreateFlash as createFlash } from '~/flash'; ...@@ -4,9 +4,9 @@ import { deprecatedCreateFlash as createFlash } from '~/flash';
import { visitUrl } from '~/lib/utils/url_utility'; import { visitUrl } from '~/lib/utils/url_utility';
import { __ } from '~/locale'; import { __ } from '~/locale';
import MarkdownField from '~/vue_shared/components/markdown/field.vue'; import MarkdownField from '~/vue_shared/components/markdown/field.vue';
import DueDateSelectors from '~/due_date_select';
import createIteration from '../queries/create_iteration.mutation.graphql'; import createIteration from '../queries/create_iteration.mutation.graphql';
import updateIteration from '../queries/update_iteration.mutation.graphql'; import updateIteration from '../queries/update_iteration.mutation.graphql';
import DueDateSelectors from '~/due_date_select';
export default { export default {
components: { components: {
......
...@@ -13,10 +13,10 @@ import BurnCharts from 'ee/burndown_chart/components/burn_charts.vue'; ...@@ -13,10 +13,10 @@ import BurnCharts from 'ee/burndown_chart/components/burn_charts.vue';
import { formatDate } from '~/lib/utils/datetime_utility'; import { formatDate } from '~/lib/utils/datetime_utility';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { __ } from '~/locale'; import { __ } from '~/locale';
import IterationForm from './iteration_form.vue';
import IterationReportTabs from './iteration_report_tabs.vue';
import query from '../queries/iteration.query.graphql'; import query from '../queries/iteration.query.graphql';
import { Namespace } from '../constants'; import { Namespace } from '../constants';
import IterationForm from './iteration_form.vue';
import IterationReportTabs from './iteration_report_tabs.vue';
const iterationStates = { const iterationStates = {
closed: 'closed', closed: 'closed',
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
import { GlBadge, GlFormSelect, GlTab, GlTabs } from '@gitlab/ui'; import { GlBadge, GlFormSelect, GlTab, GlTabs } from '@gitlab/ui';
import { differenceBy, unionBy } from 'lodash'; import { differenceBy, unionBy } from 'lodash';
import LabelsSelect from '~/vue_shared/components/sidebar/labels_select_vue/labels_select_root.vue'; import LabelsSelect from '~/vue_shared/components/sidebar/labels_select_vue/labels_select_root.vue';
import { GroupBy, Namespace } from '../constants';
import { DropdownVariant } from '~/vue_shared/components/sidebar/labels_select_vue/constants'; import { DropdownVariant } from '~/vue_shared/components/sidebar/labels_select_vue/constants';
import IterationReportIssues from './iteration_report_issues.vue';
import { __ } from '~/locale'; import { __ } from '~/locale';
import { GroupBy, Namespace } from '../constants';
import IterationReportIssues from './iteration_report_issues.vue';
export default { export default {
selectOptions: [ selectOptions: [
......
<script> <script>
import { GlAlert, GlButton, GlLoadingIcon, GlPagination, GlTab, GlTabs } from '@gitlab/ui'; import { GlAlert, GlButton, GlLoadingIcon, GlPagination, GlTab, GlTabs } from '@gitlab/ui';
import { __ } from '~/locale'; import { __ } from '~/locale';
import IterationsList from './iterations_list.vue';
import IterationsQuery from '../queries/iterations.query.graphql'; import IterationsQuery from '../queries/iterations.query.graphql';
import { Namespace } from '../constants'; import { Namespace } from '../constants';
import IterationsList from './iterations_list.vue';
const pageSize = 20; const pageSize = 20;
......
...@@ -12,11 +12,11 @@ import { ...@@ -12,11 +12,11 @@ import {
} from '@gitlab/ui'; } from '@gitlab/ui';
import { LICENSE_MANAGEMENT } from 'ee/vue_shared/license_compliance/store/constants'; import { LICENSE_MANAGEMENT } from 'ee/vue_shared/license_compliance/store/constants';
import LicenseManagement from 'ee/vue_shared/license_compliance/license_management.vue'; import LicenseManagement from 'ee/vue_shared/license_compliance/license_management.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { getLocationHash } from '~/lib/utils/url_utility';
import { LICENSE_LIST } from '../store/constants'; import { LICENSE_LIST } from '../store/constants';
import DetectedLicensesTable from './detected_licenses_table.vue'; import DetectedLicensesTable from './detected_licenses_table.vue';
import PipelineInfo from './pipeline_info.vue'; import PipelineInfo from './pipeline_info.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { getLocationHash } from '~/lib/utils/url_utility';
export default { export default {
name: 'LicenseComplianceApp', name: 'LicenseComplianceApp',
......
<script> <script>
import { mapActions, mapState } from 'vuex'; import { mapActions, mapState } from 'vuex';
import Pagination from '~/vue_shared/components/pagination_links.vue'; import Pagination from '~/vue_shared/components/pagination_links.vue';
import LicensesTable from './licenses_table.vue';
import { LICENSE_LIST } from '../store/constants'; import { LICENSE_LIST } from '../store/constants';
import LicensesTable from './licenses_table.vue';
export default { export default {
name: 'DetectedLicensesTable', name: 'DetectedLicensesTable',
......
...@@ -7,9 +7,8 @@ import approvalsModule, { ...@@ -7,9 +7,8 @@ import approvalsModule, {
} from 'ee/approvals/stores/modules/license_compliance'; } from 'ee/approvals/stores/modules/license_compliance';
import { licenseManagementModule } from 'ee/vue_shared/license_compliance/store/index'; import { licenseManagementModule } from 'ee/vue_shared/license_compliance/store/index';
import { LICENSE_MANAGEMENT } from 'ee/vue_shared/license_compliance/store/constants'; import { LICENSE_MANAGEMENT } from 'ee/vue_shared/license_compliance/store/constants';
import createState from './state';
import modalModule from '~/vuex_shared/modules/modal'; import modalModule from '~/vuex_shared/modules/modal';
import createState from './state';
import mediator from './plugins/mediator'; import mediator from './plugins/mediator';
......
import * as types from './mutation_types';
import { toLicenseObject } from '../../../utils/mappers'; import { toLicenseObject } from '../../../utils/mappers';
import * as types from './mutation_types';
export default { export default {
[types.SET_LICENSES_ENDPOINT](state, payload) { [types.SET_LICENSES_ENDPOINT](state, payload) {
......
import * as types from './mutation_types';
import { DEFAULT_MAINTENANCE_ENABLED, DEFAULT_BANNER_MESSAGE } from '../constants'; import { DEFAULT_MAINTENANCE_ENABLED, DEFAULT_BANNER_MESSAGE } from '../constants';
import * as types from './mutation_types';
export default { export default {
[types.REQUEST_UPDATE_MAINTENANCE_MODE_SETTINGS](state) { [types.REQUEST_UPDATE_MAINTENANCE_MODE_SETTINGS](state) {
......
import * as types from './mutation_types';
import axios from '~/lib/utils/axios_utils'; import axios from '~/lib/utils/axios_utils';
import * as types from './mutation_types';
export * from '~/members/store/actions'; export * from '~/members/store/actions';
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment