Commit graph

26 commits

Author SHA1 Message Date
Gina Häußge
416b897596 Fixed a documentation bug
Thanks @Booli
2015-01-19 11:15:09 +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
23387d6e48 More work on the template refactoring and new template plugin types 2015-01-15 11:06:59 +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
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
183a8feed4 Plugins can now push messages via the websocket as well 2014-11-25 09:08:33 +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
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
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
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
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
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
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
60ca95e9b2 Started documenting plugin types and their API 2014-09-30 23:20:47 +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
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
3f2fdb0b14 Added shutdown trigger and UUID persistence 2014-09-07 17:25:20 +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
e1366ef90f First experiments with a plugin system, service discovery and connectivity ensurance 2014-09-05 17:11:11 +02:00