From b80083cfcebf9298004d539604b2ebca2ed7f0ce Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Tue, 24 Mar 2020 13:29:29 -0700 Subject: [PATCH] jsxc: Fix issue with serving static files During the re-organization of data files into individual apps, a regression for JSXC preventing the symbolic links in the source code from being copied to destination folder during 'setup.py install'. Fix this by removing symbolic links and serving the file using CherryPy mappings with the help of StaticFiles component. Closes: #1180. Tests performed: - Access the following URLs successfully: https://localhost:4430/plinth/static/jsxc/img/menu_black.svg https://localhost:4430/plinth/static/jsxc/libjs-jsxc/jsxc.css https://localhost:4430/plinth/static/jsxc/libjs-jsxc/sound/Ping1.mp3 https://localhost:4430/plinth/static/jsxc/libjs-jsxc/lib/otr/lib/dsa-webworker.js - Login to JSXC, see the roster properly on the right side. Signed-off-by: Sunil Mohan Adapa Reviewed-by: Veiko Aasa --- plinth/modules/jsxc/__init__.py | 11 +++++++++++ plinth/modules/jsxc/static/img | 1 - plinth/modules/jsxc/static/libjs-jsxc/jsxc.css | 1 - plinth/modules/jsxc/static/libjs-jsxc/lib | 1 - plinth/modules/jsxc/static/libjs-jsxc/sound | 1 - 5 files changed, 11 insertions(+), 4 deletions(-) delete mode 120000 plinth/modules/jsxc/static/img delete mode 120000 plinth/modules/jsxc/static/libjs-jsxc/jsxc.css delete mode 120000 plinth/modules/jsxc/static/libjs-jsxc/lib delete mode 120000 plinth/modules/jsxc/static/libjs-jsxc/sound diff --git a/plinth/modules/jsxc/__init__.py b/plinth/modules/jsxc/__init__.py index 6d0334d47..e58bddb40 100644 --- a/plinth/modules/jsxc/__init__.py +++ b/plinth/modules/jsxc/__init__.py @@ -11,6 +11,7 @@ from django.utils.translation import ugettext_lazy as _ from plinth import app as app_module from plinth import frontpage, menu from plinth.modules.firewall.components import Firewall +from plinth.web_server import StaticFiles from .manifest import backup, clients # noqa, pylint: disable=unused-import @@ -58,6 +59,16 @@ class JSXCApp(app_module.App): ports=['http', 'https'], is_external=True) self.add(firewall) + directory_map = { + '/static/jsxc/img': '/usr/share/libjs-jsxc/img/', + '/static/jsxc/libjs-jsxc/lib': '/usr/share/javascript/jsxc/lib/', + '/static/jsxc/libjs-jsxc/sound': '/usr/share/libjs-jsxc/sound/', + '/static/jsxc/libjs-jsxc/': '/usr/share/libjs-jsxc/css/', + } + static_files = StaticFiles('static-files-jsxc', + directory_map=directory_map) + self.add(static_files) + def init(): """Initialize the JSXC module""" diff --git a/plinth/modules/jsxc/static/img b/plinth/modules/jsxc/static/img deleted file mode 120000 index 7e588436e..000000000 --- a/plinth/modules/jsxc/static/img +++ /dev/null @@ -1 +0,0 @@ -/usr/share/libjs-jsxc/img/ \ No newline at end of file diff --git a/plinth/modules/jsxc/static/libjs-jsxc/jsxc.css b/plinth/modules/jsxc/static/libjs-jsxc/jsxc.css deleted file mode 120000 index 91a7501b8..000000000 --- a/plinth/modules/jsxc/static/libjs-jsxc/jsxc.css +++ /dev/null @@ -1 +0,0 @@ -/usr/share/libjs-jsxc/css/jsxc.css \ No newline at end of file diff --git a/plinth/modules/jsxc/static/libjs-jsxc/lib b/plinth/modules/jsxc/static/libjs-jsxc/lib deleted file mode 120000 index 6197f27cb..000000000 --- a/plinth/modules/jsxc/static/libjs-jsxc/lib +++ /dev/null @@ -1 +0,0 @@ -/usr/share/javascript/jsxc/lib \ No newline at end of file diff --git a/plinth/modules/jsxc/static/libjs-jsxc/sound b/plinth/modules/jsxc/static/libjs-jsxc/sound deleted file mode 120000 index c61291cd7..000000000 --- a/plinth/modules/jsxc/static/libjs-jsxc/sound +++ /dev/null @@ -1 +0,0 @@ -/usr/share/libjs-jsxc/sound/ \ No newline at end of file