Merge "Map legacy create routes to new routes"
This commit is contained in:
@@ -70,6 +70,7 @@
|
||||
attached() {
|
||||
this._getCreateGroupCapability();
|
||||
this.fire('title-change', {title: 'Groups'});
|
||||
this._maybeOpenCreateOverlay(this.params);
|
||||
},
|
||||
|
||||
_paramsChanged(params) {
|
||||
@@ -81,6 +82,16 @@
|
||||
this._offset);
|
||||
},
|
||||
|
||||
/**
|
||||
* Opens the create overlay if the route has a hash 'create'
|
||||
* @param {!Object} params
|
||||
*/
|
||||
_maybeOpenCreateOverlay(params) {
|
||||
if (params && params.openCreateModal) {
|
||||
this.$.createOverlay.open();
|
||||
}
|
||||
},
|
||||
|
||||
_computeGroupUrl(id) {
|
||||
return this.getUrl(this._path + '/', id);
|
||||
},
|
||||
|
||||
@@ -90,6 +90,18 @@ limitations under the License.
|
||||
test('_shownGroups', () => {
|
||||
assert.equal(element._shownGroups.length, 25);
|
||||
});
|
||||
|
||||
test('_maybeOpenCreateOverlay', () => {
|
||||
const overlayOpen = sandbox.stub(element.$.createOverlay, 'open');
|
||||
element._maybeOpenCreateOverlay();
|
||||
assert.isFalse(overlayOpen.called);
|
||||
const params = {};
|
||||
element._maybeOpenCreateOverlay(params);
|
||||
assert.isFalse(overlayOpen.called);
|
||||
params.openCreateModal = true;
|
||||
element._maybeOpenCreateOverlay(params);
|
||||
assert.isTrue(overlayOpen.called);
|
||||
});
|
||||
});
|
||||
|
||||
suite('test with less then 25 groups', () => {
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
attached() {
|
||||
this._getCreateProjectCapability();
|
||||
this.fire('title-change', {title: 'Projects'});
|
||||
this._maybeOpenCreateOverlay(this.params);
|
||||
},
|
||||
|
||||
_paramsChanged(params) {
|
||||
@@ -81,6 +82,16 @@
|
||||
this._offset);
|
||||
},
|
||||
|
||||
/**
|
||||
* Opens the create overlay if the route has a hash 'create'
|
||||
* @param {!Object} params
|
||||
*/
|
||||
_maybeOpenCreateOverlay(params) {
|
||||
if (params && params.openCreateModal) {
|
||||
this.$.createOverlay.open();
|
||||
}
|
||||
},
|
||||
|
||||
_computeProjectUrl(name) {
|
||||
return this.getUrl(this._path + '/', name);
|
||||
},
|
||||
|
||||
@@ -66,13 +66,11 @@ limitations under the License.
|
||||
suite('list with projects', () => {
|
||||
setup(done => {
|
||||
projects = _.times(26, projectGenerator);
|
||||
|
||||
stub('gr-rest-api-interface', {
|
||||
getProjects(num, offset) {
|
||||
return Promise.resolve(projects);
|
||||
},
|
||||
});
|
||||
|
||||
element._paramsChanged(value).then(() => { flush(done); });
|
||||
});
|
||||
|
||||
@@ -86,6 +84,18 @@ limitations under the License.
|
||||
test('_shownProjects', () => {
|
||||
assert.equal(element._shownProjects.length, 25);
|
||||
});
|
||||
|
||||
test('_maybeOpenCreateOverlay', () => {
|
||||
const overlayOpen = sandbox.stub(element.$.createOverlay, 'open');
|
||||
element._maybeOpenCreateOverlay();
|
||||
assert.isFalse(overlayOpen.called);
|
||||
const params = {};
|
||||
element._maybeOpenCreateOverlay(params);
|
||||
assert.isFalse(overlayOpen.called);
|
||||
params.openCreateModal = true;
|
||||
element._maybeOpenCreateOverlay(params);
|
||||
assert.isTrue(overlayOpen.called);
|
||||
});
|
||||
});
|
||||
|
||||
suite('list with less then 25 projects', () => {
|
||||
|
||||
@@ -46,6 +46,12 @@
|
||||
GROUP_LIST_FILTER: '/admin/groups/q/filter::filter',
|
||||
GROUP_LIST_FILTER_OFFSET: '/admin/groups/q/filter::filter,:offset',
|
||||
|
||||
// Matches /admin/create-project
|
||||
LEGACY_CREATE_PROJECT: /^\/admin\/create-project\/?$/,
|
||||
|
||||
// Matches /admin/create-project
|
||||
LEGACY_CREATE_GROUP: /^\/admin\/create-group\/?$/,
|
||||
|
||||
// Matches /admin/projects/<project>
|
||||
PROJECT: /^\/admin\/projects\/([^,]+)$/,
|
||||
|
||||
@@ -465,6 +471,12 @@
|
||||
this._mapRoute(RoutePattern.TAG_LIST_FILTER,
|
||||
'_handleTagListFilterRoute');
|
||||
|
||||
this._mapRoute(RoutePattern.LEGACY_CREATE_GROUP,
|
||||
'_handleCreateGroupRoute', true);
|
||||
|
||||
this._mapRoute(RoutePattern.LEGACY_CREATE_PROJECT,
|
||||
'_handleCreateProjectRoute', true);
|
||||
|
||||
this._mapRoute(RoutePattern.PROJECT_LIST_OFFSET,
|
||||
'_handleProjectListOffsetRoute');
|
||||
|
||||
@@ -616,6 +628,7 @@
|
||||
adminView: 'gr-admin-group-list',
|
||||
offset: data.params[1] || 0,
|
||||
filter: null,
|
||||
openCreateModal: data.hash === 'create',
|
||||
});
|
||||
},
|
||||
|
||||
@@ -732,6 +745,7 @@
|
||||
adminView: 'gr-project-list',
|
||||
offset: data.params[1] || 0,
|
||||
filter: null,
|
||||
openCreateModal: data.hash === 'create',
|
||||
});
|
||||
},
|
||||
|
||||
@@ -752,6 +766,18 @@
|
||||
});
|
||||
},
|
||||
|
||||
_handleCreateProjectRoute(data) {
|
||||
// Redirects the legacy route to the new route, which displays the project
|
||||
// list with a hash 'create'.
|
||||
this._redirect('/admin/projects#create');
|
||||
},
|
||||
|
||||
_handleCreateGroupRoute(data) {
|
||||
// Redirects the legacy route to the new route, which displays the group
|
||||
// list with a hash 'create'.
|
||||
this._redirect('/admin/groups#create');
|
||||
},
|
||||
|
||||
_handleProjectRoute(data) {
|
||||
this._setParams({
|
||||
view: Gerrit.Nav.View.ADMIN,
|
||||
|
||||
@@ -125,6 +125,8 @@ limitations under the License.
|
||||
const shouldRequireAutoAuth = [
|
||||
'_handleAdminPlaceholderRoute',
|
||||
'_handleAgreementsRoute',
|
||||
'_handleCreateGroupRoute',
|
||||
'_handleCreateProjectRoute',
|
||||
'_handleDiffEditRoute',
|
||||
'_handleGroupAuditLogRoute',
|
||||
'_handleGroupInfoRoute',
|
||||
@@ -641,6 +643,7 @@ limitations under the License.
|
||||
adminView: 'gr-admin-group-list',
|
||||
offset: 0,
|
||||
filter: null,
|
||||
openCreateModal: false,
|
||||
});
|
||||
|
||||
data.params[1] = 42;
|
||||
@@ -649,6 +652,16 @@ limitations under the License.
|
||||
adminView: 'gr-admin-group-list',
|
||||
offset: 42,
|
||||
filter: null,
|
||||
openCreateModal: false,
|
||||
});
|
||||
|
||||
data.hash = 'create';
|
||||
assertDataToParams(data, '_handleGroupListOffsetRoute', {
|
||||
view: Gerrit.Nav.View.ADMIN,
|
||||
adminView: 'gr-admin-group-list',
|
||||
offset: 42,
|
||||
filter: null,
|
||||
openCreateModal: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -812,6 +825,7 @@ limitations under the License.
|
||||
adminView: 'gr-project-list',
|
||||
offset: 0,
|
||||
filter: null,
|
||||
openCreateModal: false,
|
||||
});
|
||||
|
||||
data.params[1] = 42;
|
||||
@@ -820,6 +834,16 @@ limitations under the License.
|
||||
adminView: 'gr-project-list',
|
||||
offset: 42,
|
||||
filter: null,
|
||||
openCreateModal: false,
|
||||
});
|
||||
|
||||
data.hash = 'create';
|
||||
assertDataToParams(data, '_handleProjectListOffsetRoute', {
|
||||
view: Gerrit.Nav.View.ADMIN,
|
||||
adminView: 'gr-project-list',
|
||||
offset: 42,
|
||||
filter: null,
|
||||
openCreateModal: true,
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user