summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatiana Ovchinnikova <t.v.ovtchinnikova@gmail.com>2020-11-30 14:00:49 -0600
committerTatiana Ovchinnikova <t.v.ovtchinnikova@gmail.com>2021-02-18 20:42:44 +0000
commit17d48024ecd4e923f4fb201a8c8325a16af04c80 (patch)
tree05d2228609996dafe89ad705aff7819a6fbd4d1e
parentf6ef2e4e4e4cce030e5ef2f7799bff4e968af03a (diff)
downloadhorizon-17d48024ecd4e923f4fb201a8c8325a16af04c80.tar.gz
Add WEBROOT to ngdetails navigation
Default index URL for angular details page doesn't consider WEBROOT while building navigations. That is why refreshing details page or opening it in a new tab works perfectly when WEBROOT is "/" and fails for apache deployment where WEBROOT is "/dashboard/". This patch adds WEBROOT to index URL and builds a proper navigation. Closes-Bug: #1902821 Change-Id: Id609e5499cc8f53dbae36febc945568e45d291f3 (cherry picked from commit f7442851c4b85a6a091635f0930c07dbd43cf8fb) (cherry picked from commit cd4d3aa1a6db93305d88387e1ea163947a6b62f6)
-rw-r--r--horizon/static/framework/util/navigations/navigations.service.js9
-rw-r--r--horizon/static/framework/util/navigations/navigations.service.spec.js7
-rw-r--r--horizon/static/framework/widgets/details/routed-details-view.controller.js9
3 files changed, 23 insertions, 2 deletions
diff --git a/horizon/static/framework/util/navigations/navigations.service.js b/horizon/static/framework/util/navigations/navigations.service.js
index 8da8746c0..5d7a3571f 100644
--- a/horizon/static/framework/util/navigations/navigations.service.js
+++ b/horizon/static/framework/util/navigations/navigations.service.js
@@ -25,6 +25,7 @@
collapseAllNavigation: collapseAllNavigation,
expandNavigationByUrl: expandNavigationByUrl,
setBreadcrumb: setBreadcrumb,
+ setAbsoluteURI: setAbsoluteURI,
isNavigationExists: isNavigationExists
};
@@ -107,6 +108,14 @@
});
}
+ /* set absolute uri */
+ function setAbsoluteURI(webroot, url) {
+ if (webroot.endsWith("/") && url.startsWith("/")) {
+ webroot = webroot.slice(0, -1);
+ }
+ return webroot + url;
+ }
+
/* check whether navigation exists from url */
function isNavigationExists(url) {
return angular.element("a.openstack-panel[href='" + url + "']").length ? true : false;
diff --git a/horizon/static/framework/util/navigations/navigations.service.spec.js b/horizon/static/framework/util/navigations/navigations.service.spec.js
index 44c3e3bfd..3326374af 100644
--- a/horizon/static/framework/util/navigations/navigations.service.spec.js
+++ b/horizon/static/framework/util/navigations/navigations.service.spec.js
@@ -158,6 +158,13 @@
});
});
+ describe('setAbsoluteURI', function() {
+ it('sets absolute uri', function() {
+ var url = service.setAbsoluteURI('/dashboard/', '/project/images/');
+ expect(url).toBe('/dashboard/project/images/');
+ });
+ });
+
describe('isNavigationExists', function() {
it('returns true if navigation for specified URL exists', function() {
var result = service.isNavigationExists('/project/images/');
diff --git a/horizon/static/framework/widgets/details/routed-details-view.controller.js b/horizon/static/framework/widgets/details/routed-details-view.controller.js
index 739dc5d7e..cea3e4102 100644
--- a/horizon/static/framework/widgets/details/routed-details-view.controller.js
+++ b/horizon/static/framework/widgets/details/routed-details-view.controller.js
@@ -28,7 +28,8 @@
'horizon.framework.widgets.modal-wait-spinner.service',
'$location',
'$q',
- '$routeParams'
+ '$routeParams',
+ '$window'
];
function controller(
@@ -39,7 +40,8 @@
spinnerService,
$location,
$q,
- $routeParams
+ $routeParams,
+ $window
) {
var ctrl = this;
@@ -69,6 +71,9 @@
// get defaultIndexUrl
var url = resourceType.getDefaultIndexUrl();
+ // add webroot
+ var webroot = $window.WEBROOT;
+ url = navigationsService.setAbsoluteURI(webroot, url);
// if querystring has 'nav' parameter, overwrite the url
var query = $location.search();
if (query.hasOwnProperty("nav")) {