Commit ee7069e5 authored by Filipa Lacerda's avatar Filipa Lacerda

Merge branch 'ce-to-ee-2018-07-20' into 'master'

CE upstream - 2018-07-20 09:21 UTC

See merge request gitlab-org/gitlab-ee!6604
parents 48d70a72 7afdcc7f
import Vue from 'vue'; import Vue from 'vue';
import VueRouter from 'vue-router'; import VueRouter from 'vue-router';
import { join as joinPath } from 'path';
import flash from '~/flash'; import flash from '~/flash';
import store from './stores'; import store from './stores';
import { activityBarViews } from './constants'; import { activityBarViews } from './constants';
...@@ -37,17 +38,29 @@ const router = new VueRouter({ ...@@ -37,17 +38,29 @@ const router = new VueRouter({
base: `${gon.relative_url_root}/-/ide/`, base: `${gon.relative_url_root}/-/ide/`,
routes: [ routes: [
{ {
path: '/project/:namespace/:project+', path: '/project/:namespace+/:project',
component: EmptyRouterComponent, component: EmptyRouterComponent,
children: [ children: [
{ {
path: ':targetmode(edit|tree|blob)/*', path: ':targetmode(edit|tree|blob)/:branchid+/-/*',
component: EmptyRouterComponent, component: EmptyRouterComponent,
}, },
{
path: ':targetmode(edit|tree|blob)/:branchid+/',
redirect: to => joinPath(to.path, '/-/'),
},
{
path: ':targetmode(edit|tree|blob)',
redirect: to => joinPath(to.path, '/master/-/'),
},
{ {
path: 'merge_requests/:mrid', path: 'merge_requests/:mrid',
component: EmptyRouterComponent, component: EmptyRouterComponent,
}, },
{
path: '',
redirect: to => joinPath(to.path, '/edit/master/-/'),
},
], ],
}, },
], ],
...@@ -63,11 +76,10 @@ router.beforeEach((to, from, next) => { ...@@ -63,11 +76,10 @@ router.beforeEach((to, from, next) => {
.then(() => { .then(() => {
const fullProjectId = `${to.params.namespace}/${to.params.project}`; const fullProjectId = `${to.params.namespace}/${to.params.project}`;
const baseSplit = (to.params[0] && to.params[0].split('/-/')) || ['']; const branchId = to.params.branchid;
const branchId = baseSplit[0].slice(-1) === '/' ? baseSplit[0].slice(0, -1) : baseSplit[0];
if (branchId) { if (branchId) {
const basePath = baseSplit.length > 1 ? baseSplit[1] : ''; const basePath = to.params[0] || '';
store.dispatch('setCurrentBranchId', branchId); store.dispatch('setCurrentBranchId', branchId);
......
...@@ -822,7 +822,7 @@ header.header-content .dropdown-menu.frequent-items-dropdown-menu { ...@@ -822,7 +822,7 @@ header.header-content .dropdown-menu.frequent-items-dropdown-menu {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
width: 500px; width: 500px;
height: 334px; height: 354px;
.frequent-items-dropdown-sidebar, .frequent-items-dropdown-sidebar,
.frequent-items-dropdown-content { .frequent-items-dropdown-content {
...@@ -868,6 +868,7 @@ header.header-content .dropdown-menu.frequent-items-dropdown-menu { ...@@ -868,6 +868,7 @@ header.header-content .dropdown-menu.frequent-items-dropdown-menu {
} }
.frequent-items-list-container { .frequent-items-list-container {
height: 304px;
padding: 8px 0; padding: 8px 0;
overflow-y: auto; overflow-y: auto;
...@@ -897,10 +898,6 @@ header.header-content .dropdown-menu.frequent-items-dropdown-menu { ...@@ -897,10 +898,6 @@ header.header-content .dropdown-menu.frequent-items-dropdown-menu {
margin-top: 8px; margin-top: 8px;
} }
.frequent-items-search-container {
height: 284px;
}
@include media-breakpoint-down(xs) { @include media-breakpoint-down(xs) {
.frequent-items-list-container { .frequent-items-list-container {
width: auto; width: auto;
......
---
title: Fix Web IDE crashing on directories named 'blob'
merge_request: 20712
author:
type: fixed
---
title: Don't overflow project/group dropdown results
merge_request: 20704
author: gfyoung
type: fixed
import router from '~/ide/ide_router';
import store from '~/ide/stores';
describe('IDE router', () => {
const PROJECT_NAMESPACE = 'my-group/sub-group';
const PROJECT_NAME = 'my-project';
afterEach(() => {
router.push('/');
});
afterAll(() => {
// VueRouter leaves this window.history at the "base" url. We need to clean this up.
window.history.replaceState({}, '', '/');
});
[
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/tree/master/-/src/blob/`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/tree/master/-/src/blob`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/tree/blob/-/src/blob`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/tree/master/-/src/tree/`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/tree/weird:branch/name-123/-/src/tree/`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/blob/master/-/src/blob`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/blob/master/-/src/edit`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/blob/master/-/src/merge_requests/2`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/blob/blob/-/src/blob`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/edit/blob/-/src/blob`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/merge_requests/2`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/tree/blob`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}/edit`,
`/project/${PROJECT_NAMESPACE}/${PROJECT_NAME}`,
].forEach(route => {
it(`finds project path when route is "${route}"`, () => {
spyOn(store, 'dispatch').and.returnValue(new Promise(() => {}));
router.push(route);
expect(store.dispatch).toHaveBeenCalledWith('getProjectData', {
namespace: PROJECT_NAMESPACE,
projectId: PROJECT_NAME,
});
});
});
});
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