diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js index 51fcc79a..fdf930ac 100644 --- a/src/octoprint/static/js/app/viewmodels/settings.js +++ b/src/octoprint/static/js/app/viewmodels/settings.js @@ -185,6 +185,74 @@ $(function() { self.terminalFilters.remove(filter); }; + self.testWebcamStreamUrl = function() { + if (!self.webcam_streamUrl()) { + return; + } + + var text = gettext("If you see your webcam stream below, the entered stream URL is ok."); + showMessageDialog({ + title: gettext("Stream test"), + message: '

' + text + '

' + }); + }; + + self.testWebcamSnapshotUrl = function(viewModel, event) { + if (!self.webcam_snapshotUrl()) { + return; + } + + var target = $(event.target); + target.prepend(' '); + + var errorText = gettext("Could not retrieve snapshot URL, please double check the URL"); + var errorTitle = gettext("Snapshot test failed"); + $.ajax({ + url: API_BASEURL + "util/test", + type: "POST", + dataType: "json", + data: JSON.stringify({ + command: "url", + url: self.webcam_snapshotUrl(), + method: "GET", + response: true + }), + contentType: "application/json; charset=UTF-8", + success: function(response) { + $("i.icon-spinner", target).remove(); + + if (!response.result) { + showMessageDialog({ + title: errorTitle, + message: errorText + }); + return; + } + + var content = response.response.content; + var mimeType = "image/jpeg"; + + var headers = response.response.headers; + if (headers && headers["mime-type"]) { + mimeType = headers["mime-type"]; + } + + var text = gettext("If you see your webcam snapshot picture below, the entered snapshot URL is ok."); + showMessageDialog({ + title: gettext("Snapshot test"), + message: $('

' + text + '

') + }); + }, + error: function() { + $("i.icon-spinner", target).remove(); + showMessageDialog({ + title: errorTitle, + message: errorText + }); + } + }); + }; + self.onSettingsShown = function() { self.requestData(); }; diff --git a/src/octoprint/templates/dialogs/_snippets/configurewebcamurls.jinja2 b/src/octoprint/templates/dialogs/_snippets/configurewebcamurls.jinja2 new file mode 100644 index 00000000..ab963a11 --- /dev/null +++ b/src/octoprint/templates/dialogs/_snippets/configurewebcamurls.jinja2 @@ -0,0 +1,18 @@ +
+ +
+
+ + +
+
+
+
+ +
+
+ + +
+
+
diff --git a/src/octoprint/templates/dialogs/settings/webcam.jinja2 b/src/octoprint/templates/dialogs/settings/webcam.jinja2 index 3631a00d..d39b69f0 100644 --- a/src/octoprint/templates/dialogs/settings/webcam.jinja2 +++ b/src/octoprint/templates/dialogs/settings/webcam.jinja2 @@ -1,16 +1,5 @@
-
- -
- -
-
-
- -
- -
-
+ {% include "dialogs/_snippets/configurewebcamurls.jinja2" %}