Fixed most lists so that name links can be opened in a new tab

This commit is contained in:
mabashian
2017-11-01 14:25:58 -04:00
parent 0579db1162
commit d056cb22ef
18 changed files with 118 additions and 35 deletions

View File

@@ -42,7 +42,8 @@ export default ['$compile', 'i18n', 'generateList',
name: list.fields.name, name: list.fields.name,
scm_type: list.fields.scm_type scm_type: list.fields.scm_type
}; };
list.fields.name.ngClick = 'linkoutResource("project", project)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/projects/{{project.id}}";
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10'; list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
list.fields.scm_type.columnClass = 'col-md-5 col-sm-5 hidden-xs'; list.fields.scm_type.columnClass = 'col-md-5 col-sm-5 hidden-xs';
break; break;
@@ -51,7 +52,8 @@ export default ['$compile', 'i18n', 'generateList',
name: list.fields.name, name: list.fields.name,
organization: list.fields.organization organization: list.fields.organization
}; };
list.fields.name.ngClick = 'linkoutResource("inventory", inventory)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = '{{inventory.linkToDetails}}';
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10'; list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
list.fields.organization.columnClass = 'col-md-5 col-sm-5 hidden-xs'; list.fields.organization.columnClass = 'col-md-5 col-sm-5 hidden-xs';
break; break;
@@ -62,7 +64,8 @@ export default ['$compile', 'i18n', 'generateList',
name: list.fields.name name: list.fields.name
}; };
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10'; list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
list.fields.name.ngClick = 'linkoutResource("job_template", job_template)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/templates/job_template/{{job_template.id}}";
break; break;
case 'workflow_templates': case 'workflow_templates':
list.name = 'workflow_job_templates'; list.name = 'workflow_job_templates';
@@ -71,20 +74,23 @@ export default ['$compile', 'i18n', 'generateList',
name: list.fields.name name: list.fields.name
}; };
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10'; list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
list.fields.name.ngClick = 'linkoutResource("workflow_job_template", workflow_job_template)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/templates/workflow_job_template/{{workflow_template.id}}";
break; break;
case 'credentials': case 'credentials':
list.fields = { list.fields = {
name: list.fields.name name: list.fields.name
}; };
list.fields.name.ngClick = 'linkoutResource("credential", credential)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/credentials/{{credential.id}}";
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10'; list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
break; break;
case 'organizations': case 'organizations':
list.fields = { list.fields = {
name: list.fields.name name: list.fields.name
}; };
list.fields.name.ngClick = 'linkoutResource("organization", organization)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/organizations/{{organization.id}}";
list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10'; list.fields.name.columnClass = 'col-md-5 col-sm-5 col-xs-10';
break; break;
} }
@@ -118,6 +124,24 @@ export default ['$compile', 'i18n', 'generateList',
scope[list.name] = _.values(scope.collection); scope[list.name] = _.values(scope.collection);
}); });
scope.$watch(list.name, function(){
if(scope.list.name === 'inventories') {
if (scope[list.name] !== undefined) {
scope[list.name].forEach(function(item, item_idx) {
var itm = scope[list.name][item_idx];
if(itm.kind && itm.kind === "smart") {
itm.linkToDetails = `#/inventories/smart/${itm.id}`;
}
else {
itm.linkToDetails = `#/inventories/inventory/${itm.id}`;
}
});
}
}
});
scope.removeSelection = function(resource, type){ scope.removeSelection = function(resource, type){
let multiselect_scope, deselectedIdx; let multiselect_scope, deselectedIdx;

View File

@@ -46,7 +46,8 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
name: list.fields.name, name: list.fields.name,
scm_type: list.fields.scm_type scm_type: list.fields.scm_type
}; };
list.fields.name.ngClick = 'linkoutResource("project", project)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/projects/{{project.id}}";
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11'; list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
list.fields.scm_type.columnClass = 'col-md-5 col-sm-5 hidden-xs'; list.fields.scm_type.columnClass = 'col-md-5 col-sm-5 hidden-xs';
break; break;
@@ -56,7 +57,8 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
name: list.fields.name, name: list.fields.name,
organization: list.fields.organization organization: list.fields.organization
}; };
list.fields.name.ngClick = 'linkoutResource("inventory", inventory)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = '{{inventory.linkToDetails}}';
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11'; list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
list.fields.organization.columnClass = 'col-md-5 col-sm-5 hidden-xs'; list.fields.organization.columnClass = 'col-md-5 col-sm-5 hidden-xs';
delete list.disableRow; delete list.disableRow;
@@ -69,7 +71,8 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
list.fields = { list.fields = {
name: list.fields.name name: list.fields.name
}; };
list.fields.name.ngClick = 'linkoutResource("job_template", job_template)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/templates/job_template/{{job_template.id}}";
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11'; list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
break; break;
@@ -80,7 +83,8 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
list.fields = { list.fields = {
name: list.fields.name name: list.fields.name
}; };
list.fields.name.ngClick = 'linkoutResource("workflow_job_template", workflow_template)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/templates/workflow_job_template/{{workflow_template.id}}";
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11'; list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
break; break;
case 'Users': case 'Users':
@@ -89,7 +93,8 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
first_name: list.fields.first_name, first_name: list.fields.first_name,
last_name: list.fields.last_name last_name: list.fields.last_name
}; };
list.fields.username.ngClick = 'linkoutResource("user", user)'; delete list.fields.username.ngClick;
list.fields.username.ngHref = "#/users/{{user.id}}";
list.fields.username.columnClass = 'col-md-5 col-sm-5 col-xs-11'; list.fields.username.columnClass = 'col-md-5 col-sm-5 col-xs-11';
list.fields.first_name.columnClass = 'col-md-3 col-sm-3 hidden-xs'; list.fields.first_name.columnClass = 'col-md-3 col-sm-3 hidden-xs';
list.fields.last_name.columnClass = 'col-md-3 col-sm-3 hidden-xs'; list.fields.last_name.columnClass = 'col-md-3 col-sm-3 hidden-xs';
@@ -99,7 +104,8 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
name: list.fields.name, name: list.fields.name,
organization: list.fields.organization, organization: list.fields.organization,
}; };
list.fields.name.ngClick = 'linkoutResource("team", team)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/teams/{{team.id}}";
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11'; list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
list.fields.organization.columnClass = 'col-md-5 col-sm-5 hidden-xs'; list.fields.organization.columnClass = 'col-md-5 col-sm-5 hidden-xs';
break; break;
@@ -107,14 +113,16 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
list.fields = { list.fields = {
name: list.fields.name name: list.fields.name
}; };
list.fields.name.ngClick = 'linkoutResource("organization", organization)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/organizations/{{organization.id}}";
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11'; list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
break; break;
case 'Credentials': case 'Credentials':
list.fields = { list.fields = {
name: list.fields.name name: list.fields.name
}; };
list.fields.name.ngClick = 'linkoutResource("credential", credential)'; delete list.fields.name.ngClick;
list.fields.name.ngHref = "#/credentials/{{credential.id}}";
list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11'; list.fields.name.columnClass = 'col-md-6 col-sm-6 col-xs-11';
break; break;
default: default:
@@ -173,6 +181,20 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
}); });
} }
} }
else if(scope.list.name === 'inventories') {
if (scope[list.name] !== undefined) {
scope[list.name].forEach(function(item, item_idx) {
var itm = scope[list.name][item_idx];
if(itm.kind && itm.kind === "smart") {
itm.linkToDetails = `#/inventories/smart/${itm.id}`;
}
else {
itm.linkToDetails = `#/inventories/inventory/${itm.id}`;
}
});
}
}
} }
function isSelected(item){ function isSelected(item){
@@ -184,6 +206,7 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
}); });
return item; return item;
} }
element.append(list_html); element.append(list_html);
$compile(element.contents())(scope); $compile(element.contents())(scope);

View File

@@ -64,12 +64,12 @@
</td> </td>
<td class="List-tableCell name-column InventoryManage-breakWord col-lg-6 col-md-8 col-sm-8 col-xs-7"> <td class="List-tableCell name-column InventoryManage-breakWord col-lg-6 col-md-8 col-sm-8 col-xs-7">
<div class="host-name"> <div class="host-name">
<a href="" ng-click="editHost(host.id)">{{host.name }}</a> <a ui-sref="hosts.edit({host_id:host.id})">{{host.name }}</a>
</div> </div>
</td> </td>
<td class="List-tableCell inventory_name-column col-lg-5 col-md-4 col-sm-4 hidden-xs elllipsis"> <td class="List-tableCell inventory_name-column col-lg-5 col-md-4 col-sm-4 hidden-xs elllipsis">
<div class="host-name"> <div class="host-name">
<a href="" ng-click="editInventory(host)">{{host.inventory_name }}</a> <a href="#/inventories/inventory/{{host.inventory}}">{{host.inventory_name}}</a>
</div> </div>
</td> </td>
<td class="List-actionsContainer"> <td class="List-actionsContainer">

View File

@@ -49,7 +49,7 @@ export default ['i18n', function(i18n) {
modalColumnClass: 'col-md-12', modalColumnClass: 'col-md-12',
awToolTip: "{{ inventory.description | sanitize }}", awToolTip: "{{ inventory.description | sanitize }}",
awTipPlacement: "top", awTipPlacement: "top",
ngClick: 'editInventory(inventory)' uiSref: '{{inventory.linkToDetails}}'
}, },
kind: { kind: {
label: i18n._('Type'), label: i18n._('Type'),

View File

@@ -67,6 +67,8 @@ function InventoriesList($scope,
} }
inventory.kind_label = inventory.kind === '' ? 'Inventory' : (inventory.kind === 'smart' ? i18n._('Smart Inventory'): i18n._('Inventory')); inventory.kind_label = inventory.kind === '' ? 'Inventory' : (inventory.kind === 'smart' ? i18n._('Smart Inventory'): i18n._('Inventory'));
inventory.linkToDetails = (inventory.kind && inventory.kind === 'smart') ? `inventories.editSmartInventory({smartinventory_id:${inventory.id}})` : `inventories.edit({inventory_id:${inventory.id}})`;
} }
$scope.editInventory = function (inventory) { $scope.editInventory = function (inventory) {

View File

@@ -31,12 +31,12 @@ export default ['i18n', function(i18n) {
dataTitle: "{{ completed_job.status_popover_title }}", dataTitle: "{{ completed_job.status_popover_title }}",
icon: 'icon-job-{{ completed_job.status }}', icon: 'icon-job-{{ completed_job.status }}',
iconOnly: true, iconOnly: true,
ngClick:"viewjobResults(completed_job)", uiSref: '{{completed_job.linkToDetails}}',
nosort: true nosort: true
}, },
id: { id: {
label: i18n._('ID'), label: i18n._('ID'),
ngClick:"viewjobResults(completed_job)", uiSref: '{{completed_job.linkToDetails}}',
columnClass: 'col-lg-1 col-md-1 col-sm-2 col-xs-2 List-staticColumnAdjacent', columnClass: 'col-lg-1 col-md-1 col-sm-2 col-xs-2 List-staticColumnAdjacent',
awToolTip: "{{ completed_job.status_tip }}", awToolTip: "{{ completed_job.status_tip }}",
dataPlacement: 'top' dataPlacement: 'top'
@@ -44,7 +44,7 @@ export default ['i18n', function(i18n) {
name: { name: {
label: i18n._('Name'), label: i18n._('Name'),
columnClass: 'col-lg-4 col-md-4 col-sm-4 col-xs-6', columnClass: 'col-lg-4 col-md-4 col-sm-4 col-xs-6',
ngClick: "viewjobResults(completed_job)", uiSref: '{{completed_job.linkToDetails}}',
awToolTip: "{{ completed_job.name | sanitize }}", awToolTip: "{{ completed_job.name | sanitize }}",
dataPlacement: 'top' dataPlacement: 'top'
}, },

View File

@@ -31,7 +31,7 @@
name: { name: {
label: i18n._('Groups'), label: i18n._('Groups'),
key: true, key: true,
ngClick: "goToGroupGroups(group.id)", uiSref: "inventories.edit.groups.edit({group_id:group.id})",
columnClass: 'col-lg-6 col-md-6 col-sm-6 col-xs-6', columnClass: 'col-lg-6 col-md-6 col-sm-6 col-xs-6',
class: 'InventoryManage-breakWord', class: 'InventoryManage-breakWord',
} }

View File

@@ -31,7 +31,7 @@
name: { name: {
label: i18n._('Groups'), label: i18n._('Groups'),
key: true, key: true,
ngClick: "goToGroupGroups(nested_group.id)", uiSref: "inventories.edit.groups.edit.nested_groups({group_id:nested_group.id)}",
columnClass: 'col-lg-6 col-md-6 col-sm-6 col-xs-6', columnClass: 'col-lg-6 col-md-6 col-sm-6 col-xs-6',
class: 'InventoryManage-breakWord', class: 'InventoryManage-breakWord',
} }

View File

@@ -55,7 +55,7 @@ export default ['i18n', function(i18n) {
name: { name: {
key: true, key: true,
label: i18n._('Hosts'), label: i18n._('Hosts'),
ngClick: "editHost(nested_host.id)", uiSref: "inventories.edit.hosts.edit({host_id: nested_host.id})",
ngClass: "{ 'host-disabled-label': !nested_host.enabled }", ngClass: "{ 'host-disabled-label': !nested_host.enabled }",
columnClass: 'col-lg-6 col-md-8 col-sm-8 col-xs-7', columnClass: 'col-lg-6 col-md-8 col-sm-8 col-xs-7',
dataHostId: "{{ nested_host.id }}", dataHostId: "{{ nested_host.id }}",

View File

@@ -54,7 +54,7 @@ export default ['i18n', function(i18n) {
name: { name: {
key: true, key: true,
label: i18n._('Hosts'), label: i18n._('Hosts'),
ngClick: "editHost(host)", uiSref: ".edit({inventory_id: host.inventory_id,host_id: host.id})",
ngClass: "{ 'host-disabled-label': !host.enabled }", ngClass: "{ 'host-disabled-label': !host.enabled }",
columnClass: 'col-lg-6 col-md-8 col-sm-8 col-xs-7', columnClass: 'col-lg-6 col-md-8 col-sm-8 col-xs-7',
dataHostId: "{{ host.id }}", dataHostId: "{{ host.id }}",

View File

@@ -33,7 +33,7 @@
name: { name: {
label: i18n._('Sources'), label: i18n._('Sources'),
key: true, key: true,
ngClick: "editSource(inventory_source.id)", uiSref: "inventories.edit.inventory_sources.edit({inventory_source_id:inventory_source.id})",
columnClass: 'col-lg-4 col-md-4 col-sm-4 col-xs-4', columnClass: 'col-lg-4 col-md-4 col-sm-4 col-xs-4',
class: 'InventoryManage-breakWord', class: 'InventoryManage-breakWord',
}, },

View File

@@ -28,12 +28,11 @@ export default ['i18n', function(i18n) {
dataTitle: "{{ job.status_popover_title }}", dataTitle: "{{ job.status_popover_title }}",
icon: 'icon-job-{{ job.status }}', icon: 'icon-job-{{ job.status }}',
iconOnly: true, iconOnly: true,
ngClick:"viewjobResults(job)", uiSref: '{{job.linkToDetails}}',
nosort: true nosort: true
}, },
id: { id: {
label: 'ID', label: 'ID',
ngClick:"viewjobResults(job)",
columnClass: 'col-lg-1 col-md-1 col-sm-2 col-xs-2 List-staticColumnAdjacent', columnClass: 'col-lg-1 col-md-1 col-sm-2 col-xs-2 List-staticColumnAdjacent',
awToolTip: "{{ job.status_tip }}", awToolTip: "{{ job.status_tip }}",
dataPlacement: 'top', dataPlacement: 'top',
@@ -42,7 +41,7 @@ export default ['i18n', function(i18n) {
name: { name: {
label: i18n._('Name'), label: i18n._('Name'),
columnClass: 'col-lg-2 col-md-3 col-sm-4 col-xs-6', columnClass: 'col-lg-2 col-md-3 col-sm-4 col-xs-6',
ngClick: "viewjobResults(job)", uiSref: '{{job.linkToDetails}}',
badgePlacement: 'right', badgePlacement: 'right',
badgeCustom: true, badgeCustom: true,
badgeIcon: `<a href="{{ job.workflow_result_link }}" badgeIcon: `<a href="{{ job.workflow_result_link }}"

View File

@@ -48,6 +48,27 @@
$scope[list.name].forEach(function(item, item_idx) { $scope[list.name].forEach(function(item, item_idx) {
var itm = $scope[list.name][item_idx]; var itm = $scope[list.name][item_idx];
switch (item.type) {
case 'job':
item.linkToDetails = `jobResult({id: ${item.id}})`;
break;
case 'ad_hoc_command':
item.linkToDetails = `adHocJobStdout({id: ${item.id}})`;
break;
case 'system_job':
item.linkToDetails = `managementJobStdout({id: ${item.id}})`;
break;
case 'project_update':
item.linkToDetails = `scmUpdateStdout({id: ${item.id}})`;
break;
case 'inventory_update':
item.linkToDetails = `inventorySyncStdout({id: ${item.id}})`;
break;
case 'workflow_job':
item.linkToDetails = `workflowResults({id: ${item.id}})`;
break;
}
if(item.summary_fields && item.summary_fields.source_workflow_job && if(item.summary_fields && item.summary_fields.source_workflow_job &&
item.summary_fields.source_workflow_job.id){ item.summary_fields.source_workflow_job.id){
item.workflow_result_link = `/#/workflows/${item.summary_fields.source_workflow_job.id}`; item.workflow_result_link = `/#/workflows/${item.summary_fields.source_workflow_job.id}`;

View File

@@ -52,10 +52,11 @@
ng-repeat="card in orgCards track by card.id"> ng-repeat="card in orgCards track by card.id">
<div class="OrgCards-header"> <div class="OrgCards-header">
<h3 class="OrgCards-label" <h3 class="OrgCards-label"
ng-click="editOrganization(card.id)"
aw-tool-tip="{{ (card.description || '') | sanitize }}" aw-tool-tip="{{ (card.description || '') | sanitize }}"
aw-tip-placement="top"> aw-tip-placement="top">
{{ card.name }} <a ui-sref="organizations.edit({organization_id:card.id})">
{{ card.name }}
</a>
</h3> </h3>
<div class="OrgCards-actionItems"> <div class="OrgCards-actionItems">
<button class="OrgCards-actionItem <button class="OrgCards-actionItem

View File

@@ -75,6 +75,18 @@ export default [
} }
buildTooltips(itm); buildTooltips(itm);
if (!$state.is('jobs.schedules')){
if($state.current.name.endsWith('.add')) {
itm.linkToDetails = `^.edit({schedule_id:schedule.id})`;
}
else if($state.current.name.endsWith('.edit')) {
itm.linkToDetails = `.({schedule_id:schedule.id})`;
}
else {
itm.linkToDetails = `.edit({schedule_id:schedule.id})`;
}
}
}); });
} }

View File

@@ -31,7 +31,8 @@ export default ['i18n', function(i18n) {
name: { name: {
key: true, key: true,
label: i18n._('Name'), label: i18n._('Name'),
ngClick: "editSchedule(schedule)", uiSref: "{{schedule.linkToDetails}}",
// ngClick: "editSchedule(schedule)",
columnClass: "col-md-3 col-sm-3 col-xs-6" columnClass: "col-md-3 col-sm-3 col-xs-6"
}, },
dtstart: { dtstart: {

View File

@@ -598,7 +598,7 @@ angular.module('GeneratorHelpers', [systemStatus.name])
} }
// Start the Link // Start the Link
if ((field.key || field.link || field.linkTo || field.ngClick || field.ngHref || field.awToolTip || field.awPopOver) && if ((field.key || field.link || field.linkTo || field.ngClick || field.ngHref || field.uiSref || field.awToolTip || field.awPopOver) &&
options.mode !== 'lookup' && options.mode !== 'select' && !field.noLink && !field.ngBindHtml) { options.mode !== 'lookup' && options.mode !== 'select' && !field.noLink && !field.ngBindHtml) {
if(field.noLink === true){ if(field.noLink === true){
// provide an override here in case we want key=true for sorting purposes but don't want links -- see: portal mode, // provide an override here in case we want key=true for sorting purposes but don't want links -- see: portal mode,

View File

@@ -32,12 +32,12 @@ export default ['i18n', function(i18n) {
dataTitle: "{{ completed_job.status_popover_title }}", dataTitle: "{{ completed_job.status_popover_title }}",
icon: 'icon-job-{{ completed_job.status }}', icon: 'icon-job-{{ completed_job.status }}',
iconOnly: true, iconOnly: true,
ngClick:"viewjobResults(completed_job)", uiSref: '{{completed_job.linkToDetails}}',
nosort: true nosort: true
}, },
id: { id: {
label: 'ID', label: 'ID',
ngClick:"viewjobResults(completed_job)", uiSref: '{{completed_job.linkToDetails}}',
columnClass: 'col-lg-1 col-md-1 col-sm-2 col-xs-2 List-staticColumnAdjacent', columnClass: 'col-lg-1 col-md-1 col-sm-2 col-xs-2 List-staticColumnAdjacent',
awToolTip: "{{ completed_job.status_tip }}", awToolTip: "{{ completed_job.status_tip }}",
dataPlacement: 'top' dataPlacement: 'top'
@@ -45,7 +45,7 @@ export default ['i18n', function(i18n) {
name: { name: {
label: i18n._('Name'), label: i18n._('Name'),
columnClass: 'col-lg-4 col-md-4 col-sm-4 col-xs-6', columnClass: 'col-lg-4 col-md-4 col-sm-4 col-xs-6',
ngClick: "viewjobResults(completed_job)", uiSref: '{{completed_job.linkToDetails}}',
awToolTip: "{{ completed_job.name | sanitize }}", awToolTip: "{{ completed_job.name | sanitize }}",
dataPlacement: 'top' dataPlacement: 'top'
}, },