diff --git a/src/octoprint/plugins/svgtogcode/__init__.py b/src/octoprint/plugins/svgtogcode/__init__.py
index 61ed595d..303de48e 100644
--- a/src/octoprint/plugins/svgtogcode/__init__.py
+++ b/src/octoprint/plugins/svgtogcode/__init__.py
@@ -29,6 +29,36 @@ from .profile import Profile
blueprint = flask.Blueprint("plugin.svgtogcode", __name__)
+@blueprint.route("/discovery.xml", methods=["GET"])
+def discovery(self):
+ self._logger.debug("Rendering discovery.xml")
+
+ modelName = self._settings.get(["model", "name"])
+ if not modelName:
+ import octoprint.server
+ modelName = "0.1"
+
+ vendor = self._settings.get(["model", "vendor"])
+ vendorUrl = self._settings.get(["model", "vendorUrl"])
+ if not vendor:
+ vendor = "The Mr Beam Project"
+ vendorUrl = "http://www.mr-beam.org/"
+
+ response = flask.make_response(flask.render_template("svgtogcode.xml.jinja2",
+ friendlyName=self.get_instance_name(),
+ manufacturer=vendor,
+ manufacturerUrl=vendorUrl,
+ modelName=modelName,
+ modelDescription=self._settings.get(["model", "description"]),
+ modelNumber=self._settings.get(["model", "number"]),
+ modelUrl=self._settings.get(["model", "url"]),
+ serialNumber=self._settings.get(["model", "serial"]),
+ uuid=self.get_uuid(),
+ presentationUrl=flask.url_for("index", _external=True)))
+ response.headers['Content-Type'] = 'application/xml'
+ return response
+
+
@blueprint.route("/import", methods=["POST"])
def importSvgToGcodeProfile():
import datetime
diff --git a/src/octoprint/plugins/svgtogcode/templates/svgtogcode.xml.jinja2 b/src/octoprint/plugins/svgtogcode/templates/svgtogcode.xml.jinja2
new file mode 100644
index 00000000..413c84f7
--- /dev/null
+++ b/src/octoprint/plugins/svgtogcode/templates/svgtogcode.xml.jinja2
@@ -0,0 +1,22 @@
+
+
+
+ 1
+ 0
+
+
+ urn:schemas-upnp-org:device:Basic:1
+ {{ friendlyName }}
+ {{ manufacturer }}
+ {% if manufacturerUrl %}{{ manufacturerUrl }}{% endif %}
+ {{ modelName }}
+ {% if modelDescription %}{{ modelDescription }}{% endif %}
+ {% if modelNumber %}{{ modelNumber }}{% endif %}
+ {% if modelUrl %}{{ modelUrl }}{% endif %}
+ {% if serialNumber %}{{ serialNumber }}{% endif %}
+ uuid:{{ uuid }}
+
+
+ {{ presentationUrl }}
+
+
\ No newline at end of file
diff --git a/src/octoprint/printer/standard.py b/src/octoprint/printer/standard.py
index 83da09e4..0d2ebc57 100644
--- a/src/octoprint/printer/standard.py
+++ b/src/octoprint/printer/standard.py
@@ -146,7 +146,6 @@ class Printer(PrinterInterface, comm.MachineComPrintCallback):
except: self._logger.exception("Exception while adding printer message")
def _sendCurrentDataCallbacks(self, data):
- print("current Data callback", self._callbacks)
for callback in self._callbacks:
try: callback.on_printer_send_current_data(copy.deepcopy(data))
except: self._logger.exception("Exception while pushing current data")
diff --git a/src/octoprint/server/views.py b/src/octoprint/server/views.py
index 1bd59886..f0bc70d9 100644
--- a/src/octoprint/server/views.py
+++ b/src/octoprint/server/views.py
@@ -129,24 +129,24 @@ def index():
# settings dialog
templates["settings"]["entries"] = dict(
- section_printer=(gettext("Printer"), None),
+ #section_printer=(gettext("Printer"), None),
serial=(gettext("Serial Connection"), dict(template="dialogs/settings/serialconnection.jinja2", _div="settings_serialConnection", custom_bindings=False)),
- printerprofiles=(gettext("Printer Profiles"), dict(template="dialogs/settings/printerprofiles.jinja2", _div="settings_printerProfiles", custom_bindings=False)),
- temperatures=(gettext("Temperatures"), dict(template="dialogs/settings/temperatures.jinja2", _div="settings_temperature", custom_bindings=False)),
+ #printerprofiles=(gettext("Printer Profiles"), dict(template="dialogs/settings/printerprofiles.jinja2", _div="settings_printerProfiles", custom_bindings=False)),
+ #temperatures=(gettext("Temperatures"), dict(template="dialogs/settings/temperatures.jinja2", _div="settings_temperature", custom_bindings=False)),
terminalfilters=(gettext("Terminal Filters"), dict(template="dialogs/settings/terminalfilters.jinja2", _div="settings_terminalFilters", custom_bindings=False)),
- gcodescripts=(gettext("GCODE Scripts"), dict(template="dialogs/settings/gcodescripts.jinja2", _div="settings_gcodeScripts", custom_bindings=False)),
+ #gcodescripts=(gettext("GCODE Scripts"), dict(template="dialogs/settings/gcodescripts.jinja2", _div="settings_gcodeScripts", custom_bindings=False)),
- section_features=(gettext("Features"), None),
+ #section_features=(gettext("Features"), None),
- features=(gettext("Features"), dict(template="dialogs/settings/features.jinja2", _div="settings_features", custom_bindings=False)),
- webcam=(gettext("Webcam"), dict(template="dialogs/settings/webcam.jinja2", _div="settings_webcam", custom_bindings=False)),
- api=(gettext("API"), dict(template="dialogs/settings/api.jinja2", _div="settings_api", custom_bindings=False)),
+ #features=(gettext("Features"), dict(template="dialogs/settings/features.jinja2", _div="settings_features", custom_bindings=False)),
+ #webcam=(gettext("Webcam"), dict(template="dialogs/settings/webcam.jinja2", _div="settings_webcam", custom_bindings=False)),
+ #api=(gettext("API"), dict(template="dialogs/settings/api.jinja2", _div="settings_api", custom_bindings=False)),
- section_octoprint=(gettext("OctoPrint"), None),
+ #section_octoprint=(gettext("OctoPrint"), None),
- folders=(gettext("Folders"), dict(template="dialogs/settings/folders.jinja2", _div="settings_folders", custom_bindings=False)),
- appearance=(gettext("Appearance"), dict(template="dialogs/settings/appearance.jinja2", _div="settings_appearance", custom_bindings=False)),
+ #folders=(gettext("Folders"), dict(template="dialogs/settings/folders.jinja2", _div="settings_folders", custom_bindings=False)),
+ #appearance=(gettext("Appearance"), dict(template="dialogs/settings/appearance.jinja2", _div="settings_appearance", custom_bindings=False)),
logs=(gettext("Logs"), dict(template="dialogs/settings/logs.jinja2", _div="settings_logs")),
)
if enable_accesscontrol:
@@ -166,7 +166,12 @@ def index():
plugin_vars = dict()
plugin_names = set()
+ plugins_with_hidden_settings = ['pluginmanager']
for implementation in template_plugins:
+ print('plugin ', implementation._identifier)
+ if(implementation._identifier in plugins_with_hidden_settings):
+ print("blocked")
+ continue
name = implementation._identifier
plugin_names.add(name)
diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js
index d204d794..255fa6de 100644
--- a/src/octoprint/static/js/app/viewmodels/settings.js
+++ b/src/octoprint/static/js/app/viewmodels/settings.js
@@ -1,204 +1,9 @@
-//<<<<<<< HEAD
-//function SettingsViewModel(loginStateViewModel, usersViewModel, printerProfilesViewModel) {
-// var self = this;
-//
-// self.savetimer = undefined;
-// self.loginState = loginStateViewModel;
-// self.users = usersViewModel;
-// self.printerProfiles = printerProfilesViewModel;
-//
-// self.api_enabled = ko.observable(undefined);
-// self.api_key = ko.observable(undefined);
-// self.api_allowCrossOrigin = ko.observable(undefined);
-//
-// self.appearance_name = ko.observable(undefined);
-// self.appearance_color = ko.observable(undefined);
-//
-// self.appearance_available_colors = ko.observable([
-// {key: "default", name: gettext("default")},
-// {key: "red", name: gettext("red")},
-// {key: "orange", name: gettext("orange")},
-// {key: "yellow", name: gettext("yellow")},
-// {key: "green", name: gettext("green")},
-// {key: "blue", name: gettext("blue")},
-// {key: "violet", name: gettext("violet")},
-// {key: "black", name: gettext("black")}
-// ]);
-//
-// self.appearance_colorName = function(color) {
-// switch (color) {
-// case "red":
-// return gettext("red");
-// case "orange":
-// return gettext("orange");
-// case "yellow":
-// return gettext("yellow");
-// case "green":
-// return gettext("green");
-// case "blue":
-// return gettext("blue");
-// case "violet":
-// return gettext("violet");
-// case "black":
-// return gettext("black");
-// case "default":
-// return gettext("default");
-// default:
-// return color;
-// }
-// };
-//
-// self.printer_defaultExtrusionLength = ko.observable(undefined);
-//
-// self.webcam_streamUrl = ko.observable(undefined);
-// self.webcam_snapshotUrl = ko.observable(undefined);
-// self.webcam_ffmpegPath = ko.observable(undefined);
-// self.webcam_bitrate = ko.observable(undefined);
-// self.webcam_watermark = ko.observable(undefined);
-// self.webcam_flipH = ko.observable(undefined);
-// self.webcam_flipV = ko.observable(undefined);
-//
-// self.feature_gcodeViewer = ko.observable(undefined);
-// self.feature_temperatureGraph = ko.observable(undefined);
-// self.feature_waitForStart = ko.observable(undefined);
-// self.feature_alwaysSendChecksum = ko.observable(undefined);
-// self.feature_sdSupport = ko.observable(undefined);
-// self.feature_sdAlwaysAvailable = ko.observable(undefined);
-// self.feature_swallowOkAfterResend = ko.observable(undefined);
-// self.feature_repetierTargetTemp = ko.observable(undefined);
-// self.feature_keyboardControl = ko.observable(undefined);
-//
-// self.serial_port = ko.observable();
-// self.serial_baudrate = ko.observable();
-// self.serial_portOptions = ko.observableArray([]);
-// self.serial_baudrateOptions = ko.observableArray([]);
-// self.serial_autoconnect = ko.observable(undefined);
-// self.serial_timeoutConnection = ko.observable(undefined);
-// self.serial_timeoutDetection = ko.observable(undefined);
-// self.serial_timeoutCommunication = ko.observable(undefined);
-// self.serial_timeoutTemperature = ko.observable(undefined);
-// self.serial_timeoutSdStatus = ko.observable(undefined);
-// self.serial_log = ko.observable(undefined);
-//
-// self.folder_uploads = ko.observable(undefined);
-// self.folder_timelapse = ko.observable(undefined);
-// self.folder_timelapseTmp = ko.observable(undefined);
-// self.folder_logs = ko.observable(undefined);
-// self.folder_watched = ko.observable(undefined);
-//
-// self.cura_enabled = ko.observable(undefined);
-// self.cura_path = ko.observable(undefined);
-// self.cura_config = ko.observable(undefined);
-//
-// self.temperature_profiles = ko.observableArray(undefined);
-//
-// self.system_actions = ko.observableArray([]);
-//
-// self.terminalFilters = ko.observableArray([]);
-//
-// self.settings = undefined;
-//
-// self.addTemperatureProfile = function() {
-// self.temperature_profiles.push({name: "New", extruder:0, bed:0});
-// };
-//
-// self.removeTemperatureProfile = function(profile) {
-// self.temperature_profiles.remove(profile);
-// };
-//
-// self.addTerminalFilter = function() {
-// self.terminalFilters.push({name: "New", regex: "(Send: \?)|(Recv: ok)"})
-// };
-//
-// self.removeTerminalFilter = function(filter) {
-// self.terminalFilters.remove(filter);
-// self.saveall();
-// };
-//
-// self.onSettingsShown = function() {
-// self.requestData();
-// };
-//
-//
-// self.requestData = function(callback) {
-// $.ajax({
-// url: API_BASEURL + "settings",
-// type: "GET",
-// dataType: "json",
-// success: function(response) {
-// self.fromResponse(response);
-// if (callback) callback();
-// }
-// });
-// };
-//
-// self.fromResponse = function(response) {
-// if (self.settings === undefined) {
-// self.settings = ko.mapping.fromJS(response);
-// } else {
-// ko.mapping.fromJS(response, self.settings);
-// }
-// self.api_enabled(response.api.enabled);
-// self.api_key(response.api.key);
-// self.api_allowCrossOrigin(response.api.allowCrossOrigin);
-//
-// self.appearance_name(response.appearance.name);
-// self.appearance_color(response.appearance.color);
-//
-// self.printer_defaultExtrusionLength(response.printer.defaultExtrusionLength);
-//
-// self.webcam_streamUrl(response.webcam.streamUrl);
-// self.webcam_snapshotUrl(response.webcam.snapshotUrl);
-// self.webcam_ffmpegPath(response.webcam.ffmpegPath);
-// self.webcam_bitrate(response.webcam.bitrate);
-// self.webcam_watermark(response.webcam.watermark);
-// self.webcam_flipH(response.webcam.flipH);
-// self.webcam_flipV(response.webcam.flipV);
-//
-// self.feature_gcodeViewer(response.feature.gcodeViewer);
-// self.feature_temperatureGraph(response.feature.temperatureGraph);
-// self.feature_waitForStart(response.feature.waitForStart);
-// self.feature_alwaysSendChecksum(response.feature.alwaysSendChecksum);
-// self.feature_sdSupport(response.feature.sdSupport);
-// self.feature_sdAlwaysAvailable(response.feature.sdAlwaysAvailable);
-// self.feature_swallowOkAfterResend(response.feature.swallowOkAfterResend);
-// self.feature_repetierTargetTemp(response.feature.repetierTargetTemp);
-// self.feature_keyboardControl(response.feature.keyboardControl);
-//
-// self.serial_port(response.serial.port);
-// self.serial_baudrate(response.serial.baudrate);
-// self.serial_portOptions(response.serial.portOptions);
-// self.serial_baudrateOptions(response.serial.baudrateOptions);
-// self.serial_autoconnect(response.serial.autoconnect);
-// self.serial_timeoutConnection(response.serial.timeoutConnection);
-// self.serial_timeoutDetection(response.serial.timeoutDetection);
-// self.serial_timeoutCommunication(response.serial.timeoutCommunication);
-// self.serial_timeoutTemperature(response.serial.timeoutTemperature);
-// self.serial_timeoutSdStatus(response.serial.timeoutSdStatus);
-// self.serial_log(response.serial.log);
-//
-// self.folder_uploads(response.folder.uploads);
-// self.folder_timelapse(response.folder.timelapse);
-// self.folder_timelapseTmp(response.folder.timelapseTmp);
-// self.folder_logs(response.folder.logs);
-// self.folder_watched(response.folder.watched);
-//
-// self.cura_enabled(response.cura.enabled);
-// self.cura_path(response.cura.path);
-// self.cura_config(response.cura.config);
-//
-// self.temperature_profiles(response.temperature.profiles);
-//
-// self.system_actions(response.system.actions);
-// self.terminalFilters(response.terminalFilters);
-// };
-//
-
-//=======
$(function() {
function SettingsViewModel(parameters) {
var self = this;
+
+ self.savetimer = undefined;
self.loginState = parameters[0];
self.users = parameters[1];
@@ -237,7 +42,6 @@ $(function() {
if (a["locale"].toLocaleLowerCase() > b["locale"].toLocaleLowerCase()) return 1;
return 0;
}
-//>>>>>>> upstream/maintenance
},
{},
"locale",
@@ -356,12 +160,13 @@ $(function() {
self.temperature_profiles.remove(profile);
};
- self.addTerminalFilter = function() {
- self.terminalFilters.push({name: "New", regex: "(Send: M105)|(Recv: ok T:)"})
- };
+ self.addTerminalFilter = function() {
+ self.terminalFilters.push({name: "New", regex: "(Send: \?)|(Recv: ok)"});
+ };
- self.removeTerminalFilter = function(filter) {
+ self.removeTerminalFilter = function(filter) {
self.terminalFilters.remove(filter);
+ self.saveall();
};
self.onSettingsShown = function() {
@@ -524,29 +329,6 @@ $(function() {
});
-//<<<<<<< HEAD
-// self.saveData = function() {
-//
-// var data = self.collectData();
-//
-// $.ajax({
-// url: API_BASEURL + "settings",
-// type: "POST",
-// dataType: "json",
-// contentType: "application/json; charset=UTF-8",
-// data: JSON.stringify(data),
-// success: function(response) {
-// self.fromResponse(response);
-//// $("#settings_dialog").modal("hide");
-//// $("#settings_save_btn").attr("disabled", "disabled");
-// $("#settings_save_btn").css("visibility", "hidden");
-//
-// }
-// });
-// };
-//
-
-//=======
self.deleteLanguagePack = function(locale, pack) {
$.ajax({
url: API_BASEURL + "languages/" + locale + "/" + pack,
@@ -558,12 +340,11 @@ $(function() {
})
};
- self.fromResponse = function(response) {
+ self.fromResponse = function(response) {
if (self.settings === undefined) {
self.settings = ko.mapping.fromJS(response);
} else {
ko.mapping.fromJS(response, self.settings);
-//>>>>>>> upstream/maintenance
}
self.api_enabled(response.api.enabled);
@@ -579,7 +360,6 @@ $(function() {
}
self.printer_defaultExtrusionLength(response.printer.defaultExtrusionLength);
-
self.webcam_streamUrl(response.webcam.streamUrl);
self.webcam_snapshotUrl(response.webcam.snapshotUrl);
self.webcam_ffmpegPath(response.webcam.ffmpegPath);
@@ -590,7 +370,7 @@ $(function() {
self.webcam_flipV(response.webcam.flipV);
self.webcam_rotate90(response.webcam.rotate90);
- self.feature_gcodeViewer(response.feature.gcodeViewer);
+ self.feature_gcodeViewer(response.feature.gcodeViewer);
self.feature_temperatureGraph(response.feature.temperatureGraph);
self.feature_waitForStart(response.feature.waitForStart);
self.feature_alwaysSendChecksum(response.feature.alwaysSendChecksum);
@@ -747,9 +527,7 @@ $(function() {
};
self.instantSaveData = function() {
-
var data = self.collectData();
-
$.ajax({
url: API_BASEURL + "settings",
type: "POST",
@@ -766,7 +544,23 @@ $(function() {
}
});
};
-
+
+ self.saveData = function() {
+ var data = self.collectData();
+ $.ajax({
+ url: API_BASEURL + "settings",
+ type: "POST",
+ dataType: "json",
+ contentType: "application/json; charset=UTF-8",
+ data: JSON.stringify(data),
+ success: function(response) {
+ self.fromResponse(response);
+ // $("#settings_dialog").modal("hide");
+ // $("#settings_save_btn").attr("disabled", "disabled");
+ $("#settings_save_btn").css("visibility", "hidden");
+ }
+ });
+ };
self.collectData = function (){
var data = ko.mapping.toJS(self.settings);
diff --git a/src/octoprint/templates/dialogs/settings/serialconnection.jinja2 b/src/octoprint/templates/dialogs/settings/serialconnection.jinja2
index a748cb24..4a6a979e 100644
--- a/src/octoprint/templates/dialogs/settings/serialconnection.jinja2
+++ b/src/octoprint/templates/dialogs/settings/serialconnection.jinja2
@@ -18,12 +18,13 @@
+
+
s
@@ -38,6 +39,7 @@
+-->
@@ -73,6 +75,7 @@
+