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

render chart in query frontend :)

parent 1a7803d7
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -455,6 +455,8 @@ ul.ui_tabs li a{
  color:#666;
  font-weight:500;
  text-decoration:none;
  cursor: pointer;
  border: 1px solid transparent;
}


@@ -1484,6 +1486,14 @@ ul.ui_tabs li.active a{
#query_editor {
}

.query_editor_result_tab_content {
  display: none;
}

.query_editor_result_tab_content.active {
  display: block;
}

#query_editor textarea {
  border: 0;
  display: block;
+50 −5
Original line number Diff line number Diff line
FnordMetric = (function() {
  var editor = undefined;

  var queryEditorActivateTab = function() {
    var tab_lis = document.getElementsByClassName("query_editor_result_tab");
    for (var i = 0; i < tab_lis.length; ++i) {
      if (tab_lis[i].getAttribute("data-tab") ==
          this.getAttribute("data-tab")) {
        tab_lis[i].className = "query_editor_result_tab active";
      } else {
        tab_lis[i].className = "query_editor_result_tab";
      }
    }

    var tabs = document.getElementsByClassName("query_editor_result_tab_content");
    for (var i = 0; i < tabs.length; ++i) {
      if (tabs[i].getAttribute("data-tab") == this.getAttribute("data-tab")) {
        tabs[i].className = "query_editor_result_tab_content active";
      } else {
        tabs[i].className = "query_editor_result_tab_content";
      }
    }
  };

  // FIXPAUL what is xss?
  var renderQueryResults = function(results) {
    var tabs = "<ul class='ui_tabs'>";
    for (i = 0; i < results.tables.length; ++i) {
      tabs += "<li class='active'><a>Table</a></li>";
    for (var i = 0; i < results.charts.length; ++i) {
      tabs += "<li class='query_editor_result_tab' data-tab='chart" + i + "'><a>Chart</a></li>";
    }
    for (var i = 0; i < results.tables.length; ++i) {
      tabs += "<li class='query_editor_result_tab' data-tab='table" + i + "'><a>Table</a></li>";
    }
    tabs += "</ul>";

    var results_html = tabs;
    for (i = 0; i < results.tables.length; ++i) {
    var results_html = "<div>" + tabs;

    for (var i = 0; i < results.charts.length; ++i) {
      results_html += "<div class='query_editor_result_tab_content' data-tab='chart" + i + "'>";
      results_html += results.charts[i].svg;
      results_html += "</div>";
    }

    for (var i = 0; i < results.tables.length; ++i) {
      results_html += "<div class='query_editor_result_tab_content' data-tab='table" + i + "'>";
      var result = results.tables[i];
      results_html += "<table><tbody>";

@@ -40,12 +72,25 @@ FnordMetric = (function() {


      results_html += "</tbody></table>";
      results_html += "</div>";
    }

    document.getElementById("query_editor_results").innerHTML = results_html;
    document.getElementById("query_editor_results").innerHTML =
        results_html + "</div>";

    var tab_elems = document.getElementsByClassName("query_editor_result_tab");
    for (var i = 0; i < tab_elems.length; ++i) {
      tab_elems[i].onclick = queryEditorActivateTab;

      if (i == 0) {
        tab_elems[i].onclick();
      }
    }
  }

  var executeQuery = function() {
    document.getElementById("query_editor_results").innerHTML = "";

    if (typeof editor == undefined) {
      return;
    }
+23 −4
Original line number Diff line number Diff line
@@ -117,10 +117,29 @@ void QueryService::renderJSON(Query* query, util::JSONOutputStream* target)
    target->addComma();
  }

  if (query->getNumCharts() > 0) {
    target->addObjectEntry("charts");
    target->beginArray();

    for (int i = 0; i < query->getNumCharts(); ++i) {
      std::string svg_data;
      auto string_stream = util::StringOutputStream::fromString(&svg_data);
      ui::SVGTarget svg_target(string_stream.get());
      query->getChart(i)->render(&svg_target);

      target->beginObject();
      target->addObjectEntry("svg");
      target->addString(svg_data);
      target->endObject();

      if (i < query->getNumCharts() - 1) {
        target->addComma();
      }
    }

    target->endArray();
    target->addComma();
  }

  target->addObjectEntry("status");
  target->addString("success");
+4 −0
Original line number Diff line number Diff line
@@ -124,6 +124,10 @@ public:
      adapter->nextRow(row, row_len);
      stmt_->setTarget(adapter);
      adapter_.reset(adapter);
    } else {
      RAISE(
          util::RuntimeException,
          "3D series not implemented yet");
    }

    return true;
+0 −1
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ Assets::AssetFile::AssetFile(
    const std::string& name,
    const unsigned char* data,
    size_t size) {
  printf("register: %s,", name.c_str());
  asset_files.emplace(name, std::make_pair(data, size));
}