[AIRFLOW-816] Use static nvd3 and d3

Closes #2035 from bolkedebruin/AIRFLOW-816


Project: http://git-wip-us.apache.org/repos/asf/incubator-airflow/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-airflow/commit/1accb54f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-airflow/tree/1accb54f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-airflow/diff/1accb54f

Branch: refs/heads/v1-8-test
Commit: 1accb54ff561b8d745277308447dd6f9d3e9f8d5
Parents: fbb59b9
Author: Bolke de Bruin <bo...@xs4all.nl>
Authored: Wed Feb 1 15:32:01 2017 +0000
Committer: Bolke de Bruin <bo...@xs4all.nl>
Committed: Wed Feb 1 15:32:01 2017 +0000

----------------------------------------------------------------------
 airflow/www/templates/airflow/chart.html        |  6 +++++
 .../www/templates/airflow/duration_chart.html   |  6 +++++
 airflow/www/views.py                            | 26 +++++++++-----------
 3 files changed, 24 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/1accb54f/airflow/www/templates/airflow/chart.html
----------------------------------------------------------------------
diff --git a/airflow/www/templates/airflow/chart.html 
b/airflow/www/templates/airflow/chart.html
index b917b3e..e61bba8 100644
--- a/airflow/www/templates/airflow/chart.html
+++ b/airflow/www/templates/airflow/chart.html
@@ -23,6 +23,12 @@
 <link rel="stylesheet" type="text/css"
     href="{{ url_for('static', filename='tree.css') }}">
 <link href="{{ 
admin_static.url(filename='vendor/bootstrap-daterangepicker/daterangepicker-bs2.css')
 }}" rel="stylesheet">
+<link rel="stylesheet" type="text/css"
+      href="{{ url_for("static", filename="dataTables.bootstrap.css") }}">
+<link rel="stylesheet" type="text/css"
+      href="{{ url_for("static", filename="nv.d3.css") }}">
+<script src="{{ url_for('static', filename='d3.v3.min.js') }}"></script>
+<script src="{{ url_for('static', filename='nv.d3.js') }}"></script>
 {% endblock %}
 
 {% block body %}

http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/1accb54f/airflow/www/templates/airflow/duration_chart.html
----------------------------------------------------------------------
diff --git a/airflow/www/templates/airflow/duration_chart.html 
b/airflow/www/templates/airflow/duration_chart.html
index 5c79806..2c8d433 100644
--- a/airflow/www/templates/airflow/duration_chart.html
+++ b/airflow/www/templates/airflow/duration_chart.html
@@ -23,6 +23,12 @@
 <link rel="stylesheet" type="text/css"
     href="{{ url_for('static', filename='tree.css') }}">
 <link href="{{ 
admin_static.url(filename='vendor/bootstrap-daterangepicker/daterangepicker-bs2.css')
 }}" rel="stylesheet">
+<link rel="stylesheet" type="text/css"
+      href="{{ url_for("static", filename="dataTables.bootstrap.css") }}">
+<link rel="stylesheet" type="text/css"
+      href="{{ url_for("static", filename="nv.d3.css") }}">
+<script src="{{ url_for('static', filename='d3.v3.min.js') }}"></script>
+<script src="{{ url_for('static', filename='nv.d3.js') }}"></script>
 {% endblock %}
 
 {% block body %}

http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/1accb54f/airflow/www/views.py
----------------------------------------------------------------------
diff --git a/airflow/www/views.py b/airflow/www/views.py
index 86d74d4..b80d83e 100644
--- a/airflow/www/views.py
+++ b/airflow/www/views.py
@@ -25,7 +25,6 @@ import dateutil.parser
 import copy
 from itertools import chain, product
 import json
-from lxml import html
 
 import inspect
 from textwrap import dedent
@@ -1514,14 +1513,12 @@ class Airflow(BaseView):
 
         form = DateTimeWithNumRunsForm(data={'base_date': max_date,
                                              'num_runs': num_runs})
-        chart.buildhtml()
-        cum_chart.buildhtml()
-        cum_chart_body = html.document_fromstring(str(cum_chart)).find('body')
-        cum_chart_script = cum_chart_body.find('script')
-        s_index = cum_chart_script.text.rfind('});')
-        cum_chart_script.text = cum_chart_script.text[:s_index]\
-            + "$( document ).trigger('chartload')"\
-            + cum_chart_script.text[s_index:]
+        chart.buildcontent()
+        cum_chart.buildcontent()
+        s_index = cum_chart.htmlcontent.rfind('});')
+        cum_chart.htmlcontent = (cum_chart.htmlcontent[:s_index]
+                                 + "$( document ).trigger('chartload')"
+                                 + cum_chart.htmlcontent[s_index:])
 
         return self.render(
             'airflow/duration_chart.html',
@@ -1529,8 +1526,8 @@ class Airflow(BaseView):
             demo_mode=conf.getboolean('webserver', 'demo_mode'),
             root=root,
             form=form,
-            chart=chart,
-            cum_chart=html.tostring(cum_chart_body)
+            chart=chart.htmlcontent,
+            cum_chart=cum_chart.htmlcontent
         )
 
     @expose('/tries')
@@ -1584,7 +1581,7 @@ class Airflow(BaseView):
         form = DateTimeWithNumRunsForm(data={'base_date': max_date,
                                              'num_runs': num_runs})
 
-        chart.buildhtml()
+        chart.buildcontent()
 
         return self.render(
             'airflow/chart.html',
@@ -1592,7 +1589,7 @@ class Airflow(BaseView):
             demo_mode=conf.getboolean('webserver', 'demo_mode'),
             root=root,
             form=form,
-            chart=chart
+            chart=chart.htmlcontent
         )
 
     @expose('/landing_times')
@@ -1660,10 +1657,11 @@ class Airflow(BaseView):
 
         form = DateTimeWithNumRunsForm(data={'base_date': max_date,
                                              'num_runs': num_runs})
+        chart.buildcontent()
         return self.render(
             'airflow/chart.html',
             dag=dag,
-            chart=chart,
+            chart=chart.htmlcontent,
             height="700px",
             demo_mode=conf.getboolean('webserver', 'demo_mode'),
             root=root,

Reply via email to