settings fixed

This commit is contained in:
Teja 2015-07-07 11:50:39 +02:00
parent af6310f5d3
commit 4469f69cab
6 changed files with 99 additions and 245 deletions

View file

@ -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

View file

@ -0,0 +1,22 @@
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType>
<friendlyName>{{ friendlyName }}</friendlyName>
<manufacturer>{{ manufacturer }}</manufacturer>
{% if manufacturerUrl %}<manufacturerURL>{{ manufacturerUrl }}</manufacturerURL>{% endif %}
<modelName>{{ modelName }}</modelName>
{% if modelDescription %}<modelDescription>{{ modelDescription }}</modelDescription>{% endif %}
{% if modelNumber %}<modelNumber>{{ modelNumber }}</modelNumber>{% endif %}
{% if modelUrl %}<modelURL>{{ modelUrl }}</modelURL>{% endif %}
{% if serialNumber %}<serialNumber>{{ serialNumber }}</serialNumber>{% endif %}
<UDN>uuid:{{ uuid }}</UDN>
<serviceList>
</serviceList>
<presentationURL>{{ presentationUrl }}</presentationURL>
</device>
</root>

View file

@ -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")

View file

@ -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)

View file

@ -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);

View file

@ -18,12 +18,13 @@
</label>
</div>
</div>
<!--
<div class="control-group" title="{{ _('Interval in which to poll for the temperature information from the printer while printing') }}">
<label class="control-label" for="settings-serialTimeoutTemperature">{{ _('Temperature interval') }}</label>
<div class="controls">
<div class="input-append">
<input type="number" step="any" min="0" class="input-mini text-right" data-bind="event: {change: saveall}, value: serial_timeoutCommunication" id="settings-serialTimeoutCommunication">
<!--<input type="number" step="any" min="0" class="input-mini text-right" data-bind="value: serial_timeoutTemperature" id="settings-serialTimeoutTemperature">-->
<input type="number" step="any" min="0" class="input-mini text-right" data-bind="value: serial_timeoutTemperature" id="settings-serialTimeoutTemperature">
<span class="add-on">s</span>
</div>
</div>
@ -38,6 +39,7 @@
</div>
</div>
</div>
-->
<div class="control-group" title="{{ _('Time after which the communication with your printer will be considered timed out if nothing was sent by your printer (and an attempt to get it talking again will be done). Increase this if your printer takes longer than this for some moves. This is also the interval in which the temperature will be polled from the printer while not printing.') }}">
<label class="control-label" for="settings-serialTimeoutCommunication">{{ _('Communication timeout') }}</label>
<div class="controls">
@ -73,6 +75,7 @@
</label>
</div>
</div>
<!--
<div class="control-group">
<label class="control-label" for="settings-serialLongRunningCommands">{{ _('Long running commands') }}</label>
<div class="controls">
@ -87,4 +90,5 @@
<span class="help-inline">{{ _('Use this to define additional <a href="%%(glob_url)s">glob patterns</a> matching serial ports to list for connecting against, e.g. <code>/dev/ttyAMA*</code>. One entry per line.')|format(glob_url="http://docs.python.org/2/library/glob.html") }}</span>
</div>
</div>
-->
</form>