Project

General

Profile

Download (3.08 KB) Statistics
| Branch: | Tag: | Revision:
//= require proxy_status/puppet
//= require proxy_status/logs

$(document).on('ContentLoad', function() {
$('a[data-toggle="tab"]').on('click', function(e) {
history.pushState(
null,
null,
document.location.pathname + $(this).attr('href')
);
});
showProxies();
loadTFTP();
tfm.tools.setTab();
});

$(window).on('hashchange', tfm.tools.setTab); //so buttons that link to an anchor can open that tab

function setItemStatus(item, response) {
if (response.success && response.message && response.message.warning) {
item.attr('title', response.message.warning.message);
item.addClass('text-warning');
item.html(tfm.tools.iconText('warning-triangle-o', '', 'pficon'));
} else if (response.success) {
item.attr('title', __('Active'));
item.addClass('text-success');
item.html(tfm.tools.iconText('ok', '', 'pficon'));
} else {
item.attr('title', response.message);
item.addClass('text-danger');
item.html(tfm.tools.iconText('error-circle-o', '', 'pficon'));
}
item.tooltip({ html: true });
}

function setProxyVersion(item, response) {
var text = response.message.version
? response.message.version
: response.message;
generateItem(item, response.success, text);
}

function setPluginVersion(item, response) {
var pluginName = item.data('plugin');
var pluginVersion;
if (response.success)
pluginVersion = response.message.modules
? response.message.modules[pluginName]
: response.message.version;
else pluginVersion = response.message;
generateItem(item, response.success, pluginVersion);
}

function generateItem(item, status, text) {
'use strict';
if (status === true) {
item.text(text);
} else {
item.attr('title', text);
item.addClass('text-danger');
item.html(tfm.tools.iconText('error-circle-o', '', 'pficon'));
}
item.tooltip({ html: true });
}

function showProxies() {
$('.proxy-show').each(function(index, item) {
var proxy = new ProxyStatus($(item));
proxy.getVersions();
});
}

function loadTFTP() {
$('.proxy-tftp').each(function(index, item) {
var item = $(item);
var url = item.data('url');
$.ajax({
type: 'get',
url: url,
success: function(response) {
generateItem(item, response.success, response.message);
},
error: function(response) {
generateItem(item, false, response.message);
},
});
});
}

function ProxyStatus(item) {
this.url = item.data('url');
this.item = item;
var self = this;

this.getVersions = function() {
$.ajax({
type: 'get',
url: this.url,
success: function(response) {
populateData(response, self.item);
}.bind(this),
error: function(response) {
populateData(response, self.item);
}.bind(this),
});
};
}

function populateData(response, item) {
item.find('.proxy-version').each(function() {
setProxyVersion($(this), response);
});

$('.plugin-version').each(function() {
setPluginVersion($(this), response);
});

item.find('.proxy-show-status').each(function() {
setItemStatus($(this), response);
});
}
(12-12/16)