Commit graph

807 commits

Author SHA1 Message Date
Gina Häußge
d5abf3f0f5 Merge remote-tracking branch 'origin/devel' into devel 2015-02-03 10:18:31 +01:00
Gina Häußge
9a476073cb Made call_plugin method more error resilient
Should catch any exceptions thrown by the plugin, log them and only hand them off if the caller requested to be informed about such things. This way if something goes wrong with a StartupPlugin there should be no problem anymore to still get the server up and running.
2015-02-03 10:17:39 +01:00
Gina Häußge
2da952e7ff Merge remote-tracking branch 'origin/devel' into devel 2015-02-01 17:27:53 +01:00
Gina Häußge
ce363ce409 Fixed a bug causing gcodeInterpreter to hiccup on GCODES containing invalid coordinates such as Xnan or Yinf, causing in turn the file API to fail until the offending file was deleted and its metadata removed 2015-02-01 17:27:12 +01:00
Gina Häußge
cc9e495042 Extracted common CSS styles for action button columns in various tables into LESS mixin
.actioncol now sets text align to center, color of contained links to black and disables wrapping on whitespace (thanks to @Renha for that one)
2015-01-31 17:10:32 +01:00
Gina Häußge
8f8b66fbff Merge pull request #742 from Renha/devel
Fixed wrapping of Icons at Action column in Access Controll settings page
2015-01-31 16:36:58 +01:00
Gina Häußge
8bfa3ef250 Adjusted discovery plugin to new blueprint and settings functionality for plugins 2015-01-30 22:22:39 +01:00
Gina Häußge
17d0b17a86 Blueprints of BlueprintPlugins now also get instantiated with defined template and static folder, plugins may override this via get_blueprint_kwargs 2015-01-30 22:22:08 +01:00
Gina Häußge
2f5e955367 Fixed an issue causing slicing not to work due to a change in how the used sarge library works
Starting commands asynchronously now necessitates a call to Pipeline.wait_events in order to be able to access the started Command instances. Not waiting causes the list of commands to be not fully populated and hence issues with code depending on that stuff being present.
2015-01-30 21:47:48 +01:00
Gina Häußge
6f52e7a008 More error resilience when (re)loading plugins 2015-01-30 18:06:52 +01:00
Gina Häußge
86734076e0 Fixed a bug which caused self.implementations to be able to return None instead of [] if no implementations were provided by a plugin 2015-01-30 18:04:15 +01:00
Gina Häußge
6b6bef4e86 First inject static additional injects, then follow up with factory created ones
This way plugins are already prepopulated with stuff like basefolder and logger and such when the factories are executed.
2015-01-30 13:56:18 +01:00
Gina Häußge
998420312e Adjusted CuraPlugin to use new blueprint and settings mechanisms for plugins 2015-01-30 13:24:34 +01:00
Gina Häußge
d3bd990009 The plugin system now also injects self._settings into SettingsPlugins and create the blueprint for BlueprintPlugins
Also adjusted a lot of documentation for that stuff and continued writing the Getting Started guide for plugin development.
2015-01-30 13:22:35 +01:00
Gina Häußge
e1e47abfbe Fixed selecting the first dialog in the settings dialog upon first opening it 2015-01-30 09:28:41 +01:00
Gina Häußge
8c2214fc09 Ordering of injected templates decoupled from template content
Internal templates get handled the same way as those from plugins. Plugins may also in theory now replace existing internal templates, however for that to not cause any errors on the client side due to missing expected elements that will for now stay an undocumented feature.
2015-01-29 16:39:09 +01:00
Gina Häußge
250d71b580 Added server side caching of main page
Index page will now be cached for up to five minutes, unless the
request contains "_refresh" in the query or the Cache-Control header
contains no-cache
2015-01-29 16:37:20 +01:00
Gina Häußge
151864f1d4 Always send responses to POST requests with Cache-Control: no-cache 2015-01-29 16:36:08 +01:00
Gina Häußge
f4df354cd0 Removed left overs from former cura integration 2015-01-28 15:36:44 +01:00
Gina Häußge
4223d48edd Docs: Started on a basic plugin tutorial 2015-01-27 14:21:41 +01:00
Gina Häußge
d96e56e3c7 Also include module_name in plugin origin tuple for entry points 2015-01-26 22:30:31 +01:00
Gina Häußge
c3bb575b48 Added plugin metadata to bundled plugins 2015-01-26 22:22:19 +01:00
Gina Häußge
2d2285861f Also track disabled plugins and allow defining/retrieving license information in plugins 2015-01-26 22:21:58 +01:00
Gina Häußge
19f9400b11 Read pkginfo data for plugins retrieved via entry_point and use that to populate author, version, name, description and url data in PluginInfo object
This data can still be overwritten from within the Plugin itself by setting the correponding __plugin_xyz__ variables, however it allows getting rid of some repetition if that data has already been specified in setup.py
2015-01-26 17:27:34 +01:00
Артем Груничев
344a505903 Icons at Action column in Access Controll settings page are now wrapped correctly with any translation language; regenerated .css file according to .less one. 2015-01-26 17:24:37 +03:00
Gina Häußge
922ee39109 Plugins can now also supply information regarding the plugin author and website, metadata also tracks from where they were loaded 2015-01-26 12:51:44 +01:00
Gina Häußge
4b60475a02 Also properly inject printer into plugin implementations (as self._printer) 2015-01-26 12:48:07 +01:00
Gina Häußge
657629183b Custom 400 response if requests that need json don't contain proper json 2015-01-22 17:59:31 +01:00
Gina Häußge
9cefd06655 Added missing pagination for printer profiles 2015-01-22 17:57:25 +01:00
Gina Häußge
ac549770ee Move onStartup call to before any bindings getting applied 2015-01-22 16:56:42 +01:00
Gina Häußge
22623fb0b6 Allow setting the default printer profile when creating a new one 2015-01-20 15:17:49 +01:00
Gina Häußge
98ac877033 Merge branch 'master' into devel
Conflicts:
	CHANGELOG.md
2015-01-19 16:48:51 +01:00
Gina Häußge
83790fcd64 Do not truncate error reported from printer in UI
Closes #706
2015-01-19 16:42:09 +01:00
Gina Häußge
6dd2dcee16 GCODE viewer: Even better version of initial bed centering, backported from c858c8f75b
See #719
2015-01-19 16:34:40 +01:00
Gina Häußge
a91a354fa9 Fixed a bug causing the GCODE viewer to be zoomed in outside of the print bed due to missing initial move
Possible fix for #719
2015-01-19 16:26:52 +01:00
Gina Häußge
e3cba0d4c2 Adjusted to new template structure. WIP!
Problems:
- timeout upon print start due to first line not being properly sent apparently
- extruder count not taken from printer profiles yet (which are not available on comm layer), hence wrong end code
2015-01-19 15:40:23 +01:00
Gina Häußge
83204eda3b Merge branch 'devel' into gcodeScripts
Conflicts:
	src/octoprint/printer/__init__.py
	src/octoprint/static/css/octoprint.css
	src/octoprint/static/less/octoprint.less
	src/octoprint/templates/settings.jinja2
2015-01-19 15:25:11 +01:00
Gina Häußge
146128730c Fixed timelapse deletion
Was broken after switching to new file name sanitizing with the new file management layer, still stripped everything but ascii from the filename although timelapse file names may actually contain more than that character set since the gcode file names they are based off may too.

