NG details view route should not be '/project/...'
Right now the route includes the name 'project' but we may have details view for 'identity' and 'admin' too, so it should be more general. Picked just 'ngdetails' instead and moved this out as a constant. Since this constant needs to be used by the config blocks, I moved it out into its own constant module. Change-Id: I7603250dd70eb40568aa74be2ae4821ee8fcefcc Closes-Bug: #1641250
This commit is contained in:
parent
6fa0a90318
commit
c73e1c8fa8
@ -23,7 +23,8 @@
|
||||
'$q',
|
||||
'horizon.app.core.openstack-service-api.keystone',
|
||||
'horizon.app.core.openstack-service-api.policy',
|
||||
'horizon.app.core.openstack-service-api.settings'
|
||||
'horizon.app.core.openstack-service-api.settings',
|
||||
'horizon.app.core.detailRoute'
|
||||
];
|
||||
|
||||
/*
|
||||
@ -36,7 +37,7 @@
|
||||
* but do not need to be restricted to such use. Each exposed function
|
||||
* is documented below.
|
||||
*/
|
||||
function domainService($q, keystone, policy, settingsService) {
|
||||
function domainService($q, keystone, policy, settingsService, detailRoute) {
|
||||
return {
|
||||
getDetailsPath: getDetailsPath,
|
||||
getDomainPromise: getDomainPromise,
|
||||
@ -52,7 +53,7 @@
|
||||
* view.
|
||||
*/
|
||||
function getDetailsPath(item) {
|
||||
return 'project/ngdetails/OS::Keystone::Domain/' + item.id;
|
||||
return detailRoute + 'OS::Keystone::Domain/' + item.id;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -15,15 +15,16 @@
|
||||
"use strict";
|
||||
|
||||
describe('domain service', function() {
|
||||
var service, $scope;
|
||||
var service, $scope, detailRoute;
|
||||
beforeEach(module('horizon.dashboard.identity.domains'));
|
||||
beforeEach(inject(function($injector) {
|
||||
service = $injector.get('horizon.dashboard.identity.domains.service');
|
||||
detailRoute = $injector.get('horizon.app.core.detailRoute');
|
||||
}));
|
||||
|
||||
it("getDetailsPath creates urls using the item's ID", function() {
|
||||
var myItem = {id: "1234"};
|
||||
expect(service.getDetailsPath(myItem)).toBe('project/ngdetails/OS::Keystone::Domain/1234');
|
||||
expect(service.getDetailsPath(myItem)).toBe(detailRoute + 'OS::Keystone::Domain/1234');
|
||||
});
|
||||
|
||||
describe('listDomains', function() {
|
||||
|
@ -21,14 +21,15 @@
|
||||
|
||||
userService.$inject = [
|
||||
'$q',
|
||||
'horizon.app.core.openstack-service-api.keystone'
|
||||
'horizon.app.core.openstack-service-api.keystone',
|
||||
'horizon.app.core.detailRoute'
|
||||
];
|
||||
|
||||
/*
|
||||
* @ngdoc factory
|
||||
* @name horizon.dashboard.identity.users.service
|
||||
*/
|
||||
function userService($q, keystone) {
|
||||
function userService($q, keystone, detailRoute) {
|
||||
return {
|
||||
getDetailsPath: getDetailsPath,
|
||||
getUserPromise: getUserPromise,
|
||||
@ -43,7 +44,7 @@
|
||||
* Given an user object, returns the relative path to the details view.
|
||||
*/
|
||||
function getDetailsPath(item) {
|
||||
return 'project/ngdetails/OS::Keystone::User/' + item.id;
|
||||
return detailRoute + 'OS::Keystone::User/' + item.id;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -17,19 +17,20 @@
|
||||
"use strict";
|
||||
|
||||
describe('Identity user service', function() {
|
||||
var service, keystone, scope, $q;
|
||||
var service, keystone, scope, $q, detailRoute;
|
||||
|
||||
beforeEach(module('horizon.dashboard.identity.users'));
|
||||
beforeEach(inject(function($injector, _$q_) {
|
||||
service = $injector.get('horizon.dashboard.identity.users.service');
|
||||
keystone = $injector.get('horizon.app.core.openstack-service-api.keystone');
|
||||
detailRoute = $injector.get('horizon.app.core.detailRoute');
|
||||
scope = $injector.get('$rootScope').$new();
|
||||
$q = _$q_;
|
||||
}));
|
||||
|
||||
it("getDetailsPath creates proper url", function() {
|
||||
var item = {id: 614};
|
||||
expect(service.getDetailsPath(item)).toBe('project/ngdetails/OS::Keystone::User/614');
|
||||
expect(service.getDetailsPath(item)).toBe(detailRoute + 'OS::Keystone::User/614');
|
||||
});
|
||||
|
||||
describe('getUsersPromise', function() {
|
||||
|
32
openstack_dashboard/static/app/core/core-constants.module.js
Normal file
32
openstack_dashboard/static/app/core/core-constants.module.js
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* (c) Copyright 2016 IBM Corp.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @ngdoc overview
|
||||
* @name horizon.app.core.constants
|
||||
* @description
|
||||
*
|
||||
* # horizon.app.core.constants
|
||||
*
|
||||
* This module hosts constants used by configuration blocks.
|
||||
*/
|
||||
angular
|
||||
.module('horizon.app.core.constants', [])
|
||||
.constant('horizon.app.core.detailRoute', 'ngdetails/');
|
||||
|
||||
})();
|
@ -32,6 +32,7 @@
|
||||
angular
|
||||
.module('horizon.app.core', [
|
||||
'horizon.app.core.conf',
|
||||
'horizon.app.core.constants',
|
||||
'horizon.app.core.cloud-services',
|
||||
'horizon.app.core.flavors',
|
||||
'horizon.app.core.images',
|
||||
@ -47,13 +48,19 @@
|
||||
// becomes available. For now there is no volumes module.
|
||||
.constant('horizon.app.core.volumes.resourceType', VOLUME_RESOURCE_TYPE);
|
||||
|
||||
config.$inject = ['$provide', '$windowProvider', '$routeProvider'];
|
||||
config.$inject = [
|
||||
'$provide',
|
||||
'$windowProvider',
|
||||
'$routeProvider',
|
||||
'horizon.app.core.detailRoute'
|
||||
];
|
||||
|
||||
function config($provide, $windowProvider, $routeProvider) {
|
||||
function config($provide, $windowProvider, $routeProvider, detailRoute) {
|
||||
var path = $windowProvider.$get().STATIC_URL + 'app/core/';
|
||||
$provide.constant('horizon.app.core.basePath', path);
|
||||
|
||||
$routeProvider
|
||||
.when('/project/ngdetails/:type/:path*', {
|
||||
.when('/' + detailRoute + ':type/:path*', {
|
||||
templateUrl: $windowProvider.$get().STATIC_URL +
|
||||
'framework/widgets/details/routed-details-view.html'
|
||||
});
|
||||
|
@ -277,7 +277,8 @@
|
||||
config.$inject = [
|
||||
'$provide',
|
||||
'$windowProvider',
|
||||
'$routeProvider'
|
||||
'$routeProvider',
|
||||
'horizon.app.core.detailRoute'
|
||||
];
|
||||
|
||||
/**
|
||||
@ -288,7 +289,7 @@
|
||||
* @description Routes used by this module.
|
||||
* @returns {undefined} Returns nothing
|
||||
*/
|
||||
function config($provide, $windowProvider, $routeProvider) {
|
||||
function config($provide, $windowProvider, $routeProvider, detailRoute) {
|
||||
var path = $windowProvider.$get().STATIC_URL + 'app/core/images/';
|
||||
$provide.constant('horizon.app.core.images.basePath', path);
|
||||
|
||||
@ -309,7 +310,7 @@
|
||||
});
|
||||
|
||||
function goToAngularDetails(params) {
|
||||
return 'project/ngdetails/OS::Glance::Image/' + params.id;
|
||||
return detailRoute + 'OS::Glance::Image/' + params.id;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,8 @@
|
||||
'$filter',
|
||||
'horizon.app.core.openstack-service-api.glance',
|
||||
'horizon.app.core.openstack-service-api.userSession',
|
||||
'horizon.app.core.images.transitional-statuses'
|
||||
'horizon.app.core.images.transitional-statuses',
|
||||
'horizon.app.core.detailRoute'
|
||||
];
|
||||
|
||||
/*
|
||||
@ -36,7 +37,7 @@
|
||||
* but do not need to be restricted to such use. Each exposed function
|
||||
* is documented below.
|
||||
*/
|
||||
function imageService($filter, glance, userSession, transitionalStatuses) {
|
||||
function imageService($filter, glance, userSession, transitionalStatuses, detailRoute) {
|
||||
var version;
|
||||
|
||||
return {
|
||||
@ -56,7 +57,7 @@
|
||||
* view.
|
||||
*/
|
||||
function getDetailsPath(item) {
|
||||
return 'project/ngdetails/OS::Glance::Image/' + item.id;
|
||||
return detailRoute + 'OS::Glance::Image/' + item.id;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -17,15 +17,16 @@
|
||||
"use strict";
|
||||
|
||||
describe('images service', function() {
|
||||
var service;
|
||||
var service, detailRoute;
|
||||
beforeEach(module('horizon.app.core.images'));
|
||||
beforeEach(inject(function($injector) {
|
||||
service = $injector.get('horizon.app.core.images.service');
|
||||
detailRoute = $injector.get('horizon.app.core.detailRoute');
|
||||
}));
|
||||
|
||||
it("getDetailsPath creates urls using the item's ID", function() {
|
||||
var myItem = {id: "1234"};
|
||||
expect(service.getDetailsPath(myItem)).toBe('project/ngdetails/OS::Glance::Image/1234');
|
||||
expect(service.getDetailsPath(myItem)).toBe(detailRoute + 'OS::Glance::Image/1234');
|
||||
});
|
||||
|
||||
describe('imageType', function() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user