Commit 5d557f2c authored by Paul Asmuth's avatar Paul Asmuth
Browse files

renderable gauge rendering

parent 34a7ee96
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -76,4 +76,8 @@ class FnordMetric::Gauge
    false
  end

  def render_to_event(*args)
    { :title => name, :html => render(*args) }
  end

end
 No newline at end of file
+4 −3
Original line number Diff line number Diff line
class FnordMetric::NumericTimeseriesGauge < FnordMetric::Gauge

  #def execute(runner, _backend)
    # super
  def render(namespace, event)
    # backend = _backend[0].new(_backend[1])

    # colors = ["#2F635E", "#606B36", "#727070", "#936953", "#CD645A", "#FACE4F", "#42436B"]
@@ -49,7 +48,9 @@ class FnordMetric::NumericTimeseriesGauge < FnordMetric::Gauge
    #   end

    # end
  #end

    "fnord!!!!!!"
  end

  def renderable?
    true
+8 −4
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ class FnordMetric::Reactor
    messages << discover(ns) if event["type"] == "discover_request"
    messages << widget(ns, event) if event["type"] == "widget_request"
    messages << gauge(ns, event) if event["type"] == "render_request"
    messages.flatten.each{ |m| socket.send(m.to_json) }
    messages.flatten.each{ |m| socket.send(m.to_json) if m }
  end

private
@@ -20,9 +20,13 @@ private
  end

  def gauge(namespace, event)
    { "type" => "render_response", "gauge" => event["gauge"], "payload" => {
      "title" => "fnord"
    } }
    return false unless gauge = namespace.gauges[event["gauge"].to_sym]

    {
      :type    => "render_response",
      :gauge   => gauge.name,
      :payload => gauge.render_to_event(namespace, event)
    }
  end

  def discover(namespace)
+2 −1
Original line number Diff line number Diff line
@@ -109,7 +109,7 @@ color:#000;
.picto.piechart{ background-position:-42px -173px; width:9px; margin-right:5px; }

#viewport{ float:left; margin-left:220px; min-width:790px; }
#viewport .viewport_inner{ margin:0 6px; background:#fff; min-height:1200px; }
#viewport .viewport_inner{ margin:0 6px; background:#fff; min-height:1200px; padding-top:1px; }

#viewport, #sidebar ul li:hover, #sidebar ul li.active{ background:#24272c; box-shadow: inset 0px 1px 2px 1px rgba(0, 0, 0, 0.4); }

@@ -291,6 +291,7 @@ ul.ui_tabs li.active a{
  background:#f4f4f4;
}

h1.head{ margin-top:70px; }
.gauge_viewport{ margin-top:30px; }


+10 −56
Original line number Diff line number Diff line
@@ -8,9 +8,12 @@ FnordMetric.views.gaugeView = (function(gauge_name, conf){
    viewport = _viewport;
    viewport.html('');
    viewport.append('<div class="navbar"></div>');
    viewport.append('<h1>' + gauge_name + '</h1>');
    viewport.append('<h1 class="head">' + gauge_name + '</h1>');
    viewport.append('<h3>Loading...</h3>');
    viewport.append('<div class="gauge_viewport"></div>');

    viewport.append(
      $('<div class="gauge_viewport"></div>').html(conf.html)
    );

    $('h1', viewport).html(conf.title);
    $('h3', viewport).html(conf.title);
@@ -33,68 +36,19 @@ FnordMetric.views.gaugeView = (function(gauge_name, conf){
        ["Export Data", function(){ alert(23); }]
      ]
    });
  };

  function announce(evt){
    if((evt._class == "widget_response") || (evt._class == "widget_push")){
      for(_wkey in widgets){
        widget_objs[_wkey].announce(evt);
      }  
    }
  }

  function renderWidgets(_widgets){
    for(wkey in _widgets){
      var widget = _widgets[wkey];
      widget["elem"] = $('<div class="widget"></div>');
      $('.tab[data-tab="' + widget.tab + '"]', '.viewport_inner').append(widget["elem"]);
      widgets[wkey] = widget;
      resizeWidget(wkey);
      renderWidget(wkey);
    };
    resize();
  };

  function renderWidget(wkey, _w){
    var widget = widgets[wkey];
    /* argh... */
    if(widget.klass=='TimelineWidget'){ _w = FnordMetric.widgets.timelineWidget(); }
    if(widget.klass=='NumbersWidget'){ _w = FnordMetric.widgets.numbersWidget(); }
    if(widget.klass=='RealtimeValueWidget'){ _w = FnordMetric.widgets.realtimeValueWidget(); }
    
    if(widget.klass=='BarsWidget'){ _w = FnordMetric.widgets.barsWidget(); }
    if(widget.klass=='ToplistWidget'){ _w = FnordMetric.widgets.toplistWidget(); }
    if(widget.klass=='PieWidget'){ _w = FnordMetric.widgets.pieWidget(); }
    if(widget.klass=="HtmlWidget") { _w = FnordMetric.widgets.htmlWidget(); }
    if(_w){ _w.render(widget); }
    widget_objs[wkey] = _w;
  };

  function resizeWidget(wkey){
    var widget = widgets[wkey];
    var wwperc = widgets[wkey].width;
    if(!wwperc){ wwperc = 100; }
    var wwidth = viewport.width() * (wwperc/100.0);
    if(wwperc==100){
      widgets[wkey].elem.addClass('full_width');
    } else { wwidth -= 1; }
    widget.elem.width(wwidth);
  function close(){
    $('body').trigger('fm_dashboard_close');
  }
  
  function resize(){
    for(wkey in widgets){
      resizeWidget(wkey);
    };
  };
    
  function close(){
    $('body').trigger('fm_dashboard_close');
  };
  }

  return {
    load: load,
    resize: resize,
    announce: announce,
    close: close
  };