2015-11-19 14:39:21 -08:00

255 lines
8.9 KiB
JavaScript

var metricsController = null;
App.MetricsRoute = Ember.Route.extend({
setupController: function(controller) {
metricsController = controller;
},
actions: {
getMetrics: function() {
var url = 'api/v1/metrics?size=10&page=' + metricsController.get('model.data.page');
currentTab = 'Metric';
updateActiveTab();
$.get(url, function(data) {
if (data && data.status == "ok"){
metricsController.set('model', data);
metricsController.set('urn', null);
metricsController.set('detailview', false);
}
});
}
}
});
App.MetricspageRoute = Ember.Route.extend({
setupController: function(controller, param) {
var url = 'api/v1/metrics?size=10&page=' + param.page;
currentTab = 'Metric';
updateActiveTab();
var breadcrumbs = [{"title":"METRICS_ROOT", "urn":"page/1"}];
$.get(url, function(data) {
if (data && data.status == "ok"){
metricsController.set('model', data);
metricsController.set('detailview', false);
metricsController.set('breadcrumbs', breadcrumbs);
metricsController.set('urn', null);
metricsController.set('dashboard', null);
metricsController.set('group', null);
}
});
var watcherEndpoint = "/api/v1/urn/watch?urn=METRICS_ROOT";
$.get(watcherEndpoint, function(data){
if(data.id && data.id !== 0) {
metricsController.set('urnWatched', true)
metricsController.set('urnWatchedId', data.id)
} else {
metricsController.set('urnWatched', false)
metricsController.set('urnWatchedId', 0)
}
})
},
actions: {
getMetrics: function() {
var url = 'api/v1/metrics?size=10&page=' + metricsController.get('model.data.page');
currentTab = 'Metric';
updateActiveTab();
$.get(url, function(data) {
if (data && data.status == "ok"){
metricsController.set('model', data);
metricsController.set('urn', null);
metricsController.set('detailview', false);
}
});
}
}
});
App.MetricRoute = Ember.Route.extend({
setupController: function(controller, params) {
if(!metricsController)
return;
if (metricsController)
{
metricsController.set('detailview', true);
}
var name;
var id = 0;
if (params && params.id) {
var url = 'api/v1/metrics/' + params.id;
id = params.id;
if (params.category)
{
name = '{' + params.category + '}' + params.name;
}
else
{
name = params.name;
}
$.get(url, function(data) {
if (data && data.status == "ok"){
controller.set("model", data.metric);
}
});
}
else if (params && params.metric)
{
id = params.metric.id;
if (params.metric.category)
{
name = '{' + params.metric.category + '}' + params.metric.name;
}
else
{
name = params.metric.name;
}
controller.set("model", params.metric);
}
if (name)
{
findAndActiveMetricNode(name, id);
}
},
model: function(params) {
currentTab = 'Metric';
updateActiveTab()
if (metricsController)
{
metricsController.set('detailview', true);
}
return Ember.$.getJSON('api/v1/metrics/' + params.id);
},
actions: {
getMetrics: function() {
var url = 'api/v1/metrics/' + this.get('controller.model.id')
var _this = this
currentTab = 'Metric';
updateActiveTab();
$.get(url, function(data) {
if (data && data.status == "ok"){
_this.set('controller.model', data.metric)
_this.set('controller.detailview', true);
}
});
}
}
});
App.MetricnamepageRoute = Ember.Route.extend({
model: function(params, transition) {
currentTab = 'Metric';
updateActiveTab();
if (transition
&& transition.resolvedModels
&& transition.resolvedModels.metricname
&& transition.resolvedModels.metricname.name)
{
var name = transition.resolvedModels.metricname.name;
var url = 'api/v1/metrics/name/' + name + '?page=' + params.page;
var breadcrumbs = [{"title":name, "urn":"name/" + name + "/page/1"}];
$.get(url, function(data) {
if (data && data.status == "ok"){
metricsController.set('model', data);
metricsController.set('detailview', false);
metricsController.set('breadcrumbs', breadcrumbs);
metricsController.set('urn', name);
metricsController.set('dashboard', name);
metricsController.set('group', null);
}
});
var watcherEndpoint = "/api/v1/urn/watch?urn=" + name;
$.get(watcherEndpoint, function(data){
if(data.id && data.id !== 0) {
metricsController.set('urnWatched', true)
metricsController.set('urnWatchedId', data.id)
} else {
metricsController.set('urnWatched', false)
metricsController.set('urnWatchedId', 0)
}
});
if (name)
{
findAndActiveMetricDashboardNode(name);
}
}
},
actions: {
getMetrics: function() {
var url = 'api/v1/metrics/name/' + metricsController.get('dashboard')
url += '?size=10&page=' + metricsController.get('model.data.page');
currentTab = 'Metric';
updateActiveTab();
$.get(url, function(data) {
if (data && data.status == "ok"){
metricsController.set('model', data);
metricsController.set('urn', null);
metricsController.set('detailview', false);
}
});
}
}
});
App.MetricnamesubpageRoute = Ember.Route.extend({
model: function(params, transition) {
currentTab = 'Metric';
updateActiveTab();
if (transition
&& transition.resolvedModels
&& transition.resolvedModels.metricname
&& transition.resolvedModels.metricname.name)
{
var name = transition.resolvedModels.metricname.name;
var group = '';
var breadcrumbs;
var url = 'api/v1/metrics/name/' + name;
if (transition.resolvedModels.metricgroup && transition.resolvedModels.metricgroup.group)
{
group = transition.resolvedModels.metricgroup.group;
url += '/' + group + '?page=' + params.page;
breadcrumbs = [{"title":name, "urn":"name/" + name + "/page/1"},
{"title":group, "urn":"name/" + name + "/" + group + "/page/1"}];
}
$.get(url, function(data) {
if (data && data.status == "ok"){
metricsController.set('breadcrumbs', breadcrumbs);
metricsController.set('model', data);
metricsController.set('detailview', false);
metricsController.set('urn', name + "/" + group);
metricsController.set('dashboard', name);
metricsController.set('group', group);
}
});
var watcherEndpoint = "/api/v1/urn/watch?urn=" + name + "/" + group;
$.get(watcherEndpoint, function(data){
if(data.id && data.id !== 0) {
metricsController.set('urnWatched', true)
metricsController.set('urnWatchedId', data.id)
} else {
metricsController.set('urnWatched', false)
metricsController.set('urnWatchedId', 0)
}
});
if (name && group)
{
findAndActiveMetricGroupNode(name, group);
}
}
},
actions: {
getMetrics: function() {
var url = 'api/v1/metrics/name/' + metricsController.get('dashboard')
url += '/' + metricsController.get('group') + '?size=10&page=' + metricsController.get('model.data.page');
currentTab = 'Metric';
updateActiveTab();
$.get(url, function(data) {
if (data && data.status == "ok"){
metricsController.set('model', data);
metricsController.set('urn', null);
metricsController.set('detailview', false);
}
});
}
}
});