mirror of
https://github.com/ansible/awx.git
synced 2026-05-20 15:27:47 -02:30
AC-977 fixed schedule links in Activity Stream.
This commit is contained in:
@@ -277,6 +277,12 @@ function HomeGroups($scope, $filter, $compile, $location, $routeParams, LogViewe
|
|||||||
scope[list.iterator + 'SearchFieldLabel'] = list.fields.has_external_source.label;
|
scope[list.iterator + 'SearchFieldLabel'] = list.fields.has_external_source.label;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($routeParams.inventory_source__id) {
|
||||||
|
scope[list.iterator + 'SearchField'] = 'inventory_source';
|
||||||
|
scope[list.iterator + 'SearchValue'] = $routeParams.inventory_source__id;
|
||||||
|
scope[list.iterator + 'SearchFieldLabel'] = 'Source ID';
|
||||||
|
}
|
||||||
|
|
||||||
scope.search(list.iterator);
|
scope.search(list.iterator);
|
||||||
|
|
||||||
LoadBreadCrumbs();
|
LoadBreadCrumbs();
|
||||||
|
|||||||
@@ -536,8 +536,8 @@ angular.module('SchedulesHelper', [ 'Utilities', 'RestServices', 'SchedulesHelpe
|
|||||||
* Called from a controller to setup the scope for a schedules list
|
* Called from a controller to setup the scope for a schedules list
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
.factory('LoadSchedulesScope', ['SearchInit', 'PaginateInit', 'GenerateList', 'SchedulesControllerInit', 'SchedulesListInit',
|
.factory('LoadSchedulesScope', ['$routeParams','SearchInit', 'PaginateInit', 'GenerateList', 'SchedulesControllerInit', 'SchedulesListInit',
|
||||||
function(SearchInit, PaginateInit, GenerateList, SchedulesControllerInit, SchedulesListInit) {
|
function($routeParams, SearchInit, PaginateInit, GenerateList, SchedulesControllerInit, SchedulesListInit) {
|
||||||
return function(params) {
|
return function(params) {
|
||||||
var parent_scope = params.parent_scope,
|
var parent_scope = params.parent_scope,
|
||||||
scope = params.scope,
|
scope = params.scope,
|
||||||
@@ -587,72 +587,13 @@ angular.module('SchedulesHelper', [ 'Utilities', 'RestServices', 'SchedulesHelpe
|
|||||||
});
|
});
|
||||||
parent_scope.$emit('listLoaded');
|
parent_scope.$emit('listLoaded');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if ($routeParams.id__int) {
|
||||||
|
scope[list.iterator + 'SearchField'] = 'id';
|
||||||
|
scope[list.iterator + 'SearchValue'] = $routeParams.id__int;
|
||||||
|
scope[list.iterator + 'SearchFieldLabel'] = 'ID';
|
||||||
|
}
|
||||||
|
|
||||||
scope.search(list.iterator);
|
scope.search(list.iterator);
|
||||||
};
|
};
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -100,6 +100,11 @@ angular.module('HomeGroupListDefinition', [])
|
|||||||
id: {
|
id: {
|
||||||
label: 'ID',
|
label: 'ID',
|
||||||
searchOnly: true
|
searchOnly: true
|
||||||
|
},
|
||||||
|
inventory_source: {
|
||||||
|
label: 'Source ID',
|
||||||
|
searchType: 'int',
|
||||||
|
searchOnly: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,12 @@ angular.module('SchedulesListDefinition', [])
|
|||||||
filter: "date:'MM/dd/yy HH:mm:ss'",
|
filter: "date:'MM/dd/yy HH:mm:ss'",
|
||||||
searchable: false,
|
searchable: false,
|
||||||
columnClass: "col-md-2 col-sm-3 hidden-xs"
|
columnClass: "col-md-2 col-sm-3 hidden-xs"
|
||||||
|
},
|
||||||
|
id: {
|
||||||
|
label: 'ID',
|
||||||
|
key: true,
|
||||||
|
desc: true,
|
||||||
|
searchType: 'int'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -150,18 +150,21 @@ angular.module('StreamWidget', ['RestServices', 'Utilities', 'StreamListDefiniti
|
|||||||
return function (obj) {
|
return function (obj) {
|
||||||
var url = '/#/';
|
var url = '/#/';
|
||||||
switch (obj.base) {
|
switch (obj.base) {
|
||||||
case 'group':
|
case 'group':
|
||||||
case 'host':
|
case 'host':
|
||||||
url += 'home/' + obj.base + 's/?id=' + obj.id;
|
url += 'home/' + obj.base + 's/?id=' + obj.id;
|
||||||
break;
|
break;
|
||||||
case 'job':
|
case 'job':
|
||||||
url += 'jobs/?id__int=' + obj.id;
|
url += 'jobs/?id__int=' + obj.id;
|
||||||
break;
|
break;
|
||||||
case 'inventory':
|
case 'inventory':
|
||||||
url += 'inventories/' + obj.id + '/';
|
url += 'inventories/' + obj.id + '/';
|
||||||
break;
|
break;
|
||||||
default:
|
case 'schedule':
|
||||||
url += obj.base + 's/' + obj.id + '/';
|
url = (obj.url) ? '/#' + obj.url : '';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
url += obj.base + 's/' + obj.id + '/';
|
||||||
}
|
}
|
||||||
return url;
|
return url;
|
||||||
};
|
};
|
||||||
@@ -185,7 +188,7 @@ angular.module('StreamWidget', ['RestServices', 'Utilities', 'StreamListDefiniti
|
|||||||
// labels
|
// labels
|
||||||
obj1 = activity.object1;
|
obj1 = activity.object1;
|
||||||
obj2 = activity.object2;
|
obj2 = activity.object2;
|
||||||
|
|
||||||
// objects
|
// objects
|
||||||
obj1_obj = (activity.summary_fields[obj1]) ? activity.summary_fields[obj1][0] : null;
|
obj1_obj = (activity.summary_fields[obj1]) ? activity.summary_fields[obj1][0] : null;
|
||||||
if (obj1 === obj2) {
|
if (obj1 === obj2) {
|
||||||
@@ -417,14 +420,13 @@ angular.module('StreamWidget', ['RestServices', 'Utilities', 'StreamListDefiniti
|
|||||||
scope.removeStreamPostRefresh();
|
scope.removeStreamPostRefresh();
|
||||||
}
|
}
|
||||||
scope.removeStreamPostRefresh = scope.$on('PostRefresh', function () {
|
scope.removeStreamPostRefresh = scope.$on('PostRefresh', function () {
|
||||||
var i, href, deleted, obj1, obj2;
|
var href, deleted, obj1, obj2;
|
||||||
for (i = 0; i < scope.activities.length; i++) {
|
scope.activities.forEach(function(activity, i) {
|
||||||
// Convert event_time date to local time zone
|
var row = scope.activities[i],
|
||||||
//cDate = new Date(scope.activities[i].timestamp);
|
type, url;
|
||||||
//scope.activities[i].timestamp = FormatDate(cDate);
|
|
||||||
|
|
||||||
if (scope.activities[i].summary_fields.actor) {
|
if (scope.activities[i].summary_fields.actor) {
|
||||||
scope.activities[i].user = "<a href=\"\" ng-click=\"closeStream('/#/users/" + scope.activities[i].summary_fields.actor.id + "')\">" +
|
scope.activities[i].user = "<a href=\"/#/users/" + scope.activities[i].summary_fields.actor.id + "\">" +
|
||||||
scope.activities[i].summary_fields.actor.username + "</a>";
|
scope.activities[i].summary_fields.actor.username + "</a>";
|
||||||
} else {
|
} else {
|
||||||
scope.activities[i].user = 'system';
|
scope.activities[i].user = 'system';
|
||||||
@@ -434,9 +436,37 @@ angular.module('StreamWidget', ['RestServices', 'Utilities', 'StreamListDefiniti
|
|||||||
deleted = /^\_delete/;
|
deleted = /^\_delete/;
|
||||||
obj1 = scope.activities[i].object1;
|
obj1 = scope.activities[i].object1;
|
||||||
obj2 = scope.activities[i].object2;
|
obj2 = scope.activities[i].object2;
|
||||||
|
|
||||||
|
if ((obj1 === "schedule" || obj2 === "schedule") && activity.summary_fields.schedule) {
|
||||||
|
if (activity.summary_fields.inventory_source) {
|
||||||
|
type = 'inventory_source';
|
||||||
|
url = '/home/groups/?inventory_source__id=' + row.summary_fields.inventory_source.id;
|
||||||
|
}
|
||||||
|
else if (activity.summary_fields.project) {
|
||||||
|
type = 'project';
|
||||||
|
url = '/projects/' + activity.summary_fields[type].id + '/schedules/?id__int=';
|
||||||
|
}
|
||||||
|
else if (activity.summary_fields.job_template) {
|
||||||
|
type = 'job_template';
|
||||||
|
url = '/job_templates/' + activity.summary_fields[type].id + '/schedules/?id__int=';
|
||||||
|
}
|
||||||
|
if (obj1 === 'schedule') {
|
||||||
|
row.summary_fields.schedule[0].url = url + ((type === 'inventory_source') ? '' : row.summary_fields.schedule[0].id);
|
||||||
|
row.summary_fields.schedule[0].type = type;
|
||||||
|
row.summary_fields.schedule[0].type_id = activity.summary_fields[type].id;
|
||||||
|
row.summary_fields.schedule[0].base = 'schedule';
|
||||||
|
}
|
||||||
|
if (obj2 === 'schedule') {
|
||||||
|
row.summary_fields.schedule[1].url = url + ((type === 'inventory_source') ? '' : row.summary_fields.schedule[1].id);
|
||||||
|
row.summary_fields.schedule[1].type = type;
|
||||||
|
row.summary_fields.schedule[1].type_id = activity.summary_fields[type].id;
|
||||||
|
row.summary_fields.schedule[1].base = 'schedule';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (obj1 && scope.activities[i].summary_fields[obj1] && scope.activities[i].summary_fields[obj1].name) {
|
if (obj1 && scope.activities[i].summary_fields[obj1] && scope.activities[i].summary_fields[obj1].name) {
|
||||||
if (!deleted.test(scope.activities[i].summary_fields[obj1].name)) {
|
if (!deleted.test(scope.activities[i].summary_fields[obj1].name)) {
|
||||||
href = BuildUrl(scope.activities[i].summary_fields.object1);
|
href = BuildUrl(scope.activities[i].summary_fields[obj1]);
|
||||||
scope.activities[i].objects = "<a href=\"" + href + "\">" + scope.activities[i].summary_fields[obj1].name + "</a>";
|
scope.activities[i].objects = "<a href=\"" + href + "\">" + scope.activities[i].summary_fields[obj1].name + "</a>";
|
||||||
} else {
|
} else {
|
||||||
scope.activities[i].objects = scope.activities[i].summary_fields[obj1].name;
|
scope.activities[i].objects = scope.activities[i].summary_fields[obj1].name;
|
||||||
@@ -445,8 +475,8 @@ angular.module('StreamWidget', ['RestServices', 'Utilities', 'StreamListDefiniti
|
|||||||
scope.activities[i].objects = scope.activities[i].object1;
|
scope.activities[i].objects = scope.activities[i].object1;
|
||||||
}
|
}
|
||||||
if (obj2 && scope.activities[i].summary_fields[obj2] && scope.activities[i].summary_fields[obj2].name) {
|
if (obj2 && scope.activities[i].summary_fields[obj2] && scope.activities[i].summary_fields[obj2].name) {
|
||||||
if (!deleted.test(scope.activities[i].summary_fields.object2.name)) {
|
if (!deleted.test(scope.activities[i].summary_fields[obj2].name)) {
|
||||||
href = BuildUrl(scope.activities[i].summary_fields.object2);
|
href = BuildUrl(scope.activities[i].summary_fields[obj2]);
|
||||||
scope.activities[i].objects += ", <a href=\"" + href + "\">" + scope.activities[i].summary_fields[obj2].name + "</a>";
|
scope.activities[i].objects += ", <a href=\"" + href + "\">" + scope.activities[i].summary_fields[obj2].name + "</a>";
|
||||||
} else {
|
} else {
|
||||||
scope.activities[i].objects += "," + scope.activities[i].summary_fields[obj2].name;
|
scope.activities[i].objects += "," + scope.activities[i].summary_fields[obj2].name;
|
||||||
@@ -457,7 +487,7 @@ angular.module('StreamWidget', ['RestServices', 'Utilities', 'StreamListDefiniti
|
|||||||
|
|
||||||
BuildDescription(scope.activities[i]);
|
BuildDescription(scope.activities[i]);
|
||||||
|
|
||||||
}
|
});
|
||||||
// Give ng-repeate a chance to show the data before adjusting the page size.
|
// Give ng-repeate a chance to show the data before adjusting the page size.
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
setStreamHeight();
|
setStreamHeight();
|
||||||
|
|||||||
Reference in New Issue
Block a user