/*********************************************
* Copyright (c) 2014 AnsibleWorks, Inc.
*
* JobStatus.js
*
* Dashboard widget showing object counts and license availability.
*
*/
'use strict';
angular.module('JobStatusWidget', ['RestServices', 'Utilities'])
.factory('JobStatus', ['$rootScope', '$compile', 'Rest', 'GetBasePath', 'ProcessErrors', 'Wait',
function ($rootScope, $compile) {
return function (params) {
var scope = params.scope,
target = params.target,
dashboard = params.dashboard,
html = '', element;
html = "
\n";
html += "
Job Status
\n";
html += "
\n";
html += "
\n";
html += "\n";
html += "\n";
html += " | \n";
html += "Failed | \n";
html += "Total | \n";
html += "
\n";
html += "\n";
html += "\n";
function makeRow(params) {
var html = '',
label = params.label,
link = params.link,
fail_link = params.fail_link,
count = params.count,
fail = params.fail;
html += "\n";
html += "| " + label + " | \n";
html += " 0) ? 'failed-column' : 'zero-column';
html += " text-right\">";
html += "" + fail + "";
html += " | \n";
html += "";
html += "" + count + "";
html += " |
\n";
return html;
}
html += makeRow({
label: 'Jobs',
link: '/#/jobs',
count: (dashboard.jobs && dashboard.jobs.total) ? dashboard.jobs.total : 0,
fail: (dashboard.jobs && dashboard.jobs.failed) ? dashboard.jobs.failed : 0,
fail_link: '/#/jobs/?status=failed'
});
html += makeRow({
label: 'Inventories',
link: '/#/inventories',
count: (dashboard.inventories && dashboard.inventories.total) ? dashboard.inventories.total : 0,
fail: (dashboard.inventories && dashboard.inventories.job_failed) ? dashboard.inventories.job_failed : 0,
fail_link: '/#/inventories/?has_active_failures=true'
});
html += makeRow({
label: 'Groups',
link: '/#/home/groups',
count: (dashboard.groups && dashboard.groups.total) ? dashboard.groups.total : 0,
fail: (dashboard.groups && dashboard.groups.job_failed) ? dashboard.groups.job_failed : 0,
fail_link: '/#/home/groups/?has_active_failures=true'
});
html += makeRow({
label: 'Hosts',
link: '/#/home/hosts',
count: (dashboard.hosts && dashboard.hosts.total) ? dashboard.hosts.total : 0,
fail: (dashboard.hosts && dashboard.hosts.failed) ? dashboard.hosts.failed : 0,
fail_link: '/#/home/hosts/?has_active_failures=true'
});
html += "\n";
html += "
\n";
html += "
\n";
html += "
\n";
html += "\n";
element = angular.element(document.getElementById(target));
element.html(html);
$compile(element)(scope);
scope.$emit('WidgetLoaded');
};
}
]);