summaryrefslogtreecommitdiff
path: root/app/assets/javascripts
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-10-14 21:06:30 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-10-14 21:06:30 +0000
commit565fa11a26c6824b1c6072d2dc5459979345ee57 (patch)
tree2668b631d925341e121c06b7b77cfe12954a015a /app/assets/javascripts
parent8c30d396c5a789080345303330069981aa06e4af (diff)
downloadgitlab-ce-565fa11a26c6824b1c6072d2dc5459979345ee57.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r--app/assets/javascripts/boards/components/boards_selector.vue1
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue10
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue141
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/components/security_group_dropdown.vue0
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/constants.js7
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/index.js13
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js170
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/store/actions.js20
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/store/index.js4
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js5
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js15
-rw-r--r--app/assets/javascripts/create_cluster/eks_cluster/store/state.js7
-rw-r--r--app/assets/javascripts/jobs/components/log/line_number.vue2
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js1
14 files changed, 299 insertions, 97 deletions
diff --git a/app/assets/javascripts/boards/components/boards_selector.vue b/app/assets/javascripts/boards/components/boards_selector.vue
index 0484c88c587..334c162954e 100644
--- a/app/assets/javascripts/boards/components/boards_selector.vue
+++ b/app/assets/javascripts/boards/components/boards_selector.vue
@@ -316,6 +316,7 @@ export default {
<gl-dropdown-item
v-if="showDelete"
class="text-danger"
+ data-qa-selector="delete_board_button"
@click.prevent="showPage('delete')"
>
{{ s__('IssueBoards|Delete board') }}
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue
index ce2e4b883e4..b865c9deb72 100644
--- a/app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue
+++ b/app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue
@@ -7,8 +7,16 @@ export default {
ServiceCredentialsForm,
EksClusterConfigurationForm,
},
+ props: {
+ gitlabManagedClusterHelpPath: {
+ type: String,
+ required: true,
+ },
+ },
};
</script>
<template>
- <eks-cluster-configuration-form />
+ <eks-cluster-configuration-form
+ :gitlab-managed-cluster-help-path="gitlabManagedClusterHelpPath"
+ />
</template>
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue
index 94a446f1721..d451516dd35 100644
--- a/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue
+++ b/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue
@@ -1,9 +1,11 @@
<script>
import { createNamespacedHelpers, mapState, mapActions } from 'vuex';
import { sprintf, s__ } from '~/locale';
+import _ from 'underscore';
+import { GlFormInput, GlFormCheckbox } from '@gitlab/ui';
import ClusterFormDropdown from './cluster_form_dropdown.vue';
import RegionDropdown from './region_dropdown.vue';
-import SecurityGroupDropdown from './security_group_dropdown.vue';
+import { KUBERNETES_VERSIONS } from '../constants';
const { mapState: mapRolesState, mapActions: mapRolesActions } = createNamespacedHelpers('roles');
const { mapState: mapRegionsState, mapActions: mapRegionsActions } = createNamespacedHelpers(
@@ -16,20 +18,36 @@ const { mapState: mapVpcsState, mapActions: mapVpcActions } = createNamespacedHe
const { mapState: mapSubnetsState, mapActions: mapSubnetActions } = createNamespacedHelpers(
'subnets',
);
+const {
+ mapState: mapSecurityGroupsState,
+ mapActions: mapSecurityGroupsActions,
+} = createNamespacedHelpers('securityGroups');
export default {
components: {
ClusterFormDropdown,
RegionDropdown,
- SecurityGroupDropdown,
+ GlFormInput,
+ GlFormCheckbox,
+ },
+ props: {
+ gitlabManagedClusterHelpPath: {
+ type: String,
+ required: true,
+ },
},
computed: {
...mapState([
+ 'clusterName',
+ 'environmentScope',
+ 'kubernetesVersion',
'selectedRegion',
'selectedKeyPair',
'selectedVpc',
'selectedSubnet',
'selectedRole',
+ 'selectedSecurityGroup',
+ 'gitlabManagedCluster',
]),
...mapRolesState({
roles: 'items',
@@ -56,6 +74,14 @@ export default {
isLoadingSubnets: 'isLoadingItems',
loadingSubnetsError: 'loadingItemsError',
}),
+ ...mapSecurityGroupsState({
+ securityGroups: 'items',
+ isLoadingSecurityGroups: 'isLoadingItems',
+ loadingSecurityGroupsError: 'loadingItemsError',
+ }),
+ kubernetesVersions() {
+ return KUBERNETES_VERSIONS;
+ },
vpcDropdownDisabled() {
return !this.selectedRegion;
},
@@ -65,6 +91,9 @@ export default {
subnetDropdownDisabled() {
return !this.selectedVpc;
},
+ securityGroupDropdownDisabled() {
+ return !this.selectedVpc;
+ },
roleDropdownHelpText() {
return sprintf(
s__(
@@ -117,18 +146,57 @@ export default {
false,
);
},
+ securityGroupDropdownHelpText() {
+ return sprintf(
+ s__(
+ 'ClusterIntegration|Choose the %{startLink}security groups%{endLink} to apply to the EKS-managed Elastic Network Interfaces that are created in your worker node subnets.',
+ ),
+ {
+ startLink:
+ '<a href="https://console.aws.amazon.com/vpc/home?#securityGroups" target="_blank" rel="noopener noreferrer">',
+ endLink: '</a>',
+ },
+ false,
+ );
+ },
+ gitlabManagedHelpText() {
+ const escapedUrl = _.escape(this.gitlabManagedClusterHelpPath);
+
+ return sprintf(
+ s__(
+ 'ClusterIntegration|Allow GitLab to manage namespace and service accounts for this cluster. %{startLink}More information%{endLink}',
+ ),
+ {
+ startLink: `<a href="${escapedUrl}" target="_blank" rel="noopener noreferrer">`,
+ endLink: '</a>',
+ },
+ false,
+ );
+ },
},
mounted() {
this.fetchRegions();
this.fetchRoles();
},
methods: {
- ...mapActions(['setRegion', 'setVpc', 'setSubnet', 'setRole', 'setKeyPair']),
+ ...mapActions([
+ 'setClusterName',
+ 'setEnvironmentScope',
+ 'setKubernetesVersion',
+ 'setRegion',
+ 'setVpc',
+ 'setSubnet',
+ 'setRole',
+ 'setKeyPair',
+ 'setSecurityGroup',
+ 'setGitlabManagedCluster',
+ ]),
...mapRegionsActions({ fetchRegions: 'fetchItems' }),
...mapVpcActions({ fetchVpcs: 'fetchItems' }),
...mapSubnetActions({ fetchSubnets: 'fetchItems' }),
...mapRolesActions({ fetchRoles: 'fetchItems' }),
...mapKeyPairsActions({ fetchKeyPairs: 'fetchItems' }),
+ ...mapSecurityGroupsActions({ fetchSecurityGroups: 'fetchItems' }),
setRegionAndFetchVpcsAndKeyPairs(region) {
this.setRegion({ region });
this.fetchVpcs({ region });
@@ -137,6 +205,7 @@ export default {
setVpcAndFetchSubnets(vpc) {
this.setVpc({ vpc });
this.fetchSubnets({ vpc });
+ this.fetchSecurityGroups({ vpc });
},
},
};
@@ -144,6 +213,40 @@ export default {
<template>
<form name="eks-cluster-configuration-form">
<div class="form-group">
+ <label class="label-bold" for="eks-cluster-name">{{
+ s__('ClusterIntegration|Kubernetes cluster name')
+ }}</label>
+ <gl-form-input
+ id="eks-cluster-name"
+ :value="clusterName"
+ @input="setClusterName({ clusterName: $event })"
+ />
+ </div>
+ <div class="form-group">
+ <label class="label-bold" for="eks-environment-scope">{{
+ s__('ClusterIntegration|Environment scope')
+ }}</label>
+ <gl-form-input
+ id="eks-environment-scope"
+ :value="environmentScope"
+ @input="setEnvironmentScope({ environmentScope: $event })"
+ />
+ </div>
+ <div class="form-group">
+ <label class="label-bold" for="eks-kubernetes-version">{{
+ s__('ClusterIntegration|Kubernetes version')
+ }}</label>
+ <cluster-form-dropdown
+ field-id="eks-kubernetes-version"
+ field-name="eks-kubernetes-version"
+ :value="kubernetesVersion"
+ :items="kubernetesVersions"
+ :empty-text="s__('ClusterIntegration|Kubernetes version not found')"
+ @input="setKubernetesVersion({ kubernetesVersion: $event })"
+ />
+ <p class="form-text text-muted" v-html="roleDropdownHelpText"></p>
+ </div>
+ <div class="form-group">
<label class="label-bold" for="eks-role">{{ s__('ClusterIntegration|Role name') }}</label>
<cluster-form-dropdown
field-id="eks-role"
@@ -233,5 +336,37 @@ export default {
/>
<p class="form-text text-muted" v-html="subnetDropdownHelpText"></p>
</div>
+ <div class="form-group">
+ <label class="label-bold" for="eks-security-group">{{
+ s__('ClusterIntegration|Security groups')
+ }}</label>
+ <cluster-form-dropdown
+ field-id="eks-security-group"
+ field-name="eks-security-group"
+ :input="selectedSecurityGroup"
+ :items="securityGroups"
+ :loading="isLoadingSecurityGroups"
+ :disabled="securityGroupDropdownDisabled"
+ :disabled-text="s__('ClusterIntegration|Select a VPC to choose a security group')"
+ :loading-text="s__('ClusterIntegration|Loading security groups')"
+ :placeholder="s__('ClusterIntergation|Select a security group')"
+ :search-field-placeholder="s__('ClusterIntegration|Search security groups')"
+ :empty-text="s__('ClusterIntegration|No security group found')"
+ :has-errors="Boolean(loadingSecurityGroupsError)"
+ :error-message="
+ s__('ClusterIntegration|Could not load security groups for the selected VPC')
+ "
+ @input="setSecurityGroup({ securityGroup: $event })"
+ />
+ <p class="form-text text-muted" v-html="securityGroupDropdownHelpText"></p>
+ </div>
+ <div class="form-group">
+ <gl-form-checkbox
+ :checked="gitlabManagedCluster"
+ @input="setGitlabManagedCluster({ gitlabManagedCluster: $event })"
+ >{{ s__('ClusterIntegration|GitLab-managed cluster') }}</gl-form-checkbox
+ >
+ <p class="form-text text-muted" v-html="gitlabManagedHelpText"></p>
+ </div>
</form>
</template>
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/security_group_dropdown.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/security_group_dropdown.vue
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/app/assets/javascripts/create_cluster/eks_cluster/components/security_group_dropdown.vue
+++ /dev/null
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/constants.js b/app/assets/javascripts/create_cluster/eks_cluster/constants.js
new file mode 100644
index 00000000000..339642f991e
--- /dev/null
+++ b/app/assets/javascripts/create_cluster/eks_cluster/constants.js
@@ -0,0 +1,7 @@
+// eslint-disable-next-line import/prefer-default-export
+export const KUBERNETES_VERSIONS = [
+ { name: '1.14', value: '1.14' },
+ { name: '1.13', value: '1.13' },
+ { name: '1.12', value: '1.12' },
+ { name: '1.11', value: '1.11' },
+];
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/index.js b/app/assets/javascripts/create_cluster/eks_cluster/index.js
index 9365fc41f4c..77454a2bc00 100644
--- a/app/assets/javascripts/create_cluster/eks_cluster/index.js
+++ b/app/assets/javascripts/create_cluster/eks_cluster/index.js
@@ -12,7 +12,18 @@ export default () =>
components: {
CreateEksCluster,
},
+ data() {
+ const { gitlabManagedClusterHelpPath } = document.querySelector(this.$options.el).dataset;
+
+ return {
+ gitlabManagedClusterHelpPath,
+ };
+ },
render(createElement) {
- return createElement('create-eks-cluster');
+ return createElement('create-eks-cluster', {
+ props: {
+ gitlabManagedClusterHelpPath: this.gitlabManagedClusterHelpPath,
+ },
+ });
},
});
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js b/app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js
index 98ad33d6651..d982e4db4c1 100644
--- a/app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js
+++ b/app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js
@@ -1,96 +1,84 @@
import EC2 from 'aws-sdk/clients/ec2';
import IAM from 'aws-sdk/clients/iam';
-export const fetchRoles = () =>
- new Promise((resolve, reject) => {
- const iam = new IAM();
-
- iam
- .listRoles()
- .on('success', ({ data: { Roles: roles } }) => {
- const transformedRoles = roles.map(({ RoleName: name }) => ({ name }));
-
- resolve(transformedRoles);
- })
- .on('error', error => {
- reject(error);
- })
- .send();
- });
-
-export const fetchKeyPairs = () =>
- new Promise((resolve, reject) => {
- const ec2 = new EC2();
-
- ec2
- .describeKeyPairs()
- .on('success', ({ data: { KeyPairs: keyPairs } }) => {
- const transformedKeyPairs = keyPairs.map(({ RegionName: name }) => ({ name }));
-
- resolve(transformedKeyPairs);
- })
- .on('error', error => {
- reject(error);
- })
- .send();
- });
-
-export const fetchRegions = () =>
- new Promise((resolve, reject) => {
- const ec2 = new EC2();
-
- ec2
- .describeRegions()
- .on('success', ({ data: { Regions: regions } }) => {
- const transformedRegions = regions.map(({ RegionName: name }) => ({ name }));
-
- resolve(transformedRegions);
- })
- .on('error', error => {
- reject(error);
- })
- .send();
- });
-
-export const fetchVpcs = () =>
- new Promise((resolve, reject) => {
- const ec2 = new EC2();
-
- ec2
- .describeVpcs()
- .on('success', ({ data: { Vpcs: vpcs } }) => {
- const transformedVpcs = vpcs.map(({ VpcId: id }) => ({ id, name: id }));
-
- resolve(transformedVpcs);
- })
- .on('error', error => {
- reject(error);
- })
- .send();
- });
-
-export const fetchSubnets = ({ vpc }) =>
- new Promise((resolve, reject) => {
- const ec2 = new EC2();
-
- ec2
- .describeSubnets({
- Filters: [
- {
- Name: 'vpc-id',
- Values: [vpc.id],
- },
- ],
- })
- .on('success', ({ data: { Subnets: subnets } }) => {
- const transformedSubnets = subnets.map(({ SubnetId: id }) => ({ id, name: id }));
-
- resolve(transformedSubnets);
- })
- .on('error', error => {
- reject(error);
- })
- .send();
- });
+export const fetchRoles = () => {
+ const iam = new IAM();
+
+ return iam
+ .listRoles()
+ .promise()
+ .then(({ Roles: roles }) => roles.map(({ RoleName: name }) => ({ name })));
+};
+
+export const fetchKeyPairs = () => {
+ const ec2 = new EC2();
+
+ return ec2
+ .describeKeyPairs()
+ .promise()
+ .then(({ KeyPairs: keyPairs }) => keyPairs.map(({ RegionName: name }) => ({ name })));
+};
+
+export const fetchRegions = () => {
+ const ec2 = new EC2();
+
+ return ec2
+ .describeRegions()
+ .promise()
+ .then(({ Regions: regions }) =>
+ regions.map(({ RegionName: name }) => ({
+ name,
+ value: name,
+ })),
+ );
+};
+
+export const fetchVpcs = () => {
+ const ec2 = new EC2();
+
+ return ec2
+ .describeVpcs()
+ .promise()
+ .then(({ Vpcs: vpcs }) =>
+ vpcs.map(({ VpcId: id }) => ({
+ value: id,
+ name: id,
+ })),
+ );
+};
+
+export const fetchSubnets = ({ vpc }) => {
+ const ec2 = new EC2();
+
+ return ec2
+ .describeSubnets({
+ Filters: [
+ {
+ Name: 'vpc-id',
+ Values: [vpc],
+ },
+ ],
+ })
+ .promise()
+ .then(({ Subnets: subnets }) => subnets.map(({ SubnetId: id }) => ({ id, name: id })));
+};
+
+export const fetchSecurityGroups = ({ vpc }) => {
+ const ec2 = new EC2();
+
+ return ec2
+ .describeSecurityGroups({
+ Filters: [
+ {
+ Name: 'vpc-id',
+ Values: [vpc],
+ },
+ ],
+ })
+ .promise()
+ .then(({ SecurityGroups: securityGroups }) =>
+ securityGroups.map(({ GroupName: name, GroupId: value }) => ({ name, value })),
+ );
+};
export default () => {};
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/actions.js b/app/assets/javascripts/create_cluster/eks_cluster/store/actions.js
index f2abc121f57..917c8da6c3e 100644
--- a/app/assets/javascripts/create_cluster/eks_cluster/store/actions.js
+++ b/app/assets/javascripts/create_cluster/eks_cluster/store/actions.js
@@ -1,5 +1,17 @@
import * as types from './mutation_types';
+export const setClusterName = ({ commit }, payload) => {
+ commit(types.SET_CLUSTER_NAME, payload);
+};
+
+export const setEnvironmentScope = ({ commit }, payload) => {
+ commit(types.SET_ENVIRONMENT_SCOPE, payload);
+};
+
+export const setKubernetesVersion = ({ commit }, payload) => {
+ commit(types.SET_KUBERNETES_VERSION, payload);
+};
+
export const setRegion = ({ commit }, payload) => {
commit(types.SET_REGION, payload);
};
@@ -20,4 +32,12 @@ export const setRole = ({ commit }, payload) => {
commit(types.SET_ROLE, payload);
};
+export const setSecurityGroup = ({ commit }, payload) => {
+ commit(types.SET_SECURITY_GROUP, payload);
+};
+
+export const setGitlabManagedCluster = ({ commit }, payload) => {
+ commit(types.SET_GITLAB_MANAGED_CLUSTER, payload);
+};
+
export default () => {};
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/index.js b/app/assets/javascripts/create_cluster/eks_cluster/store/index.js
index 584cd267d8c..d575deafd19 100644
--- a/app/assets/javascripts/create_cluster/eks_cluster/store/index.js
+++ b/app/assets/javascripts/create_cluster/eks_cluster/store/index.js
@@ -35,6 +35,10 @@ const createStore = () =>
namespaced: true,
...clusterDropdownStore(awsServices.fetchSubnets),
},
+ securityGroups: {
+ namespaced: true,
+ ...clusterDropdownStore(awsServices.fetchSecurityGroups),
+ },
},
});
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js b/app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js
index b9af9c1d5a4..82eb512ac07 100644
--- a/app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js
+++ b/app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js
@@ -1,5 +1,10 @@
+export const SET_CLUSTER_NAME = 'SET_CLUSTER_NAME';
+export const SET_ENVIRONMENT_SCOPE = 'SET_ENVIRONMENT_SCOPE';
+export const SET_KUBERNETES_VERSION = 'SET_KUBERNETES_VERSION';
export const SET_REGION = 'SET_REGION';
export const SET_VPC = 'SET_VPC';
export const SET_KEY_PAIR = 'SET_KEY_PAIR';
export const SET_SUBNET = 'SET_SUBNET';
export const SET_ROLE = 'SET_ROLE';
+export const SET_SECURITY_GROUP = 'SET_SECURITY_GROUP';
+export const SET_GITLAB_MANAGED_CLUSTER = 'SET_GITLAB_MANAGED_CLUSTER';
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js b/app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js
index 748a78e0b1e..79950ac7dce 100644
--- a/app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js
+++ b/app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js
@@ -1,6 +1,15 @@
import * as types from './mutation_types';
export default {
+ [types.SET_CLUSTER_NAME](state, { clusterName }) {
+ state.clusterName = clusterName;
+ },
+ [types.SET_ENVIRONMENT_SCOPE](state, { environmentScope }) {
+ state.environmentScope = environmentScope;
+ },
+ [types.SET_KUBERNETES_VERSION](state, { kubernetesVersion }) {
+ state.kubernetesVersion = kubernetesVersion;
+ },
[types.SET_REGION](state, { region }) {
state.selectedRegion = region;
},
@@ -16,4 +25,10 @@ export default {
[types.SET_ROLE](state, { role }) {
state.selectedRole = role;
},
+ [types.SET_SECURITY_GROUP](state, { securityGroup }) {
+ state.selectedSecurityGroup = securityGroup;
+ },
+ [types.SET_GITLAB_MANAGED_CLUSTER](state, { gitlabManagedCluster }) {
+ state.gitlabManagedCluster = gitlabManagedCluster;
+ },
};
diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/state.js b/app/assets/javascripts/create_cluster/eks_cluster/store/state.js
index 6ed174d247b..bf74213bdce 100644
--- a/app/assets/javascripts/create_cluster/eks_cluster/store/state.js
+++ b/app/assets/javascripts/create_cluster/eks_cluster/store/state.js
@@ -1,11 +1,18 @@
+import { KUBERNETES_VERSIONS } from '../constants';
+
export default () => ({
isValidatingCredentials: false,
validCredentials: false,
+ clusterName: '',
+ environmentScope: '*',
+ kubernetesVersion: [KUBERNETES_VERSIONS].value,
selectedRegion: '',
selectedRole: '',
selectedKeyPair: '',
selectedVpc: '',
selectedSubnet: '',
selectedSecurityGroup: '',
+
+ gitlabManagedCluster: true,
});
diff --git a/app/assets/javascripts/jobs/components/log/line_number.vue b/app/assets/javascripts/jobs/components/log/line_number.vue
index 6c76bef13d3..08c4a7ed330 100644
--- a/app/assets/javascripts/jobs/components/log/line_number.vue
+++ b/app/assets/javascripts/jobs/components/log/line_number.vue
@@ -48,7 +48,7 @@ export default {
<template>
<gl-link
:id="lineNumberId"
- class="d-inline-block text-right position-absolute line-number"
+ class="d-inline-block text-right line-number"
:href="buildLineNumber"
>{{ parsedLineNumber }}</gl-link
>
diff --git a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
index 99d32ffe424..f51d0fa4f52 100644
--- a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
+++ b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
@@ -169,6 +169,7 @@ export default class MergeRequestStore {
this.mergeRequestPipelinesHelpPath = data.merge_request_pipelines_docs_path;
this.conflictsDocsPath = data.conflicts_docs_path;
this.ciEnvironmentsStatusPath = data.ci_environments_status_path;
+ this.securityApprovalsHelpPagePath = data.security_approvals_help_page_path;
}
get isNothingToMergeState() {