diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index fd804cfe..9403bc06 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -1261,7 +1261,12 @@ class Server(object): # JS js_filters = ["sourcemap_remove", "js_delimiter_bundler"] - js_plugin_filters = ["sourcemap_remove", "js_delimiter_bundler"] # TODO: replace with IIFE wrapper again, see #2200 + + if self._settings.getBoolean(["feature", "legacyPluginAssets"]): + # TODO remove again in 1.3.8 + js_plugin_filters = ["sourcemap_remove", "js_delimiter_bundler"] + else: + js_plugin_filters = ["sourcemap_remove", "js_plugin_delimiter_bundler"] js_libs_bundle = Bundle(*js_libs, output="webassets/packed_libs.js", filters=",".join(js_filters)) diff --git a/src/octoprint/server/api/settings.py b/src/octoprint/server/api/settings.py index 64aefe22..591ff274 100644 --- a/src/octoprint/server/api/settings.py +++ b/src/octoprint/server/api/settings.py @@ -130,7 +130,8 @@ def getSettings(): "firmwareDetection": s.getBoolean(["feature", "firmwareDetection"]), "printCancelConfirmation": s.getBoolean(["feature", "printCancelConfirmation"]), "blockWhileDwelling": s.getBoolean(["feature", "blockWhileDwelling"]), - "g90InfluencesExtruder": s.getBoolean(["feature", "g90InfluencesExtruder"]) + "g90InfluencesExtruder": s.getBoolean(["feature", "g90InfluencesExtruder"]), + "legacyPluginAssets": s.getBoolean(["feature", "legacyPluginAssets"]) }, "serial": { "port": connectionOptions["portPreference"], @@ -358,6 +359,7 @@ def _saveSettings(data): if "printCancelConfirmation" in data["feature"]: s.setBoolean(["feature", "printCancelConfirmation"], data["feature"]["printCancelConfirmation"]) if "blockWhileDwelling" in data["feature"]: s.setBoolean(["feature", "blockWhileDwelling"], data["feature"]["blockWhileDwelling"]) if "g90InfluencesExtruder" in data["feature"]: s.setBoolean(["feature", "g90InfluencesExtruder"], data["feature"]["g90InfluencesExtruder"]) + if "legacyPluginAssets" in data["feature"]: s.setBoolean(["feature", "legacyPluginAssets"], data["feature"]["legacyPluginAssets"]) if "serial" in data.keys(): if "autoconnect" in data["serial"]: s.setBoolean(["serial", "autoconnect"], data["serial"]["autoconnect"]) diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index 9ffb7d4c..97bc531b 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -33,7 +33,9 @@ import uuid import copy import time +# noinspection PyCompatibility from builtins import bytes +# noinspection PyCompatibility from past.builtins import basestring try: @@ -223,7 +225,8 @@ default_settings = { "firmwareDetection": True, "printCancelConfirmation": True, "blockWhileDwelling": False, - "g90InfluencesExtruder": False + "g90InfluencesExtruder": False, + "legacyPluginAssets": False # TODO remove again in 1.3.8 }, "folder": { "uploads": None, diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js index 7165d779..b2986ff6 100644 --- a/src/octoprint/static/js/app/viewmodels/settings.js +++ b/src/octoprint/static/js/app/viewmodels/settings.js @@ -150,6 +150,7 @@ $(function() { self.feature_printCancelConfirmation = ko.observable(undefined); self.feature_blockWhileDwelling = ko.observable(undefined); self.feature_g90InfluencesExtruder = ko.observable(undefined); + self.feature_legacyPluginAssets = ko.observable(undefined); self.serial_port = ko.observable(); self.serial_baudrate = ko.observable(); diff --git a/src/octoprint/templates/dialogs/settings/features.jinja2 b/src/octoprint/templates/dialogs/settings/features.jinja2 index ab126489..7582a481 100644 --- a/src/octoprint/templates/dialogs/settings/features.jinja2 +++ b/src/octoprint/templates/dialogs/settings/features.jinja2 @@ -1,4 +1,18 @@