Closes #724
2015-01-19 12:34:25 +01:00
Gina Häußge
1daa6df346 Added exception logging for event bus worker loop 2015-01-19 12:13:04 +01:00
Gina Häußge
416b897596 Fixed a documentation bug
Thanks @Booli
2015-01-19 11:15:09 +01:00
Gina Häußge
b28f511b92 Small addendum and changelog entry for #717 2015-01-16 21:49:01 +01:00
Gina Häußge
19df1aed17 Merge pull request #717 from Renha/devel
Bugfix for Invalid cross-device link on Linux when /tmp is on another fs
2015-01-16 21:24:31 +01:00
Gina Häußge
9452ba4c24 Fixed heated bed temperature setting during slicing with Cura 2015-01-16 19:58:46 +01:00
Gina Häußge
762ec228da More work on the documentation 2015-01-16 17:11:31 +01:00
Gina Häußge
f619c1f8c4 Made data_bind handling of Template Plugin more easier
allowBindings: true is automatically added if necessary, regardless of plugin_supplied data_bind value, should make usage easier.
2015-01-16 12:35:24 +01:00
Gina Häußge
5180fc70d2 Changed how TemplatePlugin works
get_template_vars get split into get_template_vars (for injection additional template variables only) and get_template_configs (for configuring injection of additional template). It's now possible to inject more than one of a given template type from within plugins, and template injection is more intelligent in that if a plugin's templates don't need special configuration and stick to default naming and behaviour, just declaring them inside the templates directory of the plugin will be enough to fire up everything including links to switch to tabs, sidebars etc (the plugin's name being used in such cases for link text).
2015-01-16 11:54:34 +01:00
Gina Häußge
19fe770606 Forgot to inject plugin manager... 2015-01-15 16:51:55 +01:00
Gina Häußge
f2e98265e7 Fix generic plugin includes again (was still depending on a removed variable) 2015-01-15 15:13:55 +01:00
Gina Häußge
bb7aa6544f Adjusted bundled Cura plugin to not define already defined folder paths again, now included automatically 2015-01-15 14:53:23 +01:00
Gina Häußge
2324a1bf0e Correctly set custom element styles on navbar and tab items 2015-01-15 14:42:58 +01:00
Gina Häußge
ca278985b0 Correctly set selected element on first load in settings 2015-01-15 14:42:27 +01:00
Gina Häußge
4a9be80c98 Fixed login dialog again 2015-01-15 14:21:32 +01:00
Gina Häußge
23387d6e48 More work on the template refactoring and new template plugin types 2015-01-15 11:06:59 +01:00
Renha
6cf0550312 Bugfix for Invalid cross-device link on Linux when /tmp is on another fs 2015-01-13 22:24:35 +00:00
Gina Häußge
73466bb513 Merge branch 'devel' into dev/templateRefactoring 2015-01-13 18:27:10 +01:00
Gina Häußge
b0805a9bae Forgot to commit some files (argh) 2015-01-13 18:20:45 +01:00
Gina Häußge
f9fd4f9009 WIP: refactoring of templates 2015-01-13 18:20:13 +01:00
Gina Häußge
5b6b8b6ad1 And some more moving around of templates 2015-01-13 11:49:28 +01:00
Gina Häußge
8aede1dfe4 Moved settings components into individual template files as well 2015-01-13 11:31:45 +01:00
Gina Häußge
77cdb7bf43 Moved navbar, sidebar and tab contents from index.jinja2 into individual files 2015-01-13 11:20:37 +01:00
Gina Häußge
6880184cbb Increased default communication and connection timeouts 2015-01-13 11:09:42 +01:00
Gina Häußge
868dc6d7a9 Increased default communication and connection timeouts 2015-01-12 17:34:08 +01:00
C-o-r-E
684d12e60e Fix error where API state is requested and printer is offline
(cherry picked from commit 619fe9a)
2015-01-12 16:53:17 +01:00
Gina Häußge
4e4ad0be8b Fixed file sending to SD card
Closes #709
2015-01-12 16:00:37 +01:00
Gina Häußge
f238ef40ec Better error validation for printer profiles
Data types loaded from disk were not properly ensured to match expected types and input validation also had deficits.

Should fix #714
2015-01-12 15:07:14 +01:00
Gina Häußge
f5eef06e88 Fixed wrong variable name
Closes #715
2015-01-12 10:45:39 +01:00
Gina Häußge
778d3f2853 Merge remote-tracking branch 'origin/devel' into devel 2015-01-12 09:46:15 +01:00
Gina Häußge
2ba681573f Key controls are now enabled when you mouse over the webcam picture, indicated by an overlay
Also moved key control help in that overlay
2015-01-12 09:40:45 +01:00
Gina Häußge
edafee7b22 Added setting to enable/disable the keycontrol feature 2015-01-12 09:37:52 +01:00
Gina Häußge
52056b0eeb Merge branch 'devel_keycontrol' of https://github.com/nEuDy/OctoPrint into nEuDy-devel_keycontrol
Conflicts:
	src/octoprint/static/css/octoprint.css
2015-01-10 13:56:51 +01:00
Rob Speed
062131a10e Renamed delpid to term to better match its modified behavior. Moved the registration of the SIGTERM handler to avoid an extremely unlikely race condition. 2015-01-10 01:34:47 -08:00
Rob Speed
6c78049886 Fixes issue where a daemonized OctoPrint doesn't clean up after itself after receiving SIGTERM. 2015-01-10 00:24:25 -08:00
Gina Häußge
3d5fdf2a91 Fixed bug that caused SSDP discovery not to work anymore
Blueprint was protected by API key which lead to the discovery.xml
file not being retrievable.
2015-01-01 01:52:41 +01:00
Gina Häußge
c9c4066331 Fixed a bunch of doc issues, updated /api/printer/command to have more meaningful error messages 2014-12-31 15:47:12 +01:00
Gina Häußge
bf6a32907c Ported possibility to set external host via headers from reverse proxy to the devel branch 2014-12-31 15:09:31 +01:00
Gina Häußge
749af60796 Merge branch 'master' into devel
Conflicts:
	src/octoprint/server/util.py
	src/octoprint/settings.py
	src/octoprint/templates/index.jinja2
2014-12-30 10:49:03 +01:00
Gina Häußge
87ddcac2fc Don't user server.host but server.forwardedHost as fallback for generated external URLs
Closes #698
2014-12-30 10:20:50 +01:00
Gina Häußge
e3383fe4c1 Generated URLs now take X-Forwarded-Host header sent by proxies into account for included host and port 2014-12-29 20:48:33 +01:00
Gina Häußge
292856e1bd Fixed relative URL to sockjs endpoint, wasn't yet using the proper base url 2014-12-29 20:45:54 +01:00
Gina Häußge
6307b765e3 Only decrement the image counter if it is set and larger than 0
Backported from devel
2014-12-28 00:19:55 +01:00
Gina Häußge
eb2561175d Merge branch 'master' into devel
Conflicts:
	setup.py
	src/octoprint/timelapse.py
2014-12-28 00:18:49 +01:00
Gina Häußge
a30e41f0b4 Timelapses: Do not try to use image counter if still set to None and synchronize decrementing of image counter via mutex as well
Possible fixes for #693, the latter maybe also for #690
2014-12-28 00:12:19 +01:00
Gina Häußge
fb15751703 Decrease image counter if an image could not be captured from webcam
Should keep rendering of timelapse from breaking if only a couple of images couldn't be captured due to whatever reason. Suggested by @midopple in #344
(cherry picked from commit bf9d5ef)
2014-12-27 23:55:23 +01:00
Gina Häußge
a0105bcb2f Better error handling for capture issues during timelapsing
Should help debugging issue #425 and any future problems in that area.
(cherry picked from commit 1a7a468)
2014-12-27 23:52:38 +01:00
Gina Häußge
103e0796b7 Request available slicers and slicing profiles from backend asynchronously when opening the slicing dialog
Should make sure that slicers and new profiles are detected correctly even without reload.

Could maybe help with #689
2014-12-21 15:57:23 +01:00
Gina Häußge
363b23d6e3 Better handling of errors while sending to (disconnected) clients on the websocket 2014-12-21 15:47:24 +01:00
Gina Häußge
977cf3c383 Added handler for uncaught exceptions to make sure those get logged 2014-12-21 15:32:07 +01:00
Gina Häußge
827ea36d72 Merge remote-tracking branch 'origin/devel' into devel 2014-12-21 15:16:34 +01:00
Gina Häußge
46b0367335 Log a message to octoprint.log if Cura is not fully configured and hence not available for slicing yet.
As suggested in #689
2014-12-21 15:15:59 +01:00
Gina Häußge
596afddfb6 Merge pull request #685 from Bevaz/bug_video_output_filename
Enframed output video filename with quotes.
2014-12-20 18:05:50 +01:00
Gina Häußge
256c2dfdbe More error resilient handling of .metadata.yaml writes in local storage
Writes updated metadata to a backup file first and then copies it atomically (at least under anything that is not windows where the operation is a bit more complicated and hence not atomic)
2014-12-20 01:06:40 +01:00
Gina Häußge
0737ee65bd Support action: commands sent from printer, for now only pause, resume and disconnect are supported, plus a new hook "octoprint.comm.protocol.action" to add handlers of custom actions via plugins.
Added "!!DEBUG:" command to virtual printer to be able to trigger such commands to be sent by it.
2014-12-20 00:31:46 +01:00
Gina Häußge
8998be66eb Don't accidentally include a newline from the mime headers in the parsed multipart data
Fixes #680
2014-12-19 12:28:02 +01:00
Gina Häußge
1180cac147 Fixed heated bed option not being properly displayed in printer profiles
Fixes #683
2014-12-19 10:01:00 +01:00
Gina Häußge
270231a004 Fixed extruder offsets not being properly editable in printer profiles
Closes #677
2014-12-19 09:54:11 +01:00
Gina Häußge
c2f0f6c7c4 [i18n] Translation update 2014-12-18 15:15:23 +01:00
Gina Häußge
c7afae38a8 Rolled back appearance settings
Associating them with the current printer profile is misleading as long as a printer profile represents both a physical printer and a type machine. In the future this association will have to be split, to allow for configuration of printers with respective machine profiles (name subject to be changed).
2014-12-18 13:48:19 +01:00
Gina Häußge
873a825e57 Commented out loggers used for debugging/evaluating print time estimation 2014-12-18 12:02:14 +01:00
Gina Häußge
dc2318f404 Use the rolling average of the last n estimations instead of the current estimation for reporting print time left 2014-12-18 12:01:01 +01:00
Bevaz
699ed1da4d Enframed output filename with quotes. 2014-12-17 22:08:47 +03:00
Gina Häußge
d8b95f845c If the G4 isn't returned, it won't be sent to the printer 2014-12-17 18:33:26 +01:00
Gina Häußge
014d39c11d Fetch estimated print time from cura slicing result, create print time statistics per printer profile, interpolate between stats and live estimation during printing for print time left 2014-12-17 17:31:30 +01:00
Gina Häußge
a544a852f2 Some minor cleanup 2014-12-17 12:52:02 +01:00
Gina Häußge
3311a48e3a Merge branch 'issue_658' of https://github.com/vishnubob/OctoPrint into vishnubob-issue_658
Conflicts:
	src/octoprint/util/comm.py
2014-12-17 12:50:37 +01:00
Gina Häußge
5ac908afd4 Pauses in the print job are now cleaned from the basis for print time estimation, also switched to a rolling window approach for determining when estimation becomes stable 2014-12-16 13:27:31 +01:00
Gina Häußge
12a3e659b1 Added new plugin type ProgressPlugin
Plugins can implement that to get notified of progress in both print and slicing jobs in 1% increments.
2014-12-15 21:29:18 +01:00
Gina Häußge
b0780af7fa Removed a possible race condition when slicing to the same gcode file in direct succession 2014-12-15 18:35:15 +01:00
Gina Häußge
2ec31c7521 Removed a left-over from print time estimation experiments that got overlooked 2014-12-15 11:38:17 +01:00
Gina Häußge
f2562500a3 Print time estimation is now not displayed until it becomes somewhat stable 2014-12-12 23:38:57 +01:00
Gina Häußge
85a567bdab More error resilience when logging success/failure of prints 2014-12-11 18:32:17 +01:00
Gina Häußge
11c415fd17 Actually use caching when reading metadata (was a write-only cache previously, way to go...) 2014-12-11 18:31:48 +01:00
Gina Häußge
d67ea41032 Fixed jog controls
Closes #664
2014-12-11 16:10:50 +01:00
Gina Häußge
66357ebe7e "autoconnect" parameter to "connect" command is not mandatory
Closes #675
2014-12-11 15:37:48 +01:00
Javier Rios
708fa989aa BugFix to Reconnect on Debian 2014-12-10 17:09:13 +01:00
Gina Häußge
8dbde90a93 Merge branch 'master' into devel 2014-12-09 22:25:19 +01:00
Gina Häußge
c5be9908c5 Don't hiccup on slic3r filament_diameter comments generated for multi extruder setups 2014-12-09 22:20:55 +01:00
Gina Häußge
f7f70108bc Make sure the printer profile fields are all of the correct type during validation 2014-12-05 12:20:35 +01:00
Gina Häußge
bd08eadac9 Fixed a bug causing the _default profile to be saved to a file instead of config.yaml 2014-12-05 12:01:02 +01:00
Gina Häußge
a2314a9ab3 Fixed URL endpoint for printer profile API, it's supposed to be "api/printerprofiles", not "api/printerProfiles" 2014-12-05 11:52:27 +01:00
Gina Häußge
e1b071c0d8 Removed old printer parameter and appearance settings and added auto migration of config 2014-12-05 11:46:55 +01:00
Gina Häußge
aba8a57fa5 Added possibility to say to select or directly a file right after slicing it finished, both to the API and the UI 2014-12-04 18:06:35 +01:00
Gina Häußge
5784ab82ef WIP: Adding option to start printing directly after slicing 2014-12-04 15:31:00 +01:00
Gina Häußge
636e79672a The API now allows to specify where on the print bed to put the sliced model's center 2014-12-04 12:52:33 +01:00
Gina Häußge
b935e96448 Fixed a bug causing slicing not to work if no printer profile was provided 2014-12-03 08:52:20 +01:00
Gina Häußge
56ad5b97b6 This on the other hand really fixes it and doesn't break anything in the progress 2014-12-02 17:48:12 +01:00
Gina Häußge
dcead7361f Nope, reverting that fix, that broke something else 2014-12-02 17:28:53 +01:00
Gina Häußge
ef314340fa Fixed a bug that caused medium to large sized STLs not to properly report progress when being sliced via the Cura plugin 2014-12-02 17:10:52 +01:00
Gina Häußge
a149cdc4f5 Added the nozzle diameter to the printer profile (needed for slicing, cura plugin uses it too) 2014-12-02 12:41:25 +01:00
Gina Häußge
2ea1b9df6c Fully switched to printer profiles 2014-12-02 11:30:00 +01:00
Gina Häußge
05e54fa0c6 Internal representation for extruder offsets changed, adjusted gcode viewer view model to be able to cope 2014-12-01 16:36:08 +01:00
Gina Häußge
0203e6da31 More work on the printer profiles, connection dialog and Settings dialog are now working. GCODE viewer makes trouble 2014-12-01 16:26:55 +01:00
Gina Häußge
93a852e6ea WIP: Printer profiles & management now functional, but integration with connection dialog still broken
The API documentation is also still missing.
2014-11-29 20:55:30 +01:00
Gina Häußge
985b0970f1 More work on the printer profiles 2014-11-29 12:32:55 +01:00
Giles Hall
e844d42275 added G4 hook to increase the timeout for serial communication 2014-11-28 19:28:03 +00:00
Gina Häußge
a56ddb9ebe WIP commit, probably a tad bit broken ;) 2014-11-28 11:29:38 +01:00
Gina Häußge
1957d2bb58 WIP First work towards printer profiles 2014-11-28 09:32:44 +01:00
Gina Häußge
e55f11c5b9 Fixed wrong default types for plugin hooks etc 2014-11-26 16:53:35 +01:00
Gina Häußge
07133b79e5 Track modification time of configuration file and reload it if it was externally modified before changing settings 2014-11-25 17:04:27 +01:00
Gina Häußge
183a8feed4 Plugins can now push messages via the websocket as well 2014-11-25 09:08:33 +01:00
Gina Häußge
e3253fce16 Changed name of cura plugin to CuraEngine 2014-11-24 17:52:39 +01:00
Gina Häußge
acd6f729f0 Wait at least 5s before reloading the UI 2014-11-20 12:16:59 +01:00
Gina Häußge
ec85cccc75 Initialize logging before plugin manager, otherwise the logging output of the latter will not be visible 2014-11-19 11:33:20 +01:00
Gina Häußge
f3f640c24f On reconnect to server, check if the version changed and if so hard-reload the UI 2014-11-19 09:16:37 +01:00
Gina Häußge
9c2b42caa2 Added an additional constant for the plugin base url for blueprint plugins 2014-11-19 09:03:50 +01:00
Gina Häußge
a677ffc90e Only bind additional view models from plugins if they specify a target to bind to 2014-11-19 09:03:11 +01:00
Gina Häußge
254145da22 Also protect resources from blueprint plugins with the api key (unless the plugin specifies otherwise) 2014-11-19 09:02:33 +01:00
Gina Häußge
fec51ebc8e Fixed a merge error that caused duplicated code and missing auto migration of reverse proxy settings 2014-11-17 13:50:47 +01:00
Gina Häußge
50895a662a Updating the settings now fires a new event "SettingsUpdated" 2014-11-17 11:06:54 +01:00
Gina Häußge
048ad78778 Do not deliver API key on settings API unless user has admin rights. 2014-11-14 18:24:57 +01:00
Gina Häußge
e9beffc799 Properly recognize app session keys everywhere. Also fixed a bug where the ApiUser was not properly provisioned with his roles. 2014-11-14 17:58:42 +01:00
Gina Häußge
fe9dd5ef28 Send 401 Unauthorized instead of 403 Forbidden upon failed app session verification 2014-11-14 15:02:52 +01:00
Gina Häußge
468e4b6d55 Support for a new type of API key
In order to solve the initial handshake problem with apps, OctoPrint now supports so called app session keys which are basically API keys with a limited validity. Obtaining those keys is based on a handshake procedure backed by RSA signatures. OctoPrint needs to be aware of apps and their associated public keys (with the AppPlugin there exists a mechanism to add additional recognized apps by installing a plugin). Apps perform the handshake by first requesting a temporary key with very limited validity, then sending a message back to OctoPrint containing their id, version, the temporary key and a signature created with their private key over these three pieces of data. OctoPrint then tries to verify the signature and if successful unlocks the key to be used as a fully recognized API key.
2014-11-14 14:30:25 +01:00
Gina Häußge
b48ac505fd Allow to fetch whole tree from the settings merged with the defaults 2014-11-14 10:42:02 +01:00
Gina Häußge
4b9cd490ab Merge branch 'updateSettingsModal' of https://github.com/Booli/OctoPrint into Booli-updateSettingsModal 2014-11-12 11:26:23 +01:00
Gina Häußge
71bb760ce5 Small optimization 2014-11-12 11:22:55 +01:00
Philipp Engel
98a46e8caa including plugins' main template (='name of the plugin'.jinja2, e.g. cura.jinja2) to index.jinja2 2014-11-11 14:22:30 -08:00
Gina Häußge
dcdbd3652a Merge branch 'master' into devel 2014-11-10 09:21:23 +01:00
Gina Häußge
c35b7a66b0 Encoding has to be specified before any other line of code 2014-11-10 09:21:05 +01:00
Gina Häußge
9709b97adf GCODE viewer now doesn't stumble over completely extrusionless GCODE files 2014-11-08 15:27:03 +01:00
Gina Häußge
21bd664edf Merge branch 'devel' of github.com:foosel/OctoPrint into devel 2014-11-08 15:16:29 +01:00
Gina Häußge
5675f32a19 QR Code generation uses jquery.qrcode and a custom knockout binding
This way it will also be possible to easily add another qrcode to the user api key later. Refused to work for now (value binding doesn't update), so commented out right now, but works in theory.
2014-11-08 15:14:38 +01:00
Michael Ang
16801ad3e1 Disable autocapitalization for username
Makes it easier to login on iPhone (Mobile Safari)
2014-11-07 00:24:05 +01:00
Jarek Szczepanski
25cfed949d Added QR code with API key on Settings dialog 2014-11-05 12:24:51 +01:00
Gina Häußge
eacfcab187 Merge branch 'master' into devel
Conflicts:
	CHANGELOG.md
2014-11-04 10:43:11 +01:00
Gina Häußge
5acb04c180 Fixed a couple of more missing branch fields and added Changelog entry 2014-11-04 10:07:46 +01:00
Gina Häußge
ff96e2e4d6 Also interpret lines starting with "!!" as errors from the firmware
(see http://reprap.org/wiki/G-code#Replies_from_the_RepRap_machine_to_the_host_computer)
2014-11-03 21:40:21 +01:00
Pim Rutgers
2e96fa9e1e Request Settings data on opening modal
to counter different browser windows having different settings
2014-11-03 19:14:50 +01:00
Gina Häußge
ca6364e5d4 Correctly interpret Smoothieware temperature data for multiple extruders
Fixes #633
2014-10-31 14:08:52 +01:00
Gina Häußge
4a364d730b Merge branch 'devel' into gcodeScripts 2014-10-30 12:24:00 +01:00
Gina Häußge
62667de4a8 Fix: Don't try to create a SessionUser for anonymous users 2014-10-30 12:22:58 +01:00
Gina Häußge
b7a9be31eb Allow definition of gcode scripts to be sent to the printer at various stages of the print process 2014-10-30 12:20:48 +01:00
Gina Häußge
f8955c0d1b Fix of file type detection 2014-10-29 12:17:26 +01:00
Gina Häußge
0aac7813e4 More work on slicing integration:
- be able to handle slicers which can't report progress
- distinguish between registered and configured slicers (e.g. to allow uploading of profiles via the settings before having saved the path to the executable)
2014-10-29 12:16:49 +01:00
Gina Häußge
44cc9e7db8 Cura Plugin: Filament diameter and hotend temperature where not correctly extracted from profile and supplied to CuraEngine, resulting in low print quality
(using the default of 2.85mm filament diameter doesn't work well for 1.75mm machines...)
2014-10-29 11:57:43 +01:00
Gina Häußge
ff97fba0f0 Merge branch 'master' into devel
Conflicts:
	src/octoprint/server/api/__init__.py
2014-10-27 09:39:14 +01:00
Gina Häußge
ce67e28f96 Generate the salt used for hashing user passwords individually for each server instance 2014-10-27 09:37:39 +01:00
Gina Häußge
e149689249 Enable logging of tornado errors by default, to make sure octoprint.log will contain meaningful entries if something goes wrong in our tornado customization 2014-10-24 20:11:58 +02:00
Gina Häußge
b79d5e670a Tornado's StaticFileHandler now supports content streaming, use that instead of our own implementation
Also allow for definition of access validation and serving as attachment though.

Hopefully also fixes #606, since that was possibly called by our own implementation of content streaming, which now has been removed completely.
2014-10-24 19:59:59 +02:00
Gina Häußge
c23cb378cd Allow login of the same user from multiple browsers without side effects
So far when logging in from two different browsers, then logging out in one of them the user was logged out across all browsers. This should now be changed in so far as that each individual browser session is tracked and only that session is ended by a logout that belongs to the browser where the logout button was clicked.

Should fix #556
2014-10-24 13:05:07 +02:00
Gina Häußge
b4699825d6 Generate the key used for session hashing individually for each server instance
(cherry picked from commit 118a4f7)
2014-10-23 15:38:43 +02:00
Gina Häußge
118a4f7097 Generate the key used for session hashing individually for each server instance 2014-10-23 15:33:32 +02:00
Gina Häußge
7acb0657a7 Made "Streaming done" notification green 2014-10-23 14:45:12 +02:00
Gina Häußge
021ce44673 Don't die if you're not able to log a print (e.g. for prints from SD) 2014-10-23 14:45:11 +02:00
Gina Häußge
9a7733c9a3 Make "Slicing done" notification green
Implements #558
2014-10-22 09:45:42 +02:00
Gina Häußge
7150f5b536 Properly reselect default slicer and profile in slicing dialog after sending a slicing request 2014-10-22 09:12:50 +02:00
Gina Häußge
753b9e8d7a Automatically refresh slicing profiles in slicing dialog when profiles are added or removed via the Cura plugin settings 2014-10-22 09:09:37 +02:00
Gina Häußge
6e62ecc8c1 Keep track of files that are currently being used (file being printed, source and destination for slicing) so that they can't be deleted
Also added logging to exception branches where the exception was formerly just swallowed.
2014-10-21 19:18:59 +02:00
Jarek Szczepanski
6e4d35777b Fixed gcode analyzing after file upload 2014-10-21 18:35:08 +02:00
Gina Häußge
776e6aa498 Fixed a typo breaking slicing altogether 2014-10-21 15:03:36 +02:00
Gina Häußge
b7a21dd322 More error resilience in regards to defined printer parameters when converting the slicing profile for Cura 2014-10-21 14:56:59 +02:00
Gina Häußge
71d73c6562 Do not try to slice on local slicers when printing
Since slicing takes a lot of resources, that might lead to quality loss for the print job.
2014-10-21 14:14:00 +02:00
Gina Häußge
6732710d6f Added logging of CuraEngine output to Cura plugin
Should hopefully help debugging issues where the slicer appears to not be doing anything.
2014-10-21 12:08:16 +02:00
Gina Häußge
90618723d4 Parse slicing progress from Cura and provide it on sock.js socket
UI for now displays it in the "Slicing" progress bar text.
2014-10-20 18:58:04 +02:00
Gina Häußge
084ca956fb Cache metadata in an LRU cache instead of fetching it from disk everytime 2014-10-20 16:49:53 +02:00
Gina Häußge
44109f9d8f Automatically cancel running slicing jobs targeting the same output file if a new slicing request is received
This way there won't be two concurrent jobs trying to slice to the same file, which would practically render the cpu cycles from any slicing jobs than the final one wasted. Also adds a new event "SlicingCancelled" that will be sent in these cases.
2014-10-20 13:40:04 +02:00
Gina Häußge
606efd3da1 Pause button now changes icon when paused to indicate "Resume" state better, also added tooltips
Updated german translation accordingly, other translations will have to follow once the community translates the new strings.
2014-10-20 09:51:33 +02:00
Gina Häußge
1acbbbaf6c Merge branch 'master' into devel 2014-10-16 23:51:00 +02:00
Gina Häußge
a332b71463 Properly initialize settings dir
Since config.yaml gets now saved on server startup before settings basedir gets initialized by other means (e.g. first access of base folder for uploads), it was not created yet when the config.yaml was tried to be saved upon first start up, causing an error at server startup.

Closes #604
2014-10-16 23:49:26 +02:00
nEuDy
38ea4ff98f New feature: Added feature for printer movement control by keyboard
-added a new field in the control-section, for controlling the movement of
the printer by keypresses.
To control you printer by keypress, you have to connect to printer first.
Then click into the textfield to activate it. Now you can press the arrow
keys, to move the printhead in the X- and Y-directions, press the W or S
key for Z-direction or the number keys 1, 2, 3 or 4 for choose the
distance (0.1mm, 1mm....)
2014-10-10 00:50:12 +02:00
Gina Häußge
10d76ae7a4 Fix for deleting the file that is currently selected
Due to a missing switch to a refactored version of an internal data structure, that file stayed being selected but wasn't actually there anymore, leading to an error upon hitting Print.
2014-10-06 19:01:30 +02:00
Gina Häußge
cd973adedf Improved slicing and file management
- File management is prepared to support folders (UI still lacking support)
- STL files are now first class citizens
  - can be managed via the file list (and filtered from it)
  - can be sliced on demand
- Slicing now happens via plugins
- Added Cura plugin
  - uses CuraEngine directly instead of full Cura installation
  - Cura profile importer for importing profiles from regular Cura installs via settings dialog
  - TODO: UI for editing profiles
- API for slicing and slicing profile management
2014-10-06 17:34:07 +02:00
Gina Häußge
af94b770f9 Merge branch 'master' into devel 2014-10-01 15:57:04 +02:00
Gina Häußge
01ab61b8b1 Enable event subscriptions by default 2014-10-01 15:54:42 +02:00
Gina Häußge
c55d8c0bdf Merge remote-tracking branch 'origin/devel' into devel 2014-10-01 14:36:27 +02:00
Gina Häußge
7336ed6eff Merge branch 'master' into devel
Conflicts:
	src/octoprint/settings.py
2014-10-01 14:36:02 +02:00
Gina Häußge
60ca95e9b2 Started documenting plugin types and their API 2014-09-30 23:20:47 +02:00
Koen Kooi
197be925b8 Don't use scare quotes when displaying the username.
See http://en.wikipedia.org/wiki/Scare_quotes for details.

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
2014-09-30 15:28:38 +02:00
Gina Häußge
d49cd209e1 Enable API by default and automatically generate API key on first server startup 2014-09-29 22:20:18 +02:00
Pim Rutgers
50eac58493 Confirm custom command REQUEST #532
Syntax (and code) similar to System Command confirm. First commit,
please be gentle.
2014-09-23 18:29:37 +02:00
Gina Häußge
c1f0c76d17 Properly handle non-ASCII instance names 2014-09-21 18:14:01 +02:00
Gina Häußge
079116fdf8 Fix: SlicingDone has a different event payload than UpdatedFiles, so we need a different handler for the updates to work 2014-09-19 23:58:41 +02:00
Gina Häußge
45e6385963 Fix: gcodeFilesViewModel doesn't exist as invididual variable anymore, iterate over registered view models instead 2014-09-19 23:11:20 +02:00
Gina Häußge
3ca0458d65 Fix: Use event strings, not names for all_events
Temporarily broke event registration by frontend, this should fix it again.
2014-09-19 16:11:44 +02:00
Gina Häußge
d5edec2cd0 Merge branch 'master' into devel
Conflicts:
	src/octoprint/server/__init__.py
2014-09-18 09:38:20 +02:00
Gina Häußge
ce9c9bea6a Also allow downloading .g files via Tornado
Regex so far only matched .gcode and .gco, files ending just in .g are expected for upload as well though, so this needed to be adjusted
2014-09-18 09:36:33 +02:00
Gina Häußge
c105ffec18 User specific settings to be used for custom language configuration 2014-09-15 10:51:54 +02:00
Gina Häußge
604c2a0bdd Some small bugfixes in the plugin handling code and a changelog entry 2014-09-14 14:41:18 +02:00
Gina Häußge
1c19bb4dfc Merge branch 'master' into devel
Conflicts:
	CHANGELOG.md
2014-09-13 22:01:12 +02:00
Gina Häußge
ea28900913 Properly unset job data when instructed so by callers
Closes #580
2014-09-13 21:49:26 +02:00
Gina Häußge
192e606fea Don't hiccup on templates provided by plugins we can't resolve 2014-09-12 20:15:28 +02:00
Dattas Moonchaser
9e9da5355c Initial comm protocol gcode hooks 2014-09-12 10:23:08 -06:00
Gina Häußge
fa43600cd9 Always use absolute paths as root for static response handler in tornado 2014-09-12 12:40:11 +02:00
Gina Häußge
3aca55205e Fixed a bug that crept in during adding i18n support and made gcode viewer slides stop working 2014-09-12 12:39:33 +02:00
Gina Häußge
3a0aac3c36 Fixed issue that broke the offline dialog
Javascript is not python...
2014-09-12 12:21:25 +02:00
Gina Häußge
fe34bdc656 Fixed a bug that broke the first-run-dialog 2014-09-12 12:18:15 +02:00
Gina Häußge
e69c1e8e93 Added some comments to discovery plugin 2014-09-12 11:22:06 +02:00
Gina Häußge
1c0721f179 Introduced __plugin_init__ method called after all plugins have been discovered
Plugins may be able to use this method for final setups before the implementations and hooks are evaluated, e.g. for adjusting their offered functionality based on what other plugins are available.
2014-09-12 11:21:39 +02:00
Gina Häußge
6f37968670 Moved netconnectd plugin to it's own separate project
Now resides at https://github.com/OctoPrint/OctoPrint-Netconnectd
2014-09-11 18:53:45 +02:00
Gina Häußge
d1c34a9c88 Try to reconnect to backend when switching from ap to wifi
netconnectd now regularly pings hostname it got from backend (defaults to <systemname>.local) while switching to wifi from ap mode and reloads page to that if host comes up.

This requires the browser the client is currently running in to be able to resolve local domains as broadcasted via avahi. Windows systems will need to install the Bonjour for Windows client for this to work.
2014-09-11 15:40:04 +02:00
Gina Häußge
65263a8b74 Made what is registered for discovery more configurable
- Additional zeroconf services may now be added via config
- Exposed zeroconf_register method as helper for plugins
- Vendor specifics may be added to service registrations via config
2014-09-11 12:19:10 +02:00
Gina Häußge
5cd6ab9335 More error resilience during plugin loading 2014-09-11 12:17:45 +02:00
Gina Häußge
56b1705df4 Added plugin helpers, added ssdp/zeroconf browsing in discovery plugin as first helpers 2014-09-10 22:28:03 +02:00
Gina Häußge
08e4c05129 Plugins can now also be retrieved via entry_points, also added EventPlugin and afterStartup handler in StartupPlugin 2014-09-10 15:46:14 +02:00
Gina Häußge
b5b0ea5980 Armed netconnectd check for Linux 2014-09-10 15:42:38 +02:00
Gina Häußge
803e17f3a3 More work on netconnectd plugin frontend
* now also correctly displays current state
* detects current wifi network
* spinner while configuring wifi
* quality display only if quality available
2014-09-10 10:26:28 +02:00
Gina Häußge
75017d7ac6 Integrated netconnectd plugin with netconnectd service 2014-09-08 18:05:25 +02:00
Gina Häußge
80486d644d Better logging for NOTIFY messages 2014-09-07 17:32:02 +02:00
Gina Häußge
1bdc167f7a Also install plugins from setup.py and don't log notify as info level 2014-09-07 17:28:50 +02:00
Gina Häußge
3f2fdb0b14 Added shutdown trigger and UUID persistence 2014-09-07 17:25:20 +02:00
Gina Häußge
ac186f89f1 discovery now has automatic location url building based on querying client 2014-09-07 01:57:59 +02:00
Gina Häußge
fdccfd166f Also forgot to add knockout mapping plugin to git 2014-09-07 01:39:13 +02:00
Gina Häußge
272a71f3d5 Fixed a typo in an URL 2014-09-07 01:33:55 +02:00
Gina Häußge
3621879d38 Forgot to commit template files 2014-09-07 01:29:48 +02:00
Gina Häußge
4661990cfe Fixed error in usage of netifaces 2014-09-07 01:16:39 +02:00
Gina Häußge
7db63b10e8 Use netifaces for ipaddress iteration 2014-09-07 01:11:11 +02:00
Gina Häußge
428ea89f62 discovery plugin: let's try upnp 2014-09-07 00:53:54 +02:00
Gina Häußge
60e0ed911e discovery plugin: removed _workstation._tcp registration, added more parameters to http and octoprint txt records 2014-09-05 18:47:46 +02:00
Gina Häußge
e1366ef90f First experiments with a plugin system, service discovery and connectivity ensurance 2014-09-05 17:11:11 +02:00
Gina Häußge
33bf487a1c i18n: Added dutch and norwegian translations 2014-09-03 18:59:50 +02:00
Gina Häußge
227810db75 Merge branch 'master' into devel
Conflicts:
	src/octoprint/events.py
	src/octoprint/server/__init__.py
	src/octoprint/settings.py
	src/octoprint/templates/index.jinja2
2014-09-03 18:55:59 +02:00
Gina Häußge
45c1958d83 Versioneer now also returns and persists the branch from which OctoPrint was installed
Changed version output accordingly to now display "{version} ({branch} branch)" if branch information is available (which should be the case if installation was performed from git).
(cherry picked from commit a48b5de)
2014-09-03 10:56:39 +02:00
Gina Häußge
e51d9439c5 Modified versioneer to allow specification of manual versions based on branches
You can now define a lookup file explicitely mapping virtual version tags to branches via regular expressions and a reference commit from which the commit distance will be calculated.

Format of the file is

  <branch-regex> <tag> <reference commit>

The file is processed from top to bottom, the first matching line wins. If <tag> or <reference commit> are left out, the lookup table does not apply to the matched branches and the regular versioneer resolution (via git describe) takes place.

Current configuration makes "master", "staging" and any branch starting with "fix/" make use the default behaviour, all other branches (so basically all development branches) are defined as "1.2.0-dev"
(cherry picked from commit 212f40c)
2014-09-03 10:53:54 +02:00
Gina Häußge
a48b5deb29 Versioneer now also returns and persists the branch from which OctoPrint was installed
Changed version output accordingly to now display "{version} ({branch} branch)" if branch information is available (which should be the case if installation was performed from git).
2014-09-02 12:06:02 +02:00
Gina Häußge
212f40cd1a Modified versioneer to allow specification of manual versions based on branches
You can now define a lookup file explicitely mapping virtual version tags to branches via regular expressions and a reference commit from which the commit distance will be calculated.

Format of the file is

  <branch-regex> <tag> <reference commit>

The file is processed from top to bottom, the first matching line wins. If <tag> or <reference commit> are left out, the lookup table does not apply to the matched branches and the regular versioneer resolution (via git describe) takes place.

Current configuration makes "master", "staging" and any branch starting with "fix/" make use the default behaviour, all other branches (so basically all development branches) are defined as "1.2.0-dev"
2014-09-02 11:35:42 +02:00
Gina Häußge
18952c57ff Added automatic migration of old event subscription format to the new one
(cherry picked from commit e7088ef)
2014-08-31 22:54:16 +02:00
Gina Häußge
95f084fb36 i18n: Forgot to include compiled javascript i18n resources for Romanian 2014-08-31 22:03:00 +02:00
Gina Häußge
0b237a2469 i18n: Added Romanian translation 2014-08-31 22:02:23 +02:00
Gina Häußge
f970594c28 Merge branch 'translation' of https://github.com/guysoft/OctoPrint into devel 2014-08-31 21:44:18 +02:00
guysoft
425f6f7c0b Add Hebrew compiled translation 2014-08-31 18:51:11 +03:00
guysoft
c229dc1548 Adding Hebrew strings to translation 2014-08-31 18:46:48 +03:00
Gina Häußge
e4cc84b771 Merge branch 'master' into devel
Conflicts:
	docs/index.rst
	setup.py
	src/octoprint/server/__init__.py
	src/octoprint/server/api/__init__.py
	src/octoprint/static/css/octoprint.css
	src/octoprint/static/gcodeviewer/js/renderer.js
	src/octoprint/static/js/app/viewmodels/printerstate.js
	src/octoprint/static/less/octoprint.less
	src/octoprint/templates/index.jinja2
2014-08-31 15:28:07 +02:00
guysoft
a8e9c5aaf2 Initial creation of Hebrew translation 2014-08-31 13:28:16 +03:00
Gina Häußge
e77efde503 Make key removal from session more solid
Do not die a horrible death if the key you are attempting to remove from the session upon logout doesn't exist. Attempt at
fixing #556
2014-08-29 09:26:57 +02:00
Gina Häußge
4583128c02 i18n: First version of french translation 2014-08-28 19:23:10 +02:00
Gina Häußge
35b1232b0a Fixed hen-egg problem in setup.py
setup.py tried to use babel imports before the necessary requirements
were fetched. Now only tries to import that stuff if
babel_{refresh|compile|new} is called instead of importing it
in the file header.
2014-08-28 15:59:57 +02:00
Gina Häußge
bc8fe527f7 Updated german translation to include "Connection" too 2014-08-28 15:54:32 +02:00
Gina Häußge
2943343003 Forgot to make "Connection" translatable, fixed 2014-08-28 15:50:42 +02:00
Gina Häußge
4e061ef385 i18n: Made the string "OctoPrint" translatable too to allow for different writing systems 2014-08-27 20:11:45 +02:00
Gina Häußge
22bde81712 i18n: Removed a test string I had forgotten to remove earlier and also realised that I hadn't pushed the most recent version yet 2014-08-27 19:41:06 +02:00
Gina Häußge
0adbef9696 Updated german translation 2014-08-27 14:49:39 +02:00
Gina Häußge
53e52c841b First version of OctoPrint with i18n/l10n support
Also included is a translation for (informal) german.

New languages can be added with "python setup.py babel_new --locale=<language code>" which will create the corresponding .po file from the existing .pot file under "src/octoprint/translations/<language code>". Translations can be refreshed from strings in source with "python setup.py babel_refresh". Existing translations can be compiled into usable translation files (.mo for python and .js for Javascript) via "python setup.py babel_compile".

 You'll need to install the development dependencies for all of this to work, just issue "pip install -r requirements-dev.txt"

 Note: numbers are not yet correctly formatted for their respective locale (e.g. "2.5mm" instead of "2,5mm" in german).
2014-08-27 14:46:46 +02:00
Gina Häußge
b78bb9e970 Make watched folder configurable via UI 2014-08-19 15:55:52 +02:00
Gina Häußge
d6959f64c3 Merge remote-tracking branch 'origin/staging' into staging 2014-08-14 16:56:53 +02:00
Aaron Bieber
c5dbc71db3 add serial types for OpenBSD
(cherry picked from commit a439dc4)
2014-08-14 16:55:00 +02:00
Gina Häußge
fbd9440711 Merge pull request #551 from qbit/devel
add serial types for OpenBSD
2014-08-14 16:37:36 +02:00
Aaron Bieber
a439dc4cd8 add serial types for OpenBSD 2014-08-14 08:23:22 -06:00
Gina Häußge
fe3a47f2d5 Resolved issue with tornado 4.0.1 (incompatibility between existing and custom http1connection implementation)
Compare #544 and #546. Pinned tornado version to 4.0.1 (since the change in this commit is not backwards compatible), dependency update is mandatory.
2014-08-13 20:07:02 +02:00
Gina Häußge
519429cebb Correctly check for null values and don't try to access non existing keys
Fixes #544
2014-08-13 09:46:52 +02:00
Gina Häußge
4aee779385 Added two file headers 2014-08-12 15:35:56 +02:00
Gina Häußge
7903119cb4 Removed unused code 2014-08-12 15:29:04 +02:00
Gina Häußge
af9a6a8a6e Don't overwrite query string of webcam URI
If there's a query already present, just append the timestamp to it with a & in between instead of creating a new query.
(cherry picked from commit 51c77be)
2014-08-12 09:54:25 +02:00
Gina Häußge
dffa00dc5e If a tool did not extrude anything, skip it in the filament usage summary
Also targets #539
2014-08-11 18:26:33 +02:00
Gina Häußge
6c5b32d92b New option to set default extrusion length in Control panel
Adds a new config key printerParameters.defaultExtrusionLength which can be configured via the settings dialog in the Printer section and then gets used to set the placeholder value on the extrusion/retraction control and as fallback if the user entered no value when clicking the Extrude/Retract button.

Closes #513
2014-08-11 17:37:26 +02:00
Gina Häußge
7d5c55fc95 Added sanity check for extruder selection in gcode files
Any T command targeting a number higher than the value specified in the settings for gcodeAnalysis.maxExtruders (defaults to 10) will be ignored and trigger a warning in the log file.

Fix for #539
2014-08-11 15:21:50 +02:00
Gina Häußge
0d5d28e4a6 Submit login form upon enter in password field, switch to password field upon enter in username field
(cherry picked from commit ff22ab0)
2014-08-08 17:13:53 +02:00
Gina Häußge
90e50db189 Also update the metadata correctly when an analysis finishes
Closes #476 for good
(cherry picked from commit 65624ed)
2014-08-08 17:13:41 +02:00
Gina Häußge
e9a7cad202 Made the navbar static instead of fixed to improve usability on mobile devices
This is just a hack really, the proper approach would be to finally move to a real responsive design, but this should prove as a valid workaround until that is realized.

Closes #257 for now.
(cherry picked from commit 02212bd)
2014-08-08 17:12:01 +02:00
Gina Häußge
60cf0b1099 Made the navbar static instead of fixed to improve usability on mobile devices
This is just a hack really, the proper approach would be to finally move to a real responsive design, but this should prove as a valid workaround until that is realized.

Closes #257 for now.
(cherry picked from commit 02212bd)
2014-08-08 17:10:42 +02:00
Gina Häußge
aefb72f7cc API version 1.0 is too early, we'll set it to 0.1 for now until it is really stable and not missing things like system commands and such
(cherry picked from commit 4d434d3)
2014-08-08 17:07:02 +02:00
Gina Häußge
4d434d36be API version 1.0 is too early, we'll set it to 0.1 for now until it is really stable and not missing things like system commands and such 2014-08-08 17:06:43 +02:00
Gina Häußge
f69abdcc14 Version resource on API with API and software version
(cherry picked from commit 907f505)
2014-08-08 17:04:31 +02:00
Gina Häußge
568fcbf547 Don't close serial port before switching to state "closed serial port"
Depending on what was happening in the monitoring thread this could lead to an attempt to write to the already closed port, logging an error and killing the interface in the process. Also fixed a timing issue in the state reporting towards the frontend, state updates and readings for clients are now wrapped in a mutex

Closes #492
(cherry picked from commit 11fb18f)
2014-08-08 16:58:38 +02:00
Gina Häußge
7028bbfbfd GCODE viewer now interprets inverted axes for printer control and mirrors print bed accordingly.
Should enable people to set their axes origin so that the viewer matches what they see on their printer.

Should close #431
(cherry picked from commit 030ffe6)
2014-08-08 16:55:05 +02:00
Gina Häußge
c552e9e9be Fixed a couple of issue with the gcode viewer
Most notably the interfering options tracked in #398, but also made "Center viewport on model" and "Zoom in on model" automatically deselect and de-apply if viewport gets manipulated by user, therefore properly allowing the re-select by the user to work to.

Closes #398
(cherry picked from commit f195af0)
2014-08-08 16:52:28 +02:00
Gina Häußge
f8e8914f7d Merge branch 'master' into staging
Conflicts:
	setup.py
	src/octoprint/server/ajax/control.py
2014-08-08 16:37:25 +02:00
Gina Häußge
f195af017e Fixed a couple of issue with the gcode viewer
Most notably the interfering options tracked in #398, but also made "Center viewport on model" and "Zoom in on model" automatically deselect and de-apply if viewport gets manipulated by user, therefore properly allowing the re-select by the user to work to.

Closes #398
2014-08-08 16:22:48 +02:00
Gina Häußge
6474f25253 Be able to cope with more types of SD card file list
Now only takes a look at the last contained item in a split for whitespace of the filename. If that's parseable as an integer, it's probably the size of the file and everything before that the filename. If not, the whole line is the filename, regardless of how many whitespace in contains in between.

 See #534
2014-08-08 12:20:46 +02:00
Gina Häußge
6d2851e742 Fixed a missing ; 2014-08-08 10:13:47 +02:00
Gina Häußge
11fb18f598 Don't close serial port before switching to state "closed serial port"
Depending on what was happening in the monitoring thread this could lead to an attempt to write to the already closed port, logging an error and killing the interface in the process. Also fixed a timing issue in the state reporting towards the frontend, state updates and readings for clients are now wrapped in a mutex

Closes #492
2014-08-07 18:07:19 +02:00
Bryan Mayland
e0b33799d5 Fix events with gcode command lists not firing 2014-08-07 09:23:50 -04:00
Gina Häußge
17d3d9deb7 Reverse proxy wrapper now supports configuration of the http headers to utilize for determining prefix and scheme
Introduced two new configuration settings, server.reverseProxy.prefixHeader and server.reverseProxy.schemeHeader to define the headers to evaluate for prefix and scheme to use respectively, also moved server.baseUrl and server.scheme to server.reverseProxy.fallbackPrefix and server.reverseProxy.fallbackScheme.

Also fixed SockJS URI as generated in index.jinja to include BASE_URL.

 Should do what PR #507 intended, but with less code duplication.
2014-08-07 13:34:58 +02:00
Gina Häußge
02212bde21 Made the navbar static instead of fixed to improve usability on mobile devices
This is just a hack really, the proper approach would be to finally move to a real responsive design, but this should prove as a valid workaround until that is realized.

Closes #257 for now.
2014-08-07 09:55:50 +02:00
Gina Häußge
86c6cda79a Stop customized RequestHandler from sending another set of headers after the response
This was causing the GET request for the list of files following directly after a successful response from an upload to get associated with the second empty response sent directly after the upload and such lead to a funny timing issue causing the file list not to update correctly since the response to THAT request -- while received by the client -- could then not be processed.

See #455
2014-08-06 16:21:32 +02:00
Gina Häußge
488eb1fac3 Also reset "otherRequestInProgress" if the request fails 2014-08-06 12:15:02 +02:00
Gina Häußge
3eab5503f1 And even more debugging 2014-08-06 11:22:46 +02:00
Gina Häußge
61f84302f3 More debugging 2014-08-06 10:41:42 +02:00
Gina Häußge
5dc0333580 First couple of print statements for debugging a Heisenbug 2014-08-06 10:18:23 +02:00
Gina Häußge
f2092ee89c Merge branch 'devel' into dev/largeFileUpload 2014-08-05 19:59:05 +02:00
Gina Häußge
d4e7c2e1b1 We actually do want to run the configured system commands on the shell, so set shell to True
Also includes a workaround for sarge bug no. 21

Closes #489
2014-08-05 19:03:04 +02:00
Gina Häußge
9d69951faa Fixed double file request after file upload causing autoscrolling to uploaded file to not work 2014-08-05 12:33:08 +02:00
Gina Häußge
2d68b6e589 Get default max body size from settings too 2014-08-05 11:37:50 +02:00
Gina Häußge
b4af85f405 Finalizing upload streaming support
Major refactoring of octoprint.server.util (divided into smaller submodules), extended Tornado to allow for request-specific max content lengths, introduced settings parameters to configure maximum upload size, maximum request body size and file suffixes

See #455
2014-08-05 11:26:13 +02:00
Gina Häußge
e9ca09da87 Introduced UploadStorageFallbackHandler which rewrites multipart file upload forms to store the contained files in temporary files (like nginx-upload), made the file upload API in OctoPrint utilize this 2014-08-04 14:45:46 +02:00
Gina Häußge
d770c20b5a Working streaming file upload for now 2014-08-03 18:53:10 +02:00
Gina Häußge
1ef9c617b3 Trying to get large file uploads to work 2014-08-02 10:24:41 +02:00
Gina Häußge
8aab0ee318 Should fix #529 2014-08-01 14:20:11 +02:00
Gina Häußge
f9d1086062 UI now displays last print time as approx. total print time if available, otherwise uses estimated print time if available
Closes #523
2014-07-31 18:16:53 +02:00
Gina Häußge
5e8a04e54d Merge pull request #481 from Salandora/bugFixes
Bug fixes
2014-07-31 10:10:21 +02:00
Gina Häußge
be99c59725 Properly handle exceptions other than a non-zero return code for slicing and timelapse rendering
Closes #508
2014-07-17 15:34:00 +02:00
Gina Häußge
f6e2a59008 Correctly handle GET requests on /api/printer/{tool|bed} when printer is not operational
Closes #515
2014-07-17 13:02:00 +02:00
Gina Häußge
65624ed77e Also update the metadata correctly when an analysis finishes
Closes #476 for good
2014-06-23 18:54:45 +02:00
Gina Häußge
6a3241fa0b Another try at fixing #476 2014-06-23 16:22:57 +02:00
Gina Häußge
ff22ab0026 Submit login form upon enter in password field, switch to password field upon enter in username field 2014-06-23 13:55:49 +02:00
Gina Häußge
907f5051e1 Version resource on API with API and software version 2014-06-23 13:31:31 +02:00
Gina Häußge
18162cf110 Versioning by versioneer: https://github.com/warner/python-versioneer/
(cherry picked from commit 285f464)
2014-06-22 01:12:06 +02:00
Gina Häußge
285f464b43 Versioning by versioneer: https://github.com/warner/python-versioneer/ 2014-06-22 00:41:03 +02:00
Gina Häußge
585bfba850 Merge branch 'master' into devel
Conflicts:
	src/octoprint/server/ajax/control.py
2014-06-21 20:19:49 +02:00
Gina Häußge
522eb40808 Documented SockJS interface, deprecated /api/state 2014-06-08 16:52:28 +02:00
Gina Häußge
fa8d4eff0f Merge branch 'jonnor/api-allow-cors' into devel 2014-06-07 18:00:49 +02:00
Gina Häußge
666a9ef0fa ACCESS_CONTROL_REQUEST_HEADERS => Access-Control-Request-Headers
While flask internally translates that just right back, this makes the implementation more readable since it matches the standard header name
2014-06-07 17:49:55 +02:00
Jon Nordby
014ea3eadc API: Clarify Access-Control-Request-Header handling
'headers' was a way too generic name, and the code structure implied
it was used in place of 'resp.headers' or 'request.headers', which is not the case.
Also add comment about the purpose of this code.
2014-06-07 14:42:58 +02:00
Gina Häußge
f7e1b39af9 Added checkbox to the settings dialog for CORS, also slight changes in the documentation 2014-06-07 13:21:54 +02:00
Jon Nordby
651a9d30ce API: Only allow cross-origin requests if explicitly enabled
To enable, set the key "allowCrossOrigin" under "api" in config.yml
No user interface for this option yet
2014-06-07 01:04:32 +02:00
Jon Nordby
0bd6005cb9 API: Allow cross-origin requests
When a REST API is called from within a browser page from a different domain,
the server needs to explicitly allow this. This makes the OctoPrint
API available also to other webapps, for instance those hosted on same network in hackerspace.
2014-06-07 00:27:19 +02:00
Gina Häußge
3ee745d79c Always send commands with checksum when printing 2014-06-05 21:23:07 +02:00
Gina Häußge
ec508f5224 And another place I forgot to adapt to the new sd file list format 2014-06-01 18:44:39 +02:00
Gina Häußge
1b9523f700 Forgot to adapt verifyFileExists to new sd file list format 2014-06-01 11:54:03 +02:00
Gina Häußge
ee31808522 Also support extended sd file list (including size in bytes) from printer
See also #486 where support for SD_EXTENDED_DIR format was requested between the lines ;)
2014-05-30 18:05:43 +02:00
Gina Häußge
7414c921f3 Forgot to add some files to git again, argh! 2014-05-29 17:41:46 +02:00
Gina Häußge
d1d6e8e11c Filename might be None, do not try to pass that to os.path.basename.
See #486
2014-05-29 13:09:29 +02:00
Gina Häußge
778f9039fb supportRepetierTargetTemp being true is a too broad expression, also check for TargetExtr or TargetBed on line
See #486
2014-05-29 13:04:51 +02:00
Gina Häußge
4904c184f7 Removed accidentally committed dummy error (for testing pnotify migration) 2014-05-29 13:02:56 +02:00
Gina Häußge
cbde819e07 Better error reporting for timelapse rendering and system commands, updated pnotify and added possibility to add a "more" section to notifications 2014-05-26 22:51:45 +02:00
Salandora
3d6cb623f0 Autodetect Baudrate bugfix 2014-05-26 10:46:47 +02:00
Salandora
47cfcd7b12 Event Progress bugfix 2014-05-26 10:45:55 +02:00
Gina Häußge
244128c7ed Merge remote-tracking branch 'origin/devel' into devel 2014-05-25 20:19:03 +02:00
Gina Häußge
9c9b98dde4 Properly detect current file, forgot to adjust detection stuff in upload API after renaming things in the job tracking.
Thanks to Bryan Mayland for spotting this.

Closes #476
2014-05-25 20:18:41 +02:00
Salandora
536e17eac4 Bug fix for Emergency Stop 2014-05-22 17:56:50 +02:00
Gina Häußge
7bba1dc944 Merge pull request #473 from Salandora/EmergencyBug
Emergency Stop should not only trigger an event but also at least cancel the print

Closes #448
2014-05-22 12:33:32 +02:00
Salandora
59c859fb17 Bug fix for Emergency Stop 2014-05-22 11:46:42 +02:00