Commit 79754946 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

fnordmetric-ui: structure

parent 3b19ea5e
Loading
Loading
Loading
Loading
+27 −12
Original line number Diff line number Diff line
var FnordMetric = (function(){

  var ws_addr, socket, current_namespace;
  var wsAddress, socket, currentNamespace;
  var widgets = {};

  function setup(opts) {
    if (typeof $ == 'undefined') {
@@ -8,8 +9,8 @@ var FnordMetric = (function(){
      return;
    }

    current_namespace = opts.namespace;
    ws_addr = "ws://" + opts.address + "/stream";
    currentNamespace = opts.namespace;
    wsAddress = "ws://" + opts.address + "/stream";

    $(document).ready(function(){
      connect();
@@ -17,33 +18,47 @@ var FnordMetric = (function(){
  }

  function connect() {
    socket = new WebSocket(ws_addr);
    socket.onmessage = on_socket_message;
    socket.onclose = on_socket_close;
    socket.onopen = on_socket_open;
    socket = new WebSocket(wsAddress);
    socket.onmessage = onSocketMessage;
    socket.onclose = onSocketClose;
    socket.onopen = onSocketOpen;
  }

  function publish(obj) {
    if (!obj.namespace)
      obj.namespace = current_namespace;
      obj.namespace = currentNamespace;

    socket.send(JSON.stringify(obj));
  }

  function refresh(elem) {
    var elem = $(elem);

    var widget_key = elem.attr('data-widget-key');
    var widget_type = elem.attr('data-fnordmetric');

    if (!widget_type)
      return console.log("[FnordMetric] element is missing the data-fnordmetric attribute");

    if (widget_key && widgets[widget_key]) {
      widgets[widget_key].destroy();
      delete widgets[widget_key];
    }

    var widget = FnordMetric.widgets[widget_type]();
    console.log(widget);
  }

  function on_socket_message(raw) {
  function onSocketMessage(raw) {
    var evt = JSON.parse(raw.data);
    console.log(evt);
  }

  function on_socket_open() {
  function onSocketOpen() {
    console.log("[FnordMetric] connected...");
  }

  function on_socket_close() {
  function onSocketClose() {
    console.log("[FnordMetric] socket closed"); 
    window.setTimeout(connect, 1000);
  }
+18 −0
Original line number Diff line number Diff line
if (typeof FnordMetric == 'undefined')
  FnordMetric = {};

if (typeof FnordMetric.widgets == 'undefined')
  FnordMetric.widgets = {};


FnordMetric.widgets.counter = function(elem){

  function destroy() {
    console.log("destroy called");
  }

  return {
    destroy: destroy
  };

};
+2 −1
Original line number Diff line number Diff line
@@ -6,11 +6,12 @@
    <script src='http://localhost:8080/vendor/jquery-1.6.2.min.js' type='text/javascript'></script>
    <script src='./js/fnordmetric.js' type='text/javascript'></script>
    <script src='./js/fnordmetric.util.js' type='text/javascript'></script>
    <script src='./js/fnordmetric.widgets.counter.js' type='text/javascript'></script>

  </head>
  <body>

    <span data-value="123" id="my_counter">0</span>
    <span data-fnordmetric="counter" data-value="123" id="my_counter">0</span>
    <script>
      /*$(document).ready(function(){
        FnordMetric.init({