Test button for online connectivity check

As suggested by @ntoff.
This commit is contained in:
Gina Häußge 2017-10-18 17:12:21 +02:00
parent 9c3d7bbbc3
commit 0b95894da1
6 changed files with 42 additions and 2 deletions

View file

@ -24,6 +24,7 @@
<form class="form-horizontal" data-bind="with: settingsViewModel, enable: !setup(), css {disabled: setup()}">
{% include "snippets/settings/server/serverOnlineCheckHost.jinja2" %}
{% include "snippets/settings/server/serverOnlineCheckPort.jinja2" %}
{% include "snippets/settings/server/serverOnlineCheckTest.jinja2" %}
</form>
<p>{% trans %}

View file

@ -230,6 +230,15 @@ $(function() {
self.webcam_ffmpegPathBroken(false);
};
self.server_onlineCheckText = ko.observable();
self.server_onlineCheckOk = ko.observable(false);
self.server_onlineCheckBroken = ko.observable(false);
self.server_onlineCheckReset = function() {
self.server_onlineCheckText("");
self.server_onlineCheckOk(false);
self.server_onlineCheckBroken(false);
};
self.addTemperatureProfile = function() {
self.temperature_profiles.push({name: "New", extruder:0, bed:0});
};
@ -356,8 +365,31 @@ $(function() {
});
};
self.testOnlineConnectivityConfigBusy = ko.observable(false);
self.testOnlineConnectivityConfig = function() {
if (!self.server_onlineCheck_host()) return;
if (!self.server_onlineCheck_port()) return;
if (self.testOnlineConnectivityConfigBusy()) return;
self.testOnlineConnectivityConfigBusy(true);
OctoPrint.util.testServer(self.server_onlineCheck_host(), self.server_onlineCheck_port())
.done(function(response) {
if (!response.result) {
self.server_onlineCheckText(gettext("The server is not reachable"));
} else {
self.server_onlineCheckText(gettext("The server is reachable"));
}
self.server_onlineCheckOk(response.result);
self.server_onlineCheckBroken(!response.result);
})
.always(function() {
self.testOnlineConnectivityConfigBusy(false);
});
};
self.onSettingsHidden = function() {
self.webcam_ffmpegPathReset();
self.server_onlineCheckReset();
};
self.isDialogActive = function() {

View file

@ -15,4 +15,5 @@
{% include "snippets/settings/server/serverOnlineCheckInterval.jinja2" %}
{% include "snippets/settings/server/serverOnlineCheckHost.jinja2" %}
{% include "snippets/settings/server/serverOnlineCheckPort.jinja2" %}
{% include "snippets/settings/server/serverOnlineCheckTest.jinja2" %}
</div>

View file

@ -1,4 +1,4 @@
<div class="control-group" title="{{ _('Host against which to check for internet connectivity') }}">
<div class="control-group" title="{{ _('Host against which to check for internet connectivity') }}" data-bind="css: {error: server_onlineCheckBroken, success: server_onlineCheckOk}">
<label class="control-label" for="settings-serverOnlineCheckHost">{{ _('Host IP') }}</label>
<div class="controls">
<input type="text" class="input-small" data-bind="value: server_onlineCheck_host" id="settings-serverOnlineCheckHost">

View file

@ -1,4 +1,4 @@
<div class="control-group" title="{{ _('Port against which to check for internet connectivity') }}">
<div class="control-group" title="{{ _('Port against which to check for internet connectivity') }}" data-bind="css: {error: server_onlineCheckBroken, success: server_onlineCheckOk}">
<label class="control-label" for="settings-serverOnlineCheckHost">{{ _('Port') }}</label>
<div class="controls">
<input type="number" min="1" max="65535" step="1" class="input-small" data-bind="value: server_onlineCheck_port" id="settings-serverOnlineCheckPort">

View file

@ -0,0 +1,6 @@
<div class="control-group" title="{{ _('Test') }}" data-bind="css: {error: server_onlineCheckBroken, success: server_onlineCheckOk}">
<div class="controls">
<button class="btn" data-bind="click: testOnlineConnectivityConfig, enable: server_onlineCheck_host() && server_onlineCheck_port() && !testOnlineConnectivityConfigBusy(), css: {disabled: !server_onlineCheck_host() || !server_onlineCheck_port() || testOnlineConnectivityConfigBusy()}"><i class="fa fa-spinner fa-spin" data-bind="visible: testOnlineConnectivityConfigBusy"></i> {{ _('Test host & port') }}</button>
<span class="help-block" data-bind="visible: server_onlineCheckBroken() || server_onlineCheckOk(), text: server_onlineCheckText"></span>
</div>
</div>