mirror of
				https://github.com/datahub-project/datahub.git
				synced 2025-11-04 04:39:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			255 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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);
 | 
						|
          }
 | 
						|
        });
 | 
						|
      }
 | 
						|
    }
 | 
						|
});
 |