From e0bbc517e99937f07f0c44af3d201d475938ca99 Mon Sep 17 00:00:00 2001 From: Patrick Jentsch <p.jentsch@uni-bielefeld.de> Date: Mon, 18 Jan 2021 13:22:00 +0100 Subject: [PATCH] Use Flask-Assets to compile multiple Javascript files to one --- .gitignore | 4 ++++ web/app/__init__.py | 3 +++ web/app/templates/nopaque.html.j2 | 28 +++++++++++++++++----------- web/requirements.txt | 1 + 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index de6e4247..9d5ca616 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,10 @@ # C extensions *.so +# Flask-Assets files +.webassets-cache +*.compiled.js + # Docker related files docker-compose.override.yml db diff --git a/web/app/__init__.py b/web/app/__init__.py index 9a399ddc..75be4213 100644 --- a/web/app/__init__.py +++ b/web/app/__init__.py @@ -5,8 +5,10 @@ from flask_mail import Mail from flask_paranoid import Paranoid from flask_socketio import SocketIO from flask_sqlalchemy import SQLAlchemy +import flask_assets +assets = flask_assets.Environment() db = SQLAlchemy() login_manager = LoginManager() login_manager.login_view = 'auth.login' @@ -20,6 +22,7 @@ def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) + assets.init_app(app) config[config_name].init_app(app) db.init_app(app) login_manager.init_app(app) diff --git a/web/app/templates/nopaque.html.j2 b/web/app/templates/nopaque.html.j2 index 3e7978bc..f53ad189 100644 --- a/web/app/templates/nopaque.html.j2 +++ b/web/app/templates/nopaque.html.j2 @@ -254,17 +254,23 @@ <script src="{{ url_for('static', filename='js/list.min.js') }}"></script> <script src="{{ url_for('static', filename='js/socket.io.min.js') }}"></script> <script src="{{ url_for('static', filename='js/nopaque/main.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceDisplays/RessourceDisplay.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceDisplays/CorpusDisplay.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceDisplays/JobDisplay.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceLists/RessourceList.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceLists/CorpusList.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceLists/CorpusFileList.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceLists/JobList.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceLists/JobInputList.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceLists/JobResultList.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceLists/QueryResultList.js') }}"></script> -<script src="{{ url_for('static', filename='js/nopaque/RessourceLists/UserList.js') }}"></script> +{% assets output="js/nopaque/RessourceDisplays.compiled.js", + "js/nopaque/RessourceDisplays/RessourceDisplay.js", + "js/nopaque/RessourceDisplays/CorpusDisplay.js", + "js/nopaque/RessourceDisplays/JobDisplay.js" %} +<script src="{{ ASSET_URL }}"></script> +{% endassets %} +{% assets output="js/nopaque/RessourceLists.compiled.js", + "js/nopaque/RessourceLists/RessourceList.js", + "js/nopaque/RessourceLists/CorpusList.js", + "js/nopaque/RessourceLists/CorpusFileList.js", + "js/nopaque/RessourceLists/JobList.js", + "js/nopaque/RessourceLists/JobInputList.js", + "js/nopaque/RessourceLists/JobResultList.js", + "js/nopaque/RessourceLists/QueryResultList.js", + "js/nopaque/RessourceLists/UserList.js" %} +<script src="{{ ASSET_URL }}"></script> +{% endassets %} <script> // Disable all option elements with no value for (let optionElement of document.querySelectorAll('option[value=""]')) {optionElement.disabled = true;} diff --git a/web/requirements.txt b/web/requirements.txt index e1faf1c5..97c94190 100644 --- a/web/requirements.txt +++ b/web/requirements.txt @@ -2,6 +2,7 @@ cqi docker eventlet Flask +Flask-Assets Flask-Login Flask-Mail Flask-Migrate -- GitLab