diff --git a/bazaarci/server/__init__.py b/bazaarci/server/__init__.py new file mode 100644 index 0000000..7407da6 --- /dev/null +++ b/bazaarci/server/__init__.py @@ -0,0 +1,11 @@ + +from flask import Flask + +def create_app(config=None): + app = Flask(__name__, template_folder='assets/html', static_folder='assets') + + from .views import graph + app.register_blueprint(graph.bp) + + return app + diff --git a/bazaarci/server/__main__.py b/bazaarci/server/__main__.py new file mode 100644 index 0000000..845764e --- /dev/null +++ b/bazaarci/server/__main__.py @@ -0,0 +1,8 @@ + +from . import create_app + +if __name__ == "__main__": + app = create_app(config="Production/LocalRun/etc") + app.run() + + diff --git a/bazaarci/server/assets/css/.gitignore b/bazaarci/server/assets/css/.gitignore new file mode 100644 index 0000000..982d8e2 --- /dev/null +++ b/bazaarci/server/assets/css/.gitignore @@ -0,0 +1,5 @@ +# Ignore all files that aren't css +* +!.gitignore +!*.css +!*/ diff --git a/bazaarci/server/assets/html/.gitignore b/bazaarci/server/assets/html/.gitignore new file mode 100644 index 0000000..ae1c1ed --- /dev/null +++ b/bazaarci/server/assets/html/.gitignore @@ -0,0 +1,5 @@ +# Ignore all files that aren't css +* +!.gitignore +!*.html +!*/ diff --git a/bazaarci/server/assets/html/graph.html b/bazaarci/server/assets/html/graph.html new file mode 100644 index 0000000..ab76180 --- /dev/null +++ b/bazaarci/server/assets/html/graph.html @@ -0,0 +1,26 @@ + + + + + + + + BazaarCI + + + +
+

BazaarCI

+
+ + +
+ + + + + + + + + diff --git a/bazaarci/server/assets/js/.gitignore b/bazaarci/server/assets/js/.gitignore new file mode 100644 index 0000000..7c51dd8 --- /dev/null +++ b/bazaarci/server/assets/js/.gitignore @@ -0,0 +1,5 @@ +# Ignore all files that aren't css +* +!.gitignore +!*.js +!*/ diff --git a/bazaarci/server/assets/js/gvd3demo.js b/bazaarci/server/assets/js/gvd3demo.js new file mode 100644 index 0000000..de1e107 --- /dev/null +++ b/bazaarci/server/assets/js/gvd3demo.js @@ -0,0 +1,122 @@ + +var dotIndex = 0; +var graphviz = d3.select("#graph").graphviz() + .transition(function () { + return d3.transition("main") + .ease(d3.easeLinear) + .delay(500) + .duration(1500); + }) + .logEvents(true) + .on("initEnd", render); + +function render() { + var dotLines = dots[dotIndex]; + var dot = dotLines.join(''); + graphviz + .renderDot(dot) + .on("end", function () { + dotIndex = (dotIndex + 1) % dots.length; + render(); + }); +} + +var dots = [ + [ + 'digraph {', + ' node [style="filled"]', + ' a [fillcolor="#d62728"]', + ' b [fillcolor="#1f77b4"]', + ' a -> b', + '}' + ], + [ + 'digraph {', + ' node [style="filled"]', + ' a [fillcolor="#d62728"]', + ' c [fillcolor="#2ca02c"]', + ' b [fillcolor="#1f77b4"]', + ' a -> b', + ' a -> c', + '}' + ], + [ + 'digraph {', + ' node [style="filled"]', + ' a [fillcolor="#d62728"]', + ' b [fillcolor="#1f77b4"]', + ' c [fillcolor="#2ca02c"]', + ' a -> b', + ' a -> c', + '}' + ], + [ + 'digraph {', + ' node [style="filled"]', + ' a [fillcolor="#d62728", shape="box"]', + ' b [fillcolor="#1f77b4", shape="parallelogram"]', + ' c [fillcolor="#2ca02c", shape="pentagon"]', + ' a -> b', + ' a -> c', + ' b -> c', + '}' + ], + [ + 'digraph {', + ' node [style="filled"]', + ' a [fillcolor="yellow", shape="star"]', + ' b [fillcolor="yellow", shape="star"]', + ' c [fillcolor="yellow", shape="star"]', + ' a -> b', + ' a -> c', + ' b -> c', + '}' + ], + [ + 'digraph {', + ' node [style="filled"]', + ' a [fillcolor="#d62728", shape="triangle"]', + ' b [fillcolor="#1f77b4", shape="diamond"]', + ' c [fillcolor="#2ca02c", shape="trapezium"]', + ' a -> b', + ' a -> c', + ' b -> c', + '}' + ], + [ + 'digraph {', + ' node [style="filled"]', + ' a [fillcolor="#d62728", shape="box"]', + ' b [fillcolor="#1f77b4", shape="parallelogram"]', + ' c [fillcolor="#2ca02c", shape="pentagon"]', + ' a -> b', + ' a -> c', + ' b -> c', + '}' + ], + [ + 'digraph {', + ' node [style="filled"]', + ' a [fillcolor="#d62728"]', + ' b [fillcolor="#1f77b4"]', + ' c [fillcolor="#2ca02c"]', + ' a -> b', + ' a -> c', + ' c -> b', + '}' + ], + [ + 'digraph {', + ' node [style="filled"]', + ' b [fillcolor="#1f77b4"]', + ' c [fillcolor="#2ca02c"]', + ' c -> b', + '}' + ], + [ + 'digraph {', + ' node [style="filled"]', + ' b [fillcolor="#1f77b4"]', + '}' + ], +]; \ No newline at end of file diff --git a/bazaarci/server/views/__init__.py b/bazaarci/server/views/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bazaarci/server/views/graph.py b/bazaarci/server/views/graph.py new file mode 100644 index 0000000..487feb8 --- /dev/null +++ b/bazaarci/server/views/graph.py @@ -0,0 +1,10 @@ + +from flask import Blueprint, render_template, request + +bp = Blueprint('graph', __name__) + +@bp.route('/') +def index(): + return render_template('graph.html') + + diff --git a/setup.py b/setup.py index a0a6109..91f18b4 100644 --- a/setup.py +++ b/setup.py @@ -17,5 +17,6 @@ packages=[ 'bazaarci', 'bazaarci.runner', + 'bazaarci.server', ], )