|
|
|
""" Main webapp handlers. """
|
|
|
|
|
|
|
|
import os
|
|
|
|
import json
|
|
|
|
|
|
|
|
from flask import request, render_template, jsonify, redirect, url_for
|
|
|
|
|
|
|
|
from vasl_templates.webapp import app
|
|
|
|
from vasl_templates.webapp.config.constants import DATA_DIR
|
|
|
|
|
|
|
|
# ---------------------------------------------------------------------
|
|
|
|
|
|
|
|
@app.route( "/" )
|
|
|
|
def main():
|
|
|
|
"""Return the main page."""
|
|
|
|
return render_template( "index.html" )
|
|
|
|
|
|
|
|
# ---------------------------------------------------------------------
|
|
|
|
|
|
|
|
@app.route( "/help" )
|
|
|
|
def show_help():
|
|
|
|
"""Show the help page."""
|
|
|
|
url = url_for( "static", filename="help/index.html" )
|
|
|
|
if request.args.get( "embedded" ):
|
|
|
|
url += "?embedded=1"
|
|
|
|
return redirect( url, code=302 )
|
|
|
|
|
|
|
|
# ---------------------------------------------------------------------
|
|
|
|
|
|
|
|
default_scenario = None
|
|
|
|
|
|
|
|
@app.route( "/default-scenario" )
|
|
|
|
def get_default_scenario():
|
|
|
|
"""Return the default scenario."""
|
|
|
|
|
|
|
|
# check if a default scenario has been configured
|
|
|
|
if default_scenario:
|
|
|
|
fname = default_scenario
|
|
|
|
else:
|
|
|
|
fname = os.path.join( app.config.get("DATA_DIR",DATA_DIR), "default-scenario.json" )
|
|
|
|
|
|
|
|
# return the default scenario
|
|
|
|
with open(fname,"r") as fp:
|
|
|
|
return jsonify( json.load( fp ) )
|
|
|
|
|
|
|
|
# ---------------------------------------------------------------------
|
|
|
|
|
|
|
|
@app.route( "/ping" )
|
|
|
|
def ping():
|
|
|
|
"""Let the caller know we're alive."""
|
|
|
|
return "pong"
|
|
|
|
|
|
|
|
# ---------------------------------------------------------------------
|
|
|
|
|
|
|
|
@app.route( "/shutdown" )
|
|
|
|
def shutdown():
|
|
|
|
"""Shutdown the webapp (for testing porpoises)."""
|
|
|
|
request.environ.get( "werkzeug.server.shutdown" )()
|
|
|
|
return ""
|