debian-mirror-gitlab/app/assets/javascripts/vue_merge_request_widget/constants.js
2021-11-18 22:05:49 +05:30

151 lines
4.2 KiB
JavaScript

import { s__ } from '~/locale';
import { stateToComponentMap as classStateMap, stateKey } from './stores/state_maps';
export const SUCCESS = 'success';
export const WARNING = 'warning';
export const DANGER = 'danger';
export const INFO = 'info';
export const CONFIRM = 'confirm';
export const MWPS_MERGE_STRATEGY = 'merge_when_pipeline_succeeds';
export const MTWPS_MERGE_STRATEGY = 'add_to_merge_train_when_pipeline_succeeds';
export const MT_MERGE_STRATEGY = 'merge_train';
export const PIPELINE_FAILED_STATE = 'failed';
export const AUTO_MERGE_STRATEGIES = [MWPS_MERGE_STRATEGY, MTWPS_MERGE_STRATEGY, MT_MERGE_STRATEGY];
// SP - "Suggest Pipelines"
export const SP_TRACK_LABEL = 'no_pipeline_noticed';
export const SP_LINK_TRACK_EVENT = 'click_link';
export const SP_SHOW_TRACK_EVENT = 'click_button';
export const SP_LINK_TRACK_VALUE = 30;
export const SP_SHOW_TRACK_VALUE = 10;
export const SP_HELP_CONTENT = s__(
`mrWidget|Use %{linkStart}CI pipelines to test your code%{linkEnd} by simply adding a GitLab CI configuration file to your project. It only takes a minute to make your code more secure and robust.`,
);
export const SP_HELP_URL = 'https://about.gitlab.com/blog/2019/07/12/guide-to-ci-cd-pipelines/';
export const SP_ICON_NAME = 'status_notfound';
export const MERGE_ACTIVE_STATUS_PHRASES = [
{
message: s__('mrWidget|Merging! Drum roll, please…'),
emoji: 'drum',
},
{
message: s__("mrWidget|Merging! We're almost there…"),
emoji: 'sparkles',
},
{
message: s__('mrWidget|Merging! Changes will land soon…'),
emoji: 'airplane_arriving',
},
{
message: s__('mrWidget|Merging! Changes are being shipped…'),
emoji: 'ship',
},
{
message: s__("mrWidget|Merging! Everything's good…"),
emoji: 'relieved',
},
{
message: s__('mrWidget|Merging! This is going to be great…'),
emoji: 'heart_eyes',
},
];
const STATE_MACHINE = {
states: {
IDLE: 'IDLE',
MERGING: 'MERGING',
AUTO_MERGE: 'AUTO_MERGE',
},
transitions: {
MERGE: 'start-merge',
AUTO_MERGE: 'start-auto-merge',
MERGE_FAILURE: 'merge-failed',
MERGED: 'merge-done',
},
};
const { states, transitions } = STATE_MACHINE;
STATE_MACHINE.definition = {
initial: states.IDLE,
states: {
[states.IDLE]: {
on: {
[transitions.MERGE]: states.MERGING,
[transitions.AUTO_MERGE]: states.AUTO_MERGE,
},
},
[states.MERGING]: {
on: {
[transitions.MERGED]: states.IDLE,
[transitions.MERGE_FAILURE]: states.IDLE,
},
},
[states.AUTO_MERGE]: {
on: {
[transitions.MERGED]: states.IDLE,
[transitions.MERGE_FAILURE]: states.IDLE,
},
},
},
};
export const stateToTransitionMap = {
[stateKey.merging]: transitions.MERGE,
[stateKey.merged]: transitions.MERGED,
[stateKey.autoMergeEnabled]: transitions.AUTO_MERGE,
};
export const stateToComponentMap = {
[states.MERGING]: classStateMap[stateKey.merging],
[states.AUTO_MERGE]: classStateMap[stateKey.autoMergeEnabled],
};
export const EXTENSION_ICONS = {
failed: 'failed',
warning: 'warning',
success: 'success',
neutral: 'neutral',
error: 'error',
notice: 'notice',
severityCritical: 'severityCritical',
severityHigh: 'severityHigh',
severityMedium: 'severityMedium',
severityLow: 'severityLow',
severityInfo: 'severityInfo',
severityUnknown: 'severityUnknown',
};
export const EXTENSION_ICON_NAMES = {
failed: 'status-failed',
warning: 'status-alert',
success: 'status-success',
neutral: 'status-neutral',
error: 'status-alert',
notice: 'status-alert',
severityCritical: 'severity-critical',
severityHigh: 'severity-high',
severityMedium: 'severity-medium',
severityLow: 'severity-low',
severityInfo: 'severity-info',
severityUnknown: 'severity-unknown',
};
export const EXTENSION_ICON_CLASS = {
failed: 'gl-text-red-500',
warning: 'gl-text-orange-500',
success: 'gl-text-green-500',
neutral: 'gl-text-gray-400',
error: 'gl-text-red-500',
notice: 'gl-text-gray-500',
severityCritical: 'gl-text-red-800',
severityHigh: 'gl-text-red-600',
severityMedium: 'gl-text-orange-400',
severityLow: 'gl-text-orange-300',
severityInfo: 'gl-text-blue-400',
severityUnknown: 'gl-text-gray-400',
};
export { STATE_MACHINE };