diff --git a/awx/ui/client/src/app.js b/awx/ui/client/src/app.js
index 4bec42100b..a641d3932f 100644
--- a/awx/ui/client/src/app.js
+++ b/awx/ui/client/src/app.js
@@ -77,7 +77,7 @@ import '../lib/models';
import '../lib/services';
import '../features';
-var app = angular.module('app', [
+var awApp = angular.module('awApp', [
// how to add CommonJS / AMD third-party dependencies:
// 1. npm install --save package-name
// 2. add package name to ./grunt-tasks/webpack.vendorFiles
@@ -232,6 +232,10 @@ var app = angular.module('app', [
$rootScope.breadcrumb = {};
$rootScope.BRAND_NAME = AppStrings.get('BRAND_NAME');
+ $rootScope.tabTitle = `Ansible ${$rootScope.BRAND_NAME}`;
+ $rootScope.$watch('$state.current.ncyBreadcrumbLabel', function(title) {
+ $rootScope.tabTitle = `Ansible ${$rootScope.BRAND_NAME} ${title || ""}`;
+ });
function activateTab() {
// Make the correct tab active
@@ -281,6 +285,8 @@ var app = angular.module('app', [
$rootScope.crumbCache = [];
$rootScope.$on("$stateChangeStart", function (event, next) {
+ // let current_title = $rootScope.$state.current.ncyBreadcrumbLabel || "";
+ // $rootScope.tabTitle = `Ansible ${$rootScope.BRAND_NAME} ${current_title}`;
// Remove any lingering intervals
// except on jobResults.* states
var jobResultStates = [
@@ -460,4 +466,4 @@ var app = angular.module('app', [
}
]);
-export default app;
+export default awApp;
diff --git a/awx/ui/client/src/system-tracking/compare-facts/fact-template.js b/awx/ui/client/src/system-tracking/compare-facts/fact-template.js
index 506e893f2c..dcb666ee9a 100644
--- a/awx/ui/client/src/system-tracking/compare-facts/fact-template.js
+++ b/awx/ui/client/src/system-tracking/compare-facts/fact-template.js
@@ -13,6 +13,7 @@ function loadFactTemplate(factTemplate, fact) {
}
}
+
FactTemplate.prototype.render = function(factData) {
if (_.isUndefined(factData) || _.isEmpty(factData)) {
diff --git a/awx/ui/templates/ui/index.html b/awx/ui/templates/ui/index.html
index 7afc8043df..1dbd60d3e0 100644
--- a/awx/ui/templates/ui/index.html
+++ b/awx/ui/templates/ui/index.html
@@ -1,11 +1,11 @@
{% load i18n %}
-
+
- {% trans 'Ansible Tower' %}
+
diff --git a/awx/ui/tests/spec/inventories/insights/insights.service-test.js b/awx/ui/tests/spec/inventories/insights/insights.service-test.js
index 4a8091b6bf..93024a86b9 100644
--- a/awx/ui/tests/spec/inventories/insights/insights.service-test.js
+++ b/awx/ui/tests/spec/inventories/insights/insights.service-test.js
@@ -10,7 +10,7 @@ import low_insights_json from './data/low.insights-data.js';
describe('Service: InsightsService', () => {
let InsightsService;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(angular.mock.inject(( _InsightsService_) => {
InsightsService = _InsightsService_;
diff --git a/awx/ui/tests/spec/inventories/manage/inventory-manage.service-test.js b/awx/ui/tests/spec/inventories/manage/inventory-manage.service-test.js
index 21afbec8d2..c72e49c32e 100644
--- a/awx/ui/tests/spec/inventories/manage/inventory-manage.service-test.js
+++ b/awx/ui/tests/spec/inventories/manage/inventory-manage.service-test.js
@@ -5,7 +5,7 @@ describe('Service: InventoriesService', () => {
let Rest,
InventoriesService;
- beforeEach(angular.mock.module('Tower'), ($provide)=>{
+ beforeEach(angular.mock.module('awApp'), ($provide)=>{
$provide.value('Rest', Rest);
});
beforeEach(angular.mock.module('inventoryManage'));
diff --git a/awx/ui/tests/spec/job-results/job-results.controller-test.js b/awx/ui/tests/spec/job-results/job-results.controller-test.js
index f616d642cb..af3aeeae34 100644
--- a/awx/ui/tests/spec/job-results/job-results.controller-test.js
+++ b/awx/ui/tests/spec/job-results/job-results.controller-test.js
@@ -196,7 +196,7 @@ describe('Controller: jobResultsController', () => {
});
});
- describe('getTowerLinks()', () => {
+ describe('getLinks()', () => {
beforeEach(() => {
jobData.related = {
"created_by": "api/v2/users/12",
@@ -225,7 +225,7 @@ describe('Controller: jobResultsController', () => {
});
});
- describe('getTowerLabels()', () => {
+ describe('getLabels()', () => {
beforeEach(() => {
jobDataOptions.actions.GET = {
status: {
diff --git a/awx/ui/tests/spec/job-results/job-results.service-test.js b/awx/ui/tests/spec/job-results/job-results.service-test.js
index 85cc0e526f..1219f2e450 100644
--- a/awx/ui/tests/spec/job-results/job-results.service-test.js
+++ b/awx/ui/tests/spec/job-results/job-results.service-test.js
@@ -3,7 +3,7 @@
describe('jobResultsService', () => {
let jobResultsService;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(angular.mock.inject(( _jobResultsService_) => {
jobResultsService = _jobResultsService_;
diff --git a/awx/ui/tests/spec/job-results/parse-stdout.service-test.js b/awx/ui/tests/spec/job-results/parse-stdout.service-test.js
index ab2249c101..80268a16d9 100644
--- a/awx/ui/tests/spec/job-results/parse-stdout.service-test.js
+++ b/awx/ui/tests/spec/job-results/parse-stdout.service-test.js
@@ -4,7 +4,7 @@ describe('parseStdoutService', () => {
let parseStdoutService,
log;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(angular.mock.module('jobResults',($provide) => {
log = jasmine.createSpyObj('$log', [
diff --git a/awx/ui/tests/spec/license/license.controller-test.js b/awx/ui/tests/spec/license/license.controller-test.js
index d2bde80536..eb013776b4 100644
--- a/awx/ui/tests/spec/license/license.controller-test.js
+++ b/awx/ui/tests/spec/license/license.controller-test.js
@@ -8,7 +8,7 @@ describe('Controller: LicenseController', () => {
ProcessErrors,
config;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(angular.mock.module('license', ($provide) => {
ConfigService = jasmine.createSpyObj('ConfigService', [
'getConfig',
diff --git a/awx/ui/tests/spec/shared/filters/append.filter-test.js b/awx/ui/tests/spec/shared/filters/append.filter-test.js
index f8a1ddcd47..b687797aef 100644
--- a/awx/ui/tests/spec/shared/filters/append.filter-test.js
+++ b/awx/ui/tests/spec/shared/filters/append.filter-test.js
@@ -3,7 +3,7 @@
describe('Filter: append', () => {
var filter;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(function(){
inject(function($injector){
diff --git a/awx/ui/tests/spec/shared/filters/capitalize.filter-test.js b/awx/ui/tests/spec/shared/filters/capitalize.filter-test.js
index d0f939c480..671385ce4a 100644
--- a/awx/ui/tests/spec/shared/filters/capitalize.filter-test.js
+++ b/awx/ui/tests/spec/shared/filters/capitalize.filter-test.js
@@ -3,7 +3,7 @@
describe('Filter: capitalize', () => {
var filter;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(function(){
inject(function($injector){
diff --git a/awx/ui/tests/spec/shared/filters/format-epoch.filter-test.js b/awx/ui/tests/spec/shared/filters/format-epoch.filter-test.js
index f3456f4b7d..5b6d54d285 100644
--- a/awx/ui/tests/spec/shared/filters/format-epoch.filter-test.js
+++ b/awx/ui/tests/spec/shared/filters/format-epoch.filter-test.js
@@ -3,7 +3,7 @@
describe('Filter: formatEpoch', () => {
var filter;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(function(){
inject(function($injector){
diff --git a/awx/ui/tests/spec/shared/filters/is-empty.filter-test.js b/awx/ui/tests/spec/shared/filters/is-empty.filter-test.js
index bbb156bf48..db6c87ea2a 100644
--- a/awx/ui/tests/spec/shared/filters/is-empty.filter-test.js
+++ b/awx/ui/tests/spec/shared/filters/is-empty.filter-test.js
@@ -3,7 +3,7 @@
describe('Filter: isEmpty', () => {
var filter;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(function(){
inject(function($injector){
diff --git a/awx/ui/tests/spec/shared/filters/long-date.filter-test.js b/awx/ui/tests/spec/shared/filters/long-date.filter-test.js
index a0e222c586..3bd3857f7a 100644
--- a/awx/ui/tests/spec/shared/filters/long-date.filter-test.js
+++ b/awx/ui/tests/spec/shared/filters/long-date.filter-test.js
@@ -3,7 +3,7 @@
describe('Filter: longDate', () => {
var filter;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(function(){
inject(function($injector){
diff --git a/awx/ui/tests/spec/shared/filters/prepend.filter-test.js b/awx/ui/tests/spec/shared/filters/prepend.filter-test.js
index f22c077ecd..424b023fe8 100644
--- a/awx/ui/tests/spec/shared/filters/prepend.filter-test.js
+++ b/awx/ui/tests/spec/shared/filters/prepend.filter-test.js
@@ -3,7 +3,7 @@
describe('Filter: prepend', () => {
var filter;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(function(){
inject(function($injector){
diff --git a/awx/ui/tests/spec/shared/filters/xss-sanitizer.filter-test.js b/awx/ui/tests/spec/shared/filters/xss-sanitizer.filter-test.js
index 88cb3458e1..2f4db9df83 100644
--- a/awx/ui/tests/spec/shared/filters/xss-sanitizer.filter-test.js
+++ b/awx/ui/tests/spec/shared/filters/xss-sanitizer.filter-test.js
@@ -3,7 +3,7 @@
describe('Filter: sanitize', () => {
var filter;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(function(){
inject(function($injector){
diff --git a/awx/ui/tests/spec/smart-search/queryset.service-test.js b/awx/ui/tests/spec/smart-search/queryset.service-test.js
index 4ac549a9f0..bd1f5ae833 100644
--- a/awx/ui/tests/spec/smart-search/queryset.service-test.js
+++ b/awx/ui/tests/spec/smart-search/queryset.service-test.js
@@ -6,7 +6,7 @@ describe('Service: QuerySet', () => {
Authorization,
SmartSearchService;
- beforeEach(angular.mock.module('Tower', ($provide) =>{
+ beforeEach(angular.mock.module('awApp', ($provide) =>{
// @todo: improve app source / write testing utilities for interim
// we don't want to be concerned with this provision in every test that involves the Rest module
Authorization = {
diff --git a/awx/ui/tests/spec/smart-search/smart-search.service-test.js b/awx/ui/tests/spec/smart-search/smart-search.service-test.js
index 0170a6d9ff..13af06e51c 100644
--- a/awx/ui/tests/spec/smart-search/smart-search.service-test.js
+++ b/awx/ui/tests/spec/smart-search/smart-search.service-test.js
@@ -3,7 +3,7 @@
describe('Service: SmartSearch', () => {
let SmartSearchService;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(angular.mock.module('SmartSearchModule'));
diff --git a/awx/ui/tests/spec/templates/templates-list.controller-test.js b/awx/ui/tests/spec/templates/templates-list.controller-test.js
index d620e39d6f..a13514b706 100644
--- a/awx/ui/tests/spec/templates/templates-list.controller-test.js
+++ b/awx/ui/tests/spec/templates/templates-list.controller-test.js
@@ -18,7 +18,7 @@ describe('Controller: TemplatesList', () => {
deleteJobTemplateDeferred,
Dataset;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(angular.mock.module('templates', ($provide) => {
state = jasmine.createSpyObj('state', [
diff --git a/awx/ui/tests/spec/workflows/workflow-add.controller-test.js b/awx/ui/tests/spec/workflows/workflow-add.controller-test.js
index 7884f4c0a7..0f7e588227 100644
--- a/awx/ui/tests/spec/workflows/workflow-add.controller-test.js
+++ b/awx/ui/tests/spec/workflows/workflow-add.controller-test.js
@@ -18,7 +18,7 @@ describe('Controller: WorkflowAdd', () => {
ToJSON,
availableLabels;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(angular.mock.module('RestServices'));
beforeEach(angular.mock.module('templates', ($provide) => {
diff --git a/awx/ui/tests/spec/workflows/workflow-maker.controller-test.js b/awx/ui/tests/spec/workflows/workflow-maker.controller-test.js
index d4062bbaba..58e5db8abf 100644
--- a/awx/ui/tests/spec/workflows/workflow-maker.controller-test.js
+++ b/awx/ui/tests/spec/workflows/workflow-maker.controller-test.js
@@ -8,7 +8,7 @@ describe('Controller: WorkflowMaker', () => {
q,
getWorkflowJobTemplateNodesDeferred;
- beforeEach(angular.mock.module('Tower'));
+ beforeEach(angular.mock.module('awApp'));
beforeEach(angular.mock.module('templates', () => {
TemplatesService = {