Commit graph

432 commits

Author SHA1 Message Date
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
62667de4a8 Fix: Don't try to create a SessionUser for anonymous users 2014-10-30 12:22:58 +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
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