fixes #43
This commit is contained in:
parent
ed82f46f57
commit
9ab6650b07
1 changed files with 1 additions and 275 deletions
|
|
@ -72,281 +72,8 @@ BRANCH = versions['branch'] if 'branch' in versions else None
|
|||
DISPLAY_VERSION = "%s (%s branch)" % (VERSION, BRANCH) if BRANCH else VERSION
|
||||
del versions
|
||||
|
||||
#<<<<<<< HEAD ### moved to views.py
|
||||
#
|
||||
#def get_available_locale_identifiers(locales):
|
||||
# result = set()
|
||||
#
|
||||
# # add available translations
|
||||
# for locale in locales:
|
||||
# result.add(locale.language)
|
||||
# if locale.territory:
|
||||
# # if a territory is specified, add that too
|
||||
# result.add("%s_%s" % (locale.language, locale.territory))
|
||||
#
|
||||
# return result
|
||||
#
|
||||
#
|
||||
#LOCALES = [Locale.parse("en")] + babel.list_translations()
|
||||
#LANGUAGES = get_available_locale_identifiers(LOCALES)
|
||||
#
|
||||
#
|
||||
#@app.before_request
|
||||
#def before_request():
|
||||
# g.locale = get_locale()
|
||||
#
|
||||
#
|
||||
#@babel.localeselector
|
||||
#def get_locale():
|
||||
# if "l10n" in request.values:
|
||||
# return Locale.negotiate([request.values["l10n"]], LANGUAGES)
|
||||
# return request.accept_languages.best_match(LANGUAGES)
|
||||
#
|
||||
#
|
||||
#@app.route("/")
|
||||
#def index():
|
||||
#
|
||||
#
|
||||
#
|
||||
# #~~ extract data from asset plugins
|
||||
#
|
||||
# asset_plugins = pluginManager.get_implementations(octoprint.plugin.AssetPlugin)
|
||||
# asset_plugin_urls = dict()
|
||||
# for name, implementation in asset_plugins.items():
|
||||
# asset_plugin_urls[name] = implementation.get_assets()
|
||||
#
|
||||
# #~~ extract data from template plugins
|
||||
#
|
||||
# template_plugins = pluginManager.get_implementations(octoprint.plugin.TemplatePlugin)
|
||||
# template_plugin_names = list()
|
||||
#
|
||||
#
|
||||
#
|
||||
# # rules for transforming template configs to template entries
|
||||
# rules = dict(
|
||||
# navbar=dict(div=lambda x: "navbar_plugin_" + x, template=lambda x: x + "_navbar.jinja2", to_entry=lambda data: data),
|
||||
# sidebar=dict(div=lambda x: "sidebar_plugin_" + x, template=lambda x: x + "_sidebar.jinja2", to_entry=lambda data: (data["name"], data)),
|
||||
# tab=dict(div=lambda x: "tab_plugin_" + x, template=lambda x: x + "_tab.jinja2", to_entry=lambda data: (data["name"], data)),
|
||||
# settings=dict(div=lambda x: "settings_plugin_" + x, template=lambda x: x + "_settings.jinja2", to_entry=lambda data: (data["name"], data)),
|
||||
# generic=dict(template=lambda x: x + ".jinja2", to_entry=lambda data: data)
|
||||
# )
|
||||
#
|
||||
# plugin_vars = dict()
|
||||
# plugin_includes_navbar = []
|
||||
# plugin_includes_sidebar = []
|
||||
# plugin_includes_tabs = []
|
||||
# plugin_includes_settings = []
|
||||
# plugin_includes_generic = []
|
||||
# plugin_names = template_plugins.keys()
|
||||
# for name, implementation in template_plugins.items():
|
||||
# vars = implementation.get_template_vars()
|
||||
# if not isinstance(vars, dict):
|
||||
# vars = dict()
|
||||
#
|
||||
# for var_name, var_value in vars.items():
|
||||
# plugin_vars["plugin_" + name + "_" + var_name] = var_value
|
||||
#
|
||||
# configs = implementation.get_template_configs()
|
||||
# if not isinstance(configs, (list, tuple)):
|
||||
# configs = []
|
||||
#
|
||||
# includes = _process_template_configs(name, implementation, configs, rules)
|
||||
#
|
||||
# plugin_includes_navbar += includes["navbar"]
|
||||
# plugin_includes_sidebar += includes["sidebar"]
|
||||
# plugin_includes_tabs += includes["tab"]
|
||||
# plugin_includes_settings += includes["settings"]
|
||||
# plugin_includes_generic += includes["generic"]
|
||||
#
|
||||
# #~~ navbar
|
||||
#
|
||||
# navbar_entries = plugin_includes_navbar + [
|
||||
# dict(template="navbar/settings.jinja2", _div="navbar_settings", styles=["display: none"], data_bind="visible: loginState.isAdmin", custom_bindings=False),
|
||||
# dict(template="navbar/systemmenu.jinja2", _div="navbar_systemmenu", styles=["display: none"], classes=["dropdown"], data_bind="visible: loginState.isAdmin", custom_bindings=False),
|
||||
# dict(template="navbar/login.jinja2", _div="navbar_login", classes=["dropdown"], custom_bindings=False)
|
||||
# ]
|
||||
#
|
||||
# #~~ sidebar
|
||||
#
|
||||
# sidebar_entries = [
|
||||
# (gettext("Connection"), dict(template="sidebar/connection.jinja2", _div="connection", icon="signal", styles_wrapper=["display: none"], data_bind="visible: loginState.isAdmin")),
|
||||
# (gettext("State"), dict(template="sidebar/state.jinja2", _div="state", icon="info-sign")),
|
||||
# (gettext("Files"), dict(template="sidebar/files.jinja2", _div="files", icon="list", classes_content=["overflow_visible"], header_addon="sidebar/files_header.jinja2"))
|
||||
# ] + plugin_includes_sidebar
|
||||
#
|
||||
# #~~ tabs
|
||||
#
|
||||
# tab_entries = [
|
||||
# (gettext("Temperature"), dict(template="tabs/temperature.jinja2", _div="temp")),
|
||||
# (gettext("Control"), dict(template="tabs/control.jinja2", _div="control")),
|
||||
# (gettext("GCode Viewer"), dict(template="tabs/gcodeviewer.jinja2", _div="gcode")),
|
||||
# (gettext("Terminal"), dict(template="tabs/terminal.jinja2", _div="term")),
|
||||
# (gettext("Timelapse"), dict(template="tabs/timelapse.jinja2", _div="timelapse"))
|
||||
# ] + plugin_includes_tabs
|
||||
#
|
||||
# #~~ settings dialog
|
||||
#
|
||||
# settings_entries = [
|
||||
## (gettext("Printer"), None),
|
||||
# (gettext("Serial Connection"), dict(template="dialogs/settings/serialconnection.jinja2", _div="settings_serialConnection", custom_bindings=False)),
|
||||
## (gettext("Machine Profiles"), dict(template="dialogs/settings/printerprofiles.jinja2", _div="settings_printerProfiles", custom_bindings=False)),
|
||||
## (gettext("Temperatures"), dict(template="dialogs/settings/temperatures.jinja2", _div="settings_temperature", custom_bindings=False)),
|
||||
# (gettext("Terminal Filters"), dict(template="dialogs/settings/terminalfilters.jinja2", _div="settings_terminalFilters", custom_bindings=False)),
|
||||
## (gettext("Features"), None),
|
||||
# (gettext("Features"), dict(template="dialogs/settings/features.jinja2", _div="settings_features", custom_bindings=False)),
|
||||
# (gettext("Webcam"), dict(template="dialogs/settings/webcam.jinja2", _div="settings_webcam", custom_bindings=False)),
|
||||
# (gettext("Access Control"), dict(template="dialogs/settings/accesscontrol.jinja2", _div="settings_users", custom_bindings=False)),
|
||||
## (gettext("API"), dict(template="dialogs/settings/api.jinja2", _div="settings_api", custom_bindings=False)),
|
||||
## (gettext("OctoPrint"), None),
|
||||
## (gettext("Folders"), dict(template="dialogs/settings/folders.jinja2", _div="settings_folders", custom_bindings=False)),
|
||||
## (gettext("Appearance"), dict(template="dialogs/settings/appearance.jinja2", _div="settings_appearance", custom_bindings=False)),
|
||||
# (gettext("Logs"), dict(template="dialogs/settings/logs.jinja2", _div="settings_logs"))
|
||||
# ]
|
||||
# if len(plugin_includes_settings):
|
||||
# settings_entries.append((gettext("Plugins"), None))
|
||||
# settings_entries.extend(sorted(plugin_includes_settings, key=lambda x: x[0]))
|
||||
#
|
||||
# #~~ prepare full set of template vars for rendering
|
||||
#
|
||||
# render_kwargs = dict(
|
||||
# webcamStream=settings().get(["webcam", "stream"]),
|
||||
# hasZAxis=settings().get(["feature", "zaxis"]),
|
||||
# enableTimelapse=(settings().get(["webcam", "snapshot"]) is not None and settings().get(["webcam", "ffmpeg"]) is not None),
|
||||
# enableGCodeVisualizer=settings().get(["gcodeViewer", "enabled"]),
|
||||
# enableTemperatureGraph=settings().get(["feature", "temperatureGraph"]),
|
||||
# enableSystemMenu=settings().get(["system"]) is not None and settings().get(["system", "actions"]) is not None and len(settings().get(["system", "actions"])) > 0,
|
||||
# enableAccessControl=userManager is not None,
|
||||
# enableSdSupport=settings().get(["feature", "sdSupport"]),
|
||||
# firstRun=settings().getBoolean(["server", "firstRun"]) and (userManager is None or not userManager.hasBeenCustomized()),
|
||||
# debug=debug,
|
||||
# version=VERSION,
|
||||
# display_version=DISPLAY_VERSION,
|
||||
# stylesheet=settings().get(["devel", "stylesheet"]),
|
||||
# gcodeMobileThreshold=settings().get(["gcodeViewer", "mobileSizeThreshold"]),
|
||||
# gcodeThreshold=settings().get(["gcodeViewer", "sizeThreshold"]),
|
||||
# uiApiKey=UI_API_KEY,
|
||||
# navbarEntries=navbar_entries,
|
||||
# sidebarEntries=sidebar_entries,
|
||||
# tabEntries=tab_entries,
|
||||
# settingsEntries=settings_entries,
|
||||
# genericEntries=plugin_includes_generic,
|
||||
# pluginNames=plugin_names,
|
||||
# assetPlugins=asset_plugin_urls,
|
||||
# )
|
||||
# render_kwargs.update(plugin_vars)
|
||||
#
|
||||
# #~~ render!
|
||||
# root_template = "index.jinja2"
|
||||
#
|
||||
# for name in template_plugins.items():
|
||||
# template_plugin_names.append(name[0])
|
||||
# plugin_main_template = name[1].get_template_folder() + "/override_index.jinja2"
|
||||
# if (os.path.isfile(plugin_main_template)):
|
||||
# root_template = "override_index.jinja2"
|
||||
#
|
||||
# return render_template(
|
||||
# root_template,
|
||||
# **render_kwargs
|
||||
# )
|
||||
#
|
||||
#
|
||||
#def _process_template_configs(name, implementation, configs, rules):
|
||||
# from jinja2.exceptions import TemplateNotFound
|
||||
#
|
||||
# counters = dict(
|
||||
# navbar=1,
|
||||
# sidebar=1,
|
||||
# tab=1,
|
||||
# settings=1,
|
||||
# generic=1
|
||||
# )
|
||||
# includes = defaultdict(list)
|
||||
#
|
||||
# for config in configs:
|
||||
# if not isinstance(config, dict):
|
||||
# continue
|
||||
# if not "type" in config:
|
||||
# continue
|
||||
#
|
||||
# template_type = config["type"]
|
||||
# del config["type"]
|
||||
#
|
||||
# if not template_type in rules:
|
||||
# continue
|
||||
# rule = rules[template_type]
|
||||
# data = _process_template_config(name, implementation, rule, config=config, counter=counters[template_type])
|
||||
# if data is None:
|
||||
# continue
|
||||
#
|
||||
# includes[template_type].append(rule["to_entry"](data))
|
||||
# counters[template_type] += 1
|
||||
#
|
||||
# for template_type in rules:
|
||||
# if len(includes[template_type]) == 0:
|
||||
# # if no template of that type was added by the config, we'll try to use the default template name
|
||||
# rule = rules[template_type]
|
||||
# data = _process_template_config(name, implementation, rule)
|
||||
# if data is not None:
|
||||
# try:
|
||||
# app.jinja_env.get_or_select_template(data["template"])
|
||||
# except TemplateNotFound:
|
||||
# pass
|
||||
# else:
|
||||
# includes[template_type].append(rule["to_entry"](data))
|
||||
#
|
||||
# return includes
|
||||
#
|
||||
#def _process_template_config(name, implementation, rule, config=None, counter=1):
|
||||
# if "mandatory" in rule:
|
||||
# for mandatory in rule["mandatory"]:
|
||||
# if not mandatory in config:
|
||||
# return None
|
||||
#
|
||||
# if config is None:
|
||||
# config = dict()
|
||||
# data = dict(config)
|
||||
#
|
||||
# if "div" in rule:
|
||||
# data["_div"] = rule["div"](name)
|
||||
# if "suffix" in data:
|
||||
# data["_div"] += "_" + data["suffix"]
|
||||
# del data["suffix"]
|
||||
# elif counter > 1:
|
||||
# data["_div"] += "_%d" % counter
|
||||
# if not "template" in data:
|
||||
# data["template"] = rule["template"](name)
|
||||
# if not "name" in data:
|
||||
# data["name"] = implementation._plugin_name
|
||||
# if not "custom_bindings" in data or data["custom_bindings"]:
|
||||
# data_bind = "allowBindings: true"
|
||||
# if "data_bind" in data:
|
||||
# data_bind = data_bind + ", " + data["data_bind"]
|
||||
# data["data_bind"] = data_bind
|
||||
#
|
||||
# return data
|
||||
#
|
||||
#@app.route("/robots.txt")
|
||||
#def robotsTxt():
|
||||
# return send_from_directory(app.static_folder, "robots.txt")
|
||||
#
|
||||
#
|
||||
#@app.route("/plugin_assets/<string:name>/<path:filename>")
|
||||
#def plugin_assets(name, filename):
|
||||
# asset_plugins = pluginManager.get_implementations(octoprint.plugin.AssetPlugin)
|
||||
#
|
||||
# if not name in asset_plugins:
|
||||
# return make_response("Asset not found", 404)
|
||||
# asset_plugin = asset_plugins[name]
|
||||
# asset_folder = asset_plugin.get_asset_folder()
|
||||
# if asset_folder is None:
|
||||
# return make_response("Asset not found", 404)
|
||||
#
|
||||
# return send_from_directory(asset_folder, filename)
|
||||
#
|
||||
#=======
|
||||
LOCALES = []
|
||||
LANGUAGES = set()
|
||||
#>>>>>>> upstream/maintenance
|
||||
|
||||
@identity_loaded.connect_via(app)
|
||||
def on_identity_loaded(sender, identity):
|
||||
|
|
@ -606,7 +333,7 @@ class Server():
|
|||
(r"/downloads/files/local/(.*)", util.tornado.LargeResponseHandler, dict(path=s.getBaseFolder("uploads"), as_attachment=True, path_validation=util.tornado.path_validation_factory(lambda path: not os.path.basename(path).startswith("."), status_code=404))),
|
||||
(r"/downloads/logs/([^/]*)", util.tornado.LargeResponseHandler, dict(path=s.getBaseFolder("logs"), as_attachment=True, access_validation=util.tornado.access_validation_factory(app, loginManager, util.flask.admin_validator))),
|
||||
# serve instead of downloads for preview // as_attachment=False
|
||||
(r"/serve/files/local/([^/]*\.(gco|gcode|g|nc|svg|jpg|jpeg|png|gif|bmp|pcx|webp))", util.tornado.LargeResponseHandler, dict(path=s.getBaseFolder("uploads"), as_attachment=False)),
|
||||
(r"/serve/files/local/([^/]*\.((?i)gco|gcode|g|nc|svg|jpg|jpeg|png|gif|bmp|pcx|webp))", util.tornado.LargeResponseHandler, dict(path=s.getBaseFolder("uploads"), as_attachment=False)),
|
||||
# camera snapshot
|
||||
(r"/downloads/camera/current", util.tornado.UrlForwardHandler, dict(url=s.get(["webcam", "snapshot"]), as_attachment=True, access_validation=util.tornado.access_validation_factory(app, loginManager, util.flask.user_validator))),
|
||||
# generated webassets
|
||||
|
|
@ -636,7 +363,6 @@ class Server():
|
|||
server_routes.append((r".*", util.tornado.UploadStorageFallbackHandler, dict(fallback=util.tornado.WsgiInputContainer(app.wsgi_app), file_prefix="octoprint-file-upload-", file_suffix=".tmp", suffixes=upload_suffixes)))
|
||||
|
||||
self._tornado_app = Application(server_routes)
|
||||
#>>>>>>> upstream/maintenance
|
||||
max_body_sizes = [
|
||||
("POST", r"/api/files/([^/]*)", s.getInt(["server", "uploads", "maxSize"])),
|
||||
("POST", r"/api/languages", 5 * 1024 * 1024)
|
||||
|
|
|
|||
Loading…
Reference in a new issue