First iteration of Activity Stream. Added Home/Groups page. Increased icon size for icon-only buttons. Dashboard jobs widget- group and job links now work. Closed AC-621, AC-618.

This commit is contained in:
Chris Houseknecht
2013-11-08 17:58:19 +00:00
parent 2c4d583f3e
commit 5a3977495a
25 changed files with 1204 additions and 101 deletions

View File

@@ -0,0 +1,119 @@
/*********************************************
* Copyright (c) 2013 AnsibleWorks, Inc.
*
* HomeGroups.js
*
* List view object for Group data model. Used
* on the home tab.
*
*/
angular.module('HomeGroupListDefinition', [])
.value(
'HomeGroupList', {
name: 'groups',
iterator: 'group',
editTitle: 'Groups',
index: true,
hover: true,
fields: {
name: {
key: true,
label: 'Group',
ngClick: "\{\{ 'GroupsEdit(' + group.id + ')' \}\}",
columnClass: 'col-lg-3 col-md3 col-sm-2',
linkTo: "\{\{ '/#/inventories/' + group.inventory + '/groups/?name=' + group.name \}\}"
},
inventory_name: {
label: 'Inventory',
sourceModel: 'inventory',
sourceField: 'name',
columnClass: 'col-lg-3 col-md3 col-sm-2',
linkTo: "\{\{ '/#/inventories/' + group.inventory \}\}"
},
failed_hosts: {
label: 'Failed Hosts',
ngHref: "\{\{ group.failed_hosts_link \}\}",
badgeIcon: "\{\{ 'icon-failures-' + group.failed_hosts_class \}\}",
badgeNgHref: "\{\{ group.failed_hosts_link \}\}",
badgePlacement: 'left',
badgeToolTip: "\{\{ group.failed_hosts_tip \}\}",
badgeTipPlacement: 'top',
awToolTip: "\{\{ group.failed_hosts_tip \}\}",
dataPlacement: "top",
searchable: false,
excludeModal: true,
sortField: "hosts_with_active_failures"
},
status: {
label: 'Status',
ngClick: "viewUpdateStatus(\{\{ group.id \}\})",
searchType: 'select',
badgeIcon: "\{\{ 'icon-cloud-' + group.status_badge_class \}\}",
badgeToolTip: "\{\{ group.status_badge_tooltip \}\}",
awToolTip: "\{\{ group.status_badge_tooltip \}\}",
dataPlacement: 'top',
badgeTipPlacement: 'top',
badgePlacement: 'left',
searchOptions: [
{ name: "failed", value: "failed" },
{ name: "never", value: "never updated" },
{ name: "n/a", value: "none" },
{ name: "successful", value: "successful" },
{ name: "updating", value: "updating" }],
sourceModel: 'inventory_source',
sourceField: 'status'
},
last_updated: {
label: 'Last<br>Updated',
sourceModel: 'inventory_source',
sourceField: 'last_updated',
searchable: false,
nosort: false
},
source: {
label: 'Source',
searchType: 'select',
searchOptions: [
{ name: "ec2", value: "ec2" },
{ name: "none", value: "" },
{ name: "rackspace", value: "rackspace" }],
sourceModel: 'inventory_source',
sourceField: 'source',
searchOnly: true
},
has_external_source: {
label: 'Has external source?',
searchType: 'in',
searchValue: 'ec2,rackspace',
searchOnly: true,
sourceModel: 'inventory_source',
sourceField: 'source'
},
has_active_failures: {
label: 'Has failed hosts?',
searchSingleValue: true,
searchType: 'boolean',
searchValue: 'true',
searchOnly: true
},
last_update_failed: {
label: 'Update failed?',
searchType: 'select',
searchSingleValue: true,
searchValue: 'failed',
searchOnly: true,
sourceModel: 'inventory_source',
sourceField: 'status'
}
},
actions: {
},
fieldActions: {
}
});

View File

@@ -133,7 +133,8 @@ angular.module('InventorySummaryDefinition', [])
mode: 'all',
'class': 'btn-xs btn-primary',
awToolTip: "Refresh the page",
ngClick: "refresh()"
ngClick: "refresh()",
iconSize: 'large'
}
},

View File

@@ -92,7 +92,8 @@ angular.module('JobEventsListDefinition', [])
ngShow: "job_status == 'pending' || job_status == 'waiting' || job_status == 'running'",
'class': 'btn-xs btn-primary',
awToolTip: "Refresh the page",
ngClick: "refresh()"
ngClick: "refresh()",
iconSize: 'large'
}
},

View File

@@ -126,7 +126,8 @@ angular.module('JobHostDefinition', [])
ngShow: "host_id == null && (job_status == 'pending' || job_status == 'waiting' || job_status == 'running')",
'class': 'btn-xs btn-primary',
awToolTip: "Refresh the page",
ngClick: "refresh()"
ngClick: "refresh()",
iconSize: 'large'
}
},

View File

@@ -81,7 +81,8 @@ angular.module('JobsListDefinition', [])
mode: 'all',
'class': 'btn-xs btn-primary',
awToolTip: "Refresh the page",
ngClick: "refresh()"
ngClick: "refresh()",
iconSize: 'large'
}
},

View File

@@ -78,7 +78,8 @@ angular.module('ProjectsListDefinition', [])
mode: 'all',
'class': 'btn-xs btn-primary',
awToolTip: "Refresh the page",
ngClick: "refresh()"
ngClick: "refresh()",
iconSize: 'large'
}
},

View File

@@ -0,0 +1,62 @@
/*********************************************
* Copyright (c) 2013 AnsibleWorks, Inc.
*
* Streams.js
* List view object for activity stream data model.
*
*
*/
angular.module('StreamListDefinition', [])
.value(
'StreamList', {
name: 'activities',
iterator: 'activity',
editTitle: 'Activity Stream',
selectInstructions: '',
index: false,
hover: true,
"class": "table-condensed",
fields: {
event_time: {
key: true,
label: 'When'
},
user: {
label: 'Who',
sourceModel: 'user',
sourceField: 'username'
},
operation: {
label: 'Operation'
},
description: {
label: 'Description'
}
},
actions: {
refresh: {
dataPlacement: 'top',
icon: "icon-refresh",
mode: 'all',
'class': 'btn-xs btn-primary',
awToolTip: "Refresh the page",
ngClick: "refreshStream()",
iconSize: 'large'
},
close: {
dataPlacement: 'top',
icon: "icon-arrow-left",
mode: 'all',
'class': 'btn-xs btn-primary',
awToolTip: "Close Activity Stream view",
ngClick: "closeStream()",
iconSize: 'large'
}
},
fieldActions: {
}
});