|
|
|
|
@ -1,7 +1,8 @@
|
|
|
|
|
import os
|
|
|
|
|
from os.path import join as pjoin
|
|
|
|
|
|
|
|
|
|
from jupyter_core.application import base_aliases, base_flags
|
|
|
|
|
from jupyter_core.application import base_aliases
|
|
|
|
|
from jupyter_server.serverapp import flags
|
|
|
|
|
from jupyter_server.base.handlers import JupyterHandler
|
|
|
|
|
from jupyter_server.extension.handler import (
|
|
|
|
|
ExtensionHandlerMixin,
|
|
|
|
|
@ -33,11 +34,12 @@ class RetroHandler(ExtensionHandlerJinjaMixin, ExtensionHandlerMixin, JupyterHan
|
|
|
|
|
page_config = {
|
|
|
|
|
"appVersion": version,
|
|
|
|
|
"baseUrl": self.base_url,
|
|
|
|
|
"terminalsAvailable": self.settings.get('terminals_available', False),
|
|
|
|
|
"terminalsAvailable": self.settings.get("terminals_available", False),
|
|
|
|
|
"token": self.settings["token"],
|
|
|
|
|
"fullStaticUrl": ujoin(self.base_url, "static", self.name),
|
|
|
|
|
"frontendUrl": ujoin(self.base_url, "retro/"),
|
|
|
|
|
"collaborative": app.collaborative,
|
|
|
|
|
"retroLogo": app.retro_logo,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mathjax_config = self.settings.get("mathjax_config", "TeX-AMS_HTML-full,Safe")
|
|
|
|
|
@ -103,6 +105,12 @@ class RetroNotebookHandler(RetroHandler):
|
|
|
|
|
return self.write(tpl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
aliases = dict(base_aliases)
|
|
|
|
|
aliases.update({
|
|
|
|
|
"retro-logo": "RetroApp.retro_logo"
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RetroApp(NBClassicConfigShimMixin, LabServerApp):
|
|
|
|
|
name = "retro"
|
|
|
|
|
app_name = "RetroLab"
|
|
|
|
|
@ -122,20 +130,26 @@ class RetroApp(NBClassicConfigShimMixin, LabServerApp):
|
|
|
|
|
collaborative = Bool(
|
|
|
|
|
False, config=True, help="Whether to enable collaborative mode."
|
|
|
|
|
)
|
|
|
|
|
retro_logo = Bool(
|
|
|
|
|
False, config=True, help="Whether to use the RetroLab inline logo."
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
aliases = dict(base_aliases)
|
|
|
|
|
flags = dict(base_flags)
|
|
|
|
|
flags = flags
|
|
|
|
|
flags["collaborative"] = (
|
|
|
|
|
{"RetroApp": {"collaborative": True}},
|
|
|
|
|
"Whether to enable collaborative mode.",
|
|
|
|
|
)
|
|
|
|
|
flags["retro-logo"] = (
|
|
|
|
|
{"RetroApp": {"retro_logo": True}},
|
|
|
|
|
"Whether to use the RetroLab inline logo",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def initialize_handlers(self):
|
|
|
|
|
self.handlers.append(
|
|
|
|
|
(
|
|
|
|
|
rf"/{self.file_url_prefix}/((?!.*\.ipynb($|\?)).*)",
|
|
|
|
|
web.RedirectHandler,
|
|
|
|
|
{"url": "/retro/edit/{0}"}
|
|
|
|
|
{"url": "/retro/edit/{0}"},
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
self.handlers.append(("/retro/tree(.*)", RetroTreeHandler))
|
|
|
|
|
|