Commit graph

2442 commits

Author SHA1 Message Date
Gina Häußge
71581c9c93 Fix deletion of migrated system commands
We need to process the deletion in reverse order, or we'll
delete the wrong (or no) commands due to the changing
list size.
2016-11-18 14:54:02 +01:00
Gina Häußge
7489d2da80 Updated german translation 2016-11-18 14:07:51 +01:00
Gina Häußge
7c1bb5c115 Cache templates per locale, otherwise we might get a language mix 2016-11-18 14:07:31 +01:00
Gina Häußge
b8278b6a93 Don't safe config.yaml when migrating settings overlays 2016-11-18 13:40:25 +01:00
Gina Häußge
7709150a2b Make backup of config before system command migration 2016-11-18 13:39:31 +01:00
Gina Häußge
fc06c91ae8 Auto-migrate manual server system commands in config
If there are custom system menu entries for restart, reboot and/or
shutdown, they are deleted. If the corresponding server command is
not yet configured, the command from the system menu entry is
transfered.
2016-11-18 13:07:19 +01:00
Gina Häußge
2564820d16 Fix ordering of core system commands & slight rewording 2016-11-18 13:05:26 +01:00
Gina Häußge
f83625acba New "octoprint config" CLI
Allows getting and setting settings values
2016-11-18 13:04:59 +01:00
Gina Häußge
97bf331307 Add safe mode that disables all third party plugins
Can be enabled either through new --safe command line
parameter or through server.startOnceInSafeMode in
config.yaml

When running in safe mode the plugin manager will
only allow to disable or uninstall third party plugins. Enabling
third party plugins or installing new plugins is disabled.

That will hopefully allow for more straightforward recovery
in case of a misbehaving plugin.
2016-11-18 13:02:16 +01:00
Gina Häußge
e4d34f4130 Fix logging during settings initialization
We record the messages logged during that time to a recording
log handler, then playback anything we caught after startup.
2016-11-18 10:25:24 +01:00
Gina Häußge
b68ee4df98 If l10n is set on page load, set OctoPrint.options.locale to its value
That way API requests will be made with the locale the page was requested
in.

See #1593
2016-11-18 07:56:56 +01:00
Gina Häußge
0d13c3b439 Add OctoPrint.options.locale and if set send X-Locale header on requests
See #1593
2016-11-18 07:56:49 +01:00
Gina Häußge
1a75dcd5ee Allow locale definition via request header
Important for session less API calls that might return
localized content (e.g. the system commands).

See #1593
2016-11-18 07:56:35 +01:00
Gina Häußge
d1cb8ca98a Fix premature parse stop on M114 and M115 response with ok-prefix 2016-11-17 17:30:10 +01:00
Gina Häußge
f1a1b851ee Better resilience against exceptions in view models in callViewModels 2016-11-17 17:15:28 +01:00
Gina Häußge
07382d3918 Add (optional) firmware auto detection
If enabled (which it is by default), OctoPrint will now send
an M115 to the printer on initial connection in order to try
to figure out what kind of firmware it is. For FIRMWARE_NAME
values containing "repetier" (case insensitive), all Repetier-
specific flags will be set on the comm layer. For FIRMWARE_NAME
values containing "reprapfirmware", all RepRapFirmware-
specific flags will be set on the comm layer.

For now no other handling will be performed.
2016-11-17 17:13:36 +01:00
Gina Häußge
ec12e52865 virtual printer: small fix of temperature responses 2016-11-17 14:46:56 +01:00
Gina Häußge
d5a73b8b4f Add chunks util function 2016-11-17 12:14:10 +01:00
Gina Häußge
b87348be3b Add support for M115 to virtual printer 2016-11-17 12:13:52 +01:00
Gina Häußge
0ad057cdbb Fix PrintFailed event
Was missing the new fields in the payload
2016-11-16 16:09:42 +01:00
Gina Häußge
1a5f4e0b9f Stop focusing files in list after deleted file
Looks weird, especially with the new yellow highlight.
2016-11-16 16:04:43 +01:00
Gina Häußge
f688786fd5 Make cache validation for settings API depend on effective config 2016-11-16 15:38:13 +01:00
Gina Häußge
a58b167bed Utilize settings chain maps for plugin default settings too 2016-11-16 15:37:49 +01:00
Gina Häußge
83a08cd927 Fix a small issue with estimator output when no file is selected 2016-11-16 14:12:37 +01:00
Gina Häußge
c194cabdcf Fix for select&print not working for SD files anymore
Timing issue, "OctoPrint.job.start()" would be called at a time
when the file had not yet been selected on the server. Hence
a different approach, calculating printerAfterLoading parameter
based on existing information at the time of clicking the
load button and using the print parameter on the select
file API again, as previously.
2016-11-16 14:12:00 +01:00
Gina Häußge
174ffdf06f Simplified a line 2016-11-15 17:26:41 +01:00
Gina Häußge
7ae6240de2 Make CommandLineCaller use unicode instead of bytes
p.(stdout|stderr).text is unicode. p.(stdout|stderr).readline isn't, so decode
manually.

Should hopefully solve #1586 for good now...
2016-11-15 17:26:11 +01:00
Gina Häußge
f9253adf72 Remove accidentally commited plugin file 2016-11-15 13:03:18 +01:00
Gina Häußge
cc5f119f1b Include position in PrintPaused and PrintCancelled events
If available. Updated docs accordingly.
2016-11-15 11:56:30 +01:00
Gina Häußge
a8ff23abe4 Also track F parameters in G28 commands 2016-11-15 11:55:34 +01:00
Gina Häußge
e6c4e0a808 Query byte position on cancel of SD print 2016-11-15 11:55:09 +01:00
Gina Häußge
58835cfd8e Add tracking of cancel position & make public 2016-11-15 11:54:35 +01:00
Gina Häußge
e04bdb3571 Allow access to the current printed file position 2016-11-15 10:28:14 +01:00
Gina Häußge
06f7abdb2d Manually track position in file
self._handle.tell lies because of line based reading and
buffering
2016-11-15 10:25:40 +01:00
Gina Häußge
2429ebc1a2 Virtual Printer: Simplified temperature output 2016-11-14 13:45:22 +01:00
Gina Häußge
c6b8b1725a Fixed duplicated M140 line (merge error) 2016-11-14 13:26:05 +01:00
Gina Häußge
4a67762ead virtual printer: Track F and flow/feedrate factors 2016-11-14 13:24:56 +01:00
Gina Häußge
0a9475661f SWU: more verbose output on restart fail 2016-11-11 15:26:36 +01:00
Gina Häußge
2c6fb68544 SWU: Fix issue with log output containing non ASCII characters
See #1586
2016-11-11 15:20:19 +01:00
Gina Häußge
b4215c885c Support M114 responses without whitespace between coordinates
Because apparently there exist some firmware variants/forks which don't
have spaces between the coordinate entries. Who needs standards :)
2016-11-11 13:24:00 +01:00
Gina Häußge
c8273785cd Fix position tracking of virtual printer
Wasn't taking relative moves into account for coordinate persistence.
2016-11-11 11:52:33 +01:00
Gina Häußge
5446dc645c Use default settings preprocessors if none are provided
Re-enables feedback controls.

Closes #1588
2016-11-11 11:45:17 +01:00
Gina Häußge
fac83e91f2 Invalidate timelapse cache when config changes 2016-11-09 16:31:43 +01:00
Gina Häußge
153ebc3692 Fixed retractionZHop setting for Z timelapses
Solves issue reported in #1148 for 1.3.0rc1
2016-11-09 16:30:51 +01:00
Gina Häußge
b74a5db4d8 Get rid of double scroll bar in printer profile editor 2016-11-09 15:45:39 +01:00
Gina Häußge
47a3e0340e Allow to define a custom bounding box for printer head movements
That bounding box may have larger dimensions than the print volume
(but not smaller ones). That allows to define safe areas for which no
"exceeds print volume" messages need to be triggered.

Solves #1551
2016-11-09 15:45:25 +01:00
Gina Häußge
d28e0988fb Merge branch 'maintenance' into devel 2016-11-07 16:18:26 +01:00
Gina Häußge
2952b2622e Do not hiccup on ipv6 addresses in the HTTP Host header
Fixed port extraction. Now supports hostname, hostname + port,
ipv4, ipv4 + port, ipv6, ipv6 + port

Fixes #1571
2016-11-07 16:17:16 +01:00
Gina Häußge
970880dee6 Added user roles and enabled plugins to settings ETag
Otherwise the cache of /api/settings would not be properly invalidated
on a change in either the user login state or the set of active plugins.

See also #1576
2016-11-07 11:55:26 +01:00
Gina Häußge
4689a405a3 Merge branch 'dev/positionRecordingOnPause' into devel 2016-11-04 12:12:38 +01:00
Gina Häußge
fae27c77b5 Have virtual printer coordinates start at 0.0 2016-11-04 12:12:30 +01:00
Gina Häußge
3f0bfa0fc8 New POSITION_UPDATE event for responses to M114 2016-11-04 12:11:16 +01:00
Gina Häußge
35cf623f81 Merge pull request #1550 from dattas/feature/cancel-confirmation
Add confirmation dialog to cancel to prevent accidental cancel of prints
2016-10-26 11:03:40 +02:00
Gina Häußge
7abd35196e Merge pull request #1554 from FHeilmann/FHeilmann-adjust_values_func
Adjust output of values() classmethod to not include function itself
2016-10-26 11:02:12 +02:00
donovan6000
6114ee4f32 Fixed Cura plugin's get_pos_x/y returning the wrong value when self._posX/Y is 0 2016-10-25 22:46:32 -07:00
Florian Heilmann
5ac934bcc4 Fix Typos
Note to self: double and triple check more!

turn "=" into "=="
2016-10-22 12:53:32 +02:00
Florian Heilmann
fd1016695f Adjust output of values() classmethod
The way it was before, the function would also return itself. This isn't really a problem here, but if someone takes this function as a guide (like me) they can run into problems when iterating over the returned array, as it contains an element representing "values()" itself.

Another approach would be make use of the inspect package and replace name="values" with inspect.ismethod(name)
2016-10-22 12:39:16 +02:00
Gina Häußge
728172136a Record position on pause & track F 2016-10-21 20:38:15 +02:00
Gina Häußge
d3cc96523e Fix M114 in virtual printer 2016-10-21 20:37:41 +02:00
Dattas Moonchaser
7e2382fed4 Add option to repeat last captured frame instead of capturing new frames for the end of a timelapse. Defaults to current behavior (capturing new frames for the time after). Implements foosel/OctoPrint#1422 2016-10-20 19:06:26 -06:00
Dattas Moonchaser
7fb2745f8f Add confirmation dialog to cancel to prevent accidental cancel of print (which is hard to undo!) 2016-10-19 15:22:15 -06:00
Gina Häußge
0fcef2a8aa Updated german translation 2016-10-19 12:17:34 +02:00
Gina Häußge
6b41b8826e Slight rewording in Cura wizard 2016-10-19 12:17:17 +02:00
Gina Häußge
d96991bbf6 Fix detection if webcam wizard is required 2016-10-19 11:05:05 +02:00
Gina Häußge
8c336afeab Mark support annountement as seen by default
devel has wizard screen to hint people at support page
2016-10-19 11:03:49 +02:00
Gina Häußge
bfae91d737 Another jquery update 2016-10-18 12:58:26 +02:00
Gina Häußge
8e90555381 Updated & renamed some JS dependencies 2016-10-18 12:31:56 +02:00
Gina Häußge
df5eae91a6 Adjust empty asset handling to match style in devel 2016-10-17 14:31:56 +02:00
Gina Häußge
c66be226b1 Merge branch 'maintenance' into devel
# Conflicts:
#	CHANGELOG.md
2016-10-17 14:24:17 +02:00
Gina Häußge
7efdeced62 Merge branch 'rc/maintenance' into maintenance 2016-10-17 14:23:43 +02:00
Gina Häußge
88f8077b77 Plugin JS files might be empty, need to handle that
Otherwise webassets will explode with empty file list on bundle creation.
2016-10-17 12:16:53 +02:00
Gina Häußge
2f7a400c5a Support for M116
When encountered: set heatup and long_running_command flags to True, set heatup start time
2016-10-17 11:50:23 +02:00
Gina Häußge
4724153637 Restrict upload dialogs for plugins and language packs to supported extensions 2016-10-17 11:33:23 +02:00
Gina Häußge
93196993d1 Last modified may be any of int, long, float
... and complex for good measure. Basically: a number.
2016-10-17 10:46:49 +02:00
Gina Häußge
696979789e Merge branch 'improve/supportRinTempCommands' into devel
# Conflicts:
#	src/octoprint/plugins/virtual_printer/virtual.py
2016-10-17 10:44:18 +02:00
Gina Häußge
696904bc49 Support M1{09|90} R<temp> in virtual printer too 2016-10-17 10:41:39 +02:00
Gina Häußge
cd578dc2e1 Checking M109/M190 for R should actually check for R and not S
Thanks @FHeilmann
2016-10-17 10:29:16 +02:00
Gina Häußge
0d8fdfae26 Trust Tc over T when parsing temps from the firmware 2016-10-17 10:27:06 +02:00
Gina Häußge
534b56b721 Merge branch 'improve/supportRinTempCommands' into devel 2016-10-17 09:48:15 +02:00
Gina Häußge
e15956883a Add support for R parameter in M109/M190 2016-10-14 18:19:08 +02:00
Gina Häußge
9fb8883923 Merge branch 'fix/issue1541' into devel 2016-10-14 16:24:43 +02:00
Gina Häußge
3f8dde75d5 Persist settings after changing default printer profile
Fixes #1541
2016-10-14 16:23:47 +02:00
Gina Häußge
6e39ea046f Merge branch 'fix/issue1543' into devel 2016-10-14 16:02:00 +02:00
Gina Häußge
bc5044b125 Fix target temperature propagation from comm layer
When setting the tracked target temperature from a sent temperature
command, the changes in tracked temperature were not propagated
from the comm layer to registered callbacks.

But since the standard printer also didn't make a copy of the mutable
dict of tool temperatures, those were in fact updated even without
propagation in the printer implementation when the values in the
comm layer got updated, whereas the bed temperature - an immutable
tupel - was not.

Two wrongs sometimes do in fact make a right. In this case that led
to target temperature changes on the tools immediately reflecting
in printer.get_current_temperatures after the command was sent,
but changes to the bed target taking until the next M105 response
to propagate.

Decoupling the data structures and adding propagation commands
to the comm layer solves this issue.

Fixes #1543
2016-10-14 16:01:03 +02:00
Gina Häußge
f7eb12a3ee Docs for {Reload|Restart}NeedingPlugin 2016-10-14 14:15:33 +02:00
Gina Häußge
ee92fc6907 Docs for CLI of software update plugin 2016-10-14 13:57:01 +02:00
Gina Häußge
62939ef11b Clarification regarding webcam URL formats 2016-10-14 12:35:01 +02:00
Gina Häußge
5f60017bb2 Merge branch 'improve/curaImporter' into devel
# Conflicts:
#	src/octoprint/plugins/cura/templates/cura_settings.jinja2
2016-10-14 12:00:17 +02:00
Gina Häußge
c863562d12 Limit cura profile importer to .ini files and clarified support again 2016-10-14 11:58:39 +02:00
Gina Häußge
44402fda3a Use CleaningTimedRotatingFileHandler in virtual printer 2016-10-14 09:37:06 +02:00
Gina Häußge
7714aaca89 Merge branch 'fix/timelapseFramerateParameter' into devel 2016-10-13 19:23:26 +02:00
Gina Häußge
27fb397681 ffmpeg: Only modify the -framerate parameter for setting video fps
-r only allows a limited set of target framerates according to the mpeg2
 standard, but -framerate allows to specify how long each frame should
 be shown, giving us full control over "virtual" fps without causing errors
 when the user selects a non-standard frame rate
2016-10-13 19:23:15 +02:00
Gina Häußge
3606ed126a Fix a merge error causing timeouts on the virtual printer
Long lines (longer than rx buffer) could not be processed at all, leading
to a serial timeout exception thrown by the virtual printer. Adjusted
to allow for partial processing like on maintenance
2016-10-13 17:43:03 +02:00
Gina Häußge
613363379f Merge branch 'maintenance' into devel
# Conflicts:
#	CHANGELOG.md
#	src/octoprint/templates/javascripts.jinja2
2016-10-13 17:17:44 +02:00
Gina Häußge
6cd6b98c2b Core JS needs to go after plugin JS, or we might run into race conditions 2016-10-13 16:11:13 +02:00
Gina Häußge
5626b6d40b Merge branch 'maintenance' into devel
# Conflicts:
#	src/octoprint/templates/javascripts.jinja2
2016-10-13 15:52:03 +02:00
Gina Häußge
99004f14ba Core JS needs to go after plugin JS, or we might run into race conditions 2016-10-13 15:51:38 +02:00
Gina Häußge
9de78001dd Merge branch 'maintenance' into devel
# Conflicts:
#	CHANGELOG.md
#	docs/plugins/concepts.rst
#	src/octoprint/__init__.py
#	src/octoprint/server/__init__.py
#	src/octoprint/templates/javascripts.jinja2
#	src/octoprint/timelapse.py

Merge branch 'devel' into dev/wizard

# Conflicts:
#	octoprint_octobullet/__init__.py
#	octoprint_octobullet/templates/octobullet_settings.jinja2

Merge branch 'devel' into dev/wizard

# Conflicts:
#	octoprint_octobullet/__init__.py
#	octoprint_octobullet/templates/octobullet_settings.jinja2
2016-10-13 14:22:40 +02:00
Gina Häußge
419f3370a2 Split JS/CSS/LESS assets between core+bundled plugins and external plugins
That way a JS error in an external plugin won't nuke the whole UI, which IMHO
is worth the additional requests needed to load the split up files.

See #1544 for an example of such a situation.
2016-10-13 12:07:00 +02:00
Gina Häußge
1370c7a9cc Inject plugin_info object into plugin implementations as well 2016-10-13 12:03:05 +02:00
Gina Häußge
67634e4f7c Merge branch 'improve/loggingHandlers' into maintenance 2016-10-12 18:15:12 +02:00
Gina Häußge
3d26e478e3 Fix a bug causing the update of OctoPrint to not work under certain circumstances
The bug only manifests if a user had installed 1.2.16 earlier and never once hit "Save" in the
settings before attempting to update to 1.2.17. With 1.2.16 the updater script and settings for
OctoPrint's own update mechanism were changed to prefer "checkout_folder" instead of
"update_folder". In earlier versions however "update_folder" was still used. Saving settings
even once (even without any changes!) will migrate the data. But if that's not done a
KeyError will be raised when trying to retrieve "update_folder" from the check config, with
"checkout_folder" as its fallback.

Rather stupid error really.
2016-10-12 18:13:46 +02:00
Gina Häußge
e8ee9d712c Better reporting of timelapse capture errors
* show special error if timelapse can't be rendered due to no frames having
    been captured
  * inform user during print about repeated capture errors
  * do not start post roll recording if after a print no frames were captured at all
  * also interpret non-ok-ish return codes from snapshot url as capture error
  * documentation for CaptureFailed event
2016-10-12 15:12:28 +02:00
Gina Häußge
6143985517 Merge remote-tracking branch 'origin/devel' into devel 2016-10-11 16:35:57 +02:00
Gina Häußge
4de8154064 Stop event queue on shutdown and join on it 2016-10-11 16:34:30 +02:00
Gina Häußge
c0ba4da562 Merge branch 'devel' into dev/shutdownEvent 2016-10-11 13:34:35 +02:00
Gina Häußge
688a998dd2 Use CleaningTimedRotatingFileHandler in bundled plugins 2016-10-11 10:54:16 +02:00
Gina Häußge
343631b3c6 Custom SerialLoggingHandler
Does roll overs on next connections to the printer
2016-10-11 10:53:37 +02:00
Gina Häußge
139b2277d1 Fix missing absolute import declarations 2016-10-10 19:45:34 +02:00
Gina Häußge
e8123a6ab1 Custom logging handler that cleans files on startup 2016-10-10 19:27:18 +02:00
Kyle Evans
35f4b9e601 print() uses file=, not stream= -- fix that, fix the error 2016-10-07 14:46:03 -05:00
Salandora
f1891fedb4 Fixed a bug which caused the layer up/down keyboard implementation to fail. 2016-10-06 19:20:04 +02:00
Gina Häußge
e39e512e48 Fixed an issue with the file move API command 2016-10-06 17:12:18 +02:00
Gina Häußge
d802602e1e Merge branch 'maintenance' into devel
# Conflicts:
#	CHANGELOG.md
2016-10-06 16:21:13 +02:00
Gina Häußge
41fe997af4 Make sure to also delete any un-suffixed cookies when deleting a cookie
Follow-up to a161feb
2016-10-06 15:25:13 +02:00
Gina Häußge
c850646539 Merge branch 'maintenance' into devel
# Conflicts:
#	src/octoprint/static/js/lib/less.min.js
2016-10-06 09:22:36 +02:00
Gina Häußge
6c21ee32a8 Fix broken filtering on ItemListHelper
Filter toggling didn't remove the specific filter but always the last item
in the filter list. No, I don't know either why I didn't notice this earlier m(
2016-10-05 19:52:28 +02:00
Gina Häußge
bcef804a4a Updated less.js to current version 2.7.1 2016-10-05 12:54:57 +02:00
Gina Häußge
e1814e9c7e Merge branch 'maintenance' into devel 2016-10-05 12:43:11 +02:00
Gina Häußge
39d5446789 Fixed encoding bug in HTTP request processing, causing weird flask issues
If a content type header was present on a multipart form data part it would turn
the rewritten body into a unicode instead of a byte array, causing a later conversion
to a byte stream to not capture.

Fixed both the fact that the rewritten body would turn into unicode by making
sure the content type header was provided as byte array and fixed the byte stream
conversion to also trigger on unicode instances.

Solves #1531
2016-10-05 12:33:02 +02:00
Gina Häußge
1456a3e360 Merge branch 'maintenance' into devel 2016-10-04 18:37:58 +02:00
Gina Häußge
a161feb106 Fix bug causing remember_me cookie not to deleted properly on logout 2016-10-04 18:34:45 +02:00
Gina Häußge
8c74b9e74d SettingsPlugins may now mark paths as restricted
That way they can ensure that no sensitive settings data may be
 sent on the REST API.
2016-10-04 16:10:01 +02:00
Gina Häußge
ad21bbb2ff Merge remote-tracking branch 'origin/devel' into devel 2016-10-04 12:28:11 +02:00
Gina Häußge
52de4cba9a Uniform labeling in extended file info
Either "Like This" or "Like this", not both.
2016-10-04 12:27:40 +02:00
Gina Häußge
1c3de9019b data.prints.last.lastPrintTime => data.prints.last.printTime 2016-10-04 12:26:36 +02:00
Gina Häußge
ecde4b81d0 Merge branch 'patch-1' of https://github.com/I-am-me/OctoPrint into pr/I-am-me/patch-1 2016-10-04 11:33:22 +02:00
Gina Häußge
bc0880711b Log full stack trace on socket connection errors when debug logging
Might help bring some clarity for #1523
2016-10-04 10:18:48 +02:00
I-am-me
369e43eb0e Changed "Last (estimated) print time" to real time
To answer https://github.com/foosel/OctoPrint/issues/1048 I changed L357 to "output += gettext("Last Print Time") + ": " + formatDuration(data["prints"]["last"]["printTime"]);" as proposed by @ntoff
2016-09-29 14:26:47 +02:00
Gina Häußge
73e8d5e0a9 Merge branch 'maintenance' into devel
Conflicts:
	src/octoprint/server/util/flask.py
2016-09-28 13:48:47 +02:00
Gina Häußge
e038cfa4dc Track bypassed views on cache too
Only keep the cache keys, but that way we know when
we were going to cache something and then didn't
due to environmental factors, e.g. headers on request
or response.

Necessary to be able to track if the preliminary caching
has been done during startup to properly reflect that
on cached.gif
2016-09-28 13:44:59 +02:00
Gina Häußge
82ae52e619 More docs & client fixes 2016-09-28 12:53:43 +02:00
Gina Häußge
4e69b260a1 Docs for user API
Also some fixes on said API and some fixes in the docs
2016-09-28 11:18:43 +02:00
Gina Häußge
82ae3f6f6e Re-added two utility methods removed in d9e3553c7c
They are still useful for other clients than the core application. Renamed them to fit the
general naming on the API however:

  * pathForElement is now called pathForEntry
  * elementByPath is now called entryForPath
2016-09-28 10:21:27 +02:00
Gina Häußge
aca3dfae49 Merge branch 'maintenance' into devel
# Conflicts:
#	CHANGELOG.md
2016-09-23 14:35:31 +02:00
Gina Häußge
080a6e9ccd Extend atomic_write to allow setting & persisting file permissions 2016-09-23 14:26:33 +02:00
Gina Häußge
3a13dd9022 Fixed printerParameters config migrator
Was marking the config as dirty just when printerParameters entry existed,
which always exists - various sub entries of that are what needs to be checked
instead.
2016-09-23 12:37:41 +02:00
Gina Häußge
0b551f6b7e Some more documentation 2016-09-22 22:21:52 +02:00
Gina Häußge
8e8853c9c3 Lots of documentation updates + some related code fixes 2016-09-22 16:27:06 +02:00
Gina Häußge
6f029d6bf4 Docs and minor fixes for printer profile API 2016-09-21 12:05:17 +02:00
Gina Häußge
fc891ac651 Make sure volume.depth for circular beds is forced to width
Both width and depth should be the diameter. Adjusted docs
accordingly to reflect this too.
2016-09-21 10:45:40 +02:00
Gina Häußge
24322f9204 Refactored printer profile editor
It's now spread across multiple pages, with explanations
added where the data will be used.
2016-09-21 10:11:38 +02:00
Gina Häußge
133377c424 Also allow None for lastmodified and etag value 2016-09-20 15:09:47 +02:00
Gina Häußge
234cb501e7 Also accept int values for check_lastmodified 2016-09-20 14:32:19 +02:00
Gina Häußge
85e23c976b Sane defaults for empty printer profile fields 2016-09-19 14:35:04 +02:00
Gina Häußge
d017e507aa Directly determine file download URL in js client
We don't need an extra round trip here
2016-09-16 18:36:09 +02:00
Gina Häußge
53c0ad0889 Fixed unit tests for octoprint.timelapse 2016-09-16 18:35:30 +02:00
Gina Häußge
d2ed80baca Merge branch 'dev/apiCaching' into devel
# Conflicts:
#	src/octoprint/filemanager/storage.py
#	src/octoprint/static/js/app/viewmodels/files.js
2016-09-16 17:11:14 +02:00
clemniem
74fd5e8956 Fixed KeyError in events.py that prevented a command associated with the ClientOpened event from execution.
The if-statement checked against currentData["job"] is not None, although it was not None even if there was no job.
2016-09-16 16:21:28 +02:00
Gina Häußge
650e1971d4 Merge branch 'maintenance' into devel
# Conflicts:
#	CHANGELOG.md
#	src/octoprint/static/js/app/viewmodels/usersettings.js
2016-09-16 14:11:43 +02:00
Gina Häußge
0167015b46 Fix generate/delete API key functionality in user settings
Closes #1491
2016-09-12 12:48:10 +02:00
Gina Häußge
8b99c89acf Return 400 Bad Request if a multipart request lacks the boundary
It's mandatory according to RFC2046, section 5.1

See also #1486
2016-09-12 12:48:10 +02:00
Mathias Rangel Wulff
b794a4672f Correct check for undefined variable
The code was comparing the result of `typeof` with a variable named `undefined`.

As typeof returns a string it should compare to `'undefined'`.
2016-09-12 09:43:46 +00:00
Gina Häußge
0bb6f5215d "prerelease" key might not be in check if tracking stable releases 2016-09-12 09:25:34 +02:00
Gina Häußge
b6fbbb353a Merge branch 'maintenance' into devel
# Conflicts:
#	CHANGELOG.md
#	src/octoprint/filemanager/storage.py
#	src/octoprint/plugins/softwareupdate/templates/softwareupdate_settings.jinja2
2016-09-09 12:31:29 +02:00
Gina Häußge
7efa311b04 Updated the german translation again after adding a sentence 2016-09-09 11:52:54 +02:00
Gina Häußge
c6d9575127 Added link to "Using Release Channels" to the SWU settings dialog 2016-09-09 11:34:25 +02:00
Gina Häußge
bbe6e44d44 Only use non-postfixed cookie if no postfixed one exists
Example:

  * both "session" and "session_P5000" cookies available: "session" value from "session_P5000"
  * only "session" cookie available: "session" value from "session"
  * only "session_P5000" cookie available: "session" value from "session_P5000"
2016-09-08 15:42:51 +02:00
Gina Häußge
53b74f9caa Only construct HTTP_HOST header from SERVER_NAME and _PORT if it's unset
If HTTP_HOST is set, following PEP333 it takes precedence over SERVER_NAME and
_PORT, so we set those from it.
2016-09-08 15:18:09 +02:00
Gina Häußge
a7bd770180 Allow overriding file name sanitization by sub classes of LocalStorage 2016-09-08 12:50:04 +02:00
Gina Häußge
2b22d26eac Fixed a small issue with RFC 5987 headers arriving as unicode in parser
Also added API docs regarding header encoding, incl support for RFC 5987
for filename fields in Content-Disposition headers in multipart/form-data
parts, incl. an example of an upload request with a utf-8 encoded filename.
2016-09-07 18:44:46 +02:00
Gina Häußge
64d484bd09 Merge branch 'maintenance' into devel
# Conflicts:
#	src/octoprint/server/__init__.py
#	src/octoprint/util/jinja.py
2016-09-07 17:22:37 +02:00
Gina Häußge
13728c231c Also explicitely support ISO-8859-1 encoded multipart headers
Solves an issue with clients encoding filenames in multipart
 headers in ISO-8859-1, causing an HTTP 500 response code.

 This change makes ISO-8859-1 encoded headers work, sends
 a 400 Bad Request instead of 500 Internal Server Error if the
 request multipart headers cannot be decoded as either UTF-8
 or ISO-8859-1, defines UTF-8 content type for multipart text
 fields in rebuilt body and also adds support for RFC 5987 for the
 multipart file upload "filename" header component.
2016-09-07 17:03:59 +02:00
Gina Häußge
209a88bd6a And consequently yet another update of the german translation 2016-09-07 12:10:34 +02:00
Gina Häußge
2256a1e825 Found an untranslated piece of UI 2016-09-07 12:05:54 +02:00
Gina Häußge
976be675e5 Declare cache_key before trying to access it 2016-09-07 11:59:43 +02:00
Gina Häußge
122ec39728 And another update of the german translation 2016-09-07 11:55:31 +02:00
Gina Häußge
d4428de9a0 Some rewording 2016-09-07 11:55:17 +02:00
Gina Häußge
536d46f15d Updated german translation 2016-09-07 10:21:21 +02:00
Gina Häußge
62d5f04373 Merge branch 'fix/portRestrictedCookies' into maintenance 2016-09-05 12:11:12 +02:00
Gina Häußge
b48af7133e Fixed validator for tornado 2016-09-05 12:10:58 +02:00
Gina Häußge
9a9502b281 "prerelease" might not be in check (chances for that are actually high), don't hiccup on that 2016-09-05 12:09:13 +02:00
Gina Häußge
9d9eb3390d Cookie names are now port specific, based on the request associated with a response
* make sure server_port headers are properly set in reverse proxied scenarios
  * overwrite request and response classes to
    * always apply reverse proxy environment changes (so far missing for tornado
      context)
    * strip cookie name suffixes from cookie names on requests and
    * be sure to set cookie name suffixes for cookie names on responses
    * include script root in path used for cookies
  * some minor refactoring in octoprint.server setup routines
  * removed ReverseProxied class (didn't work for tornado context)
  * add unit tests for the whole reverse proxy, request and response customization
2016-09-05 12:06:56 +02:00
Mike New
9bed3dcf8b fixed printer depth not saving or loading properly in the printer profile 2016-09-02 22:14:57 -07:00
Gina Häußge
f936c24da4 Changed wording on previous/next layer buttons & reordered 2016-09-01 15:12:22 +02:00
Gina Häußge
257cfe9dd9 Debug logging of render duration for / view 2016-09-01 13:20:05 +02:00
Gina Häußge
854eef7d00 Gracefully handle errors when reading webassets 2016-09-01 13:19:31 +02:00
Gina Häußge
37a39e82e2 path_in_location needs to use sanitized entry 2016-09-01 13:17:09 +02:00
Gina Häußge
c552c614b2 Fix upload highlight in folders & keep folder on files refresh 2016-09-01 13:16:33 +02:00
Gina Häußge
6f48ca68e2 Fixed a merge error, _execute returns three values in 1.3.0, not two 2016-09-01 10:29:29 +02:00
Gina Häußge
eb4be89d39 Renamed GcodeFileViewModel to FileViewModel
(Let's be realistic here)

Introduced new "additionalNames" property on viewmodel declaration
to allow for registering alternative lookup names for a view model.

The freshly renamed FileViewModel now resolves as both "filesViewModel"
 and "gcodeFilesViewModel", making the renaming backwards compatible

 Documented all that stuff (and some more)
2016-09-01 10:17:18 +02:00
Gina Häußge
2a33aef617 Refs weren't propery set on file API 2016-08-31 17:57:17 +02:00
Gina Häußge
e42ef3d070 Small fixes on the layer buttons
Removed unnecessary (and broken) call to event.preventDefault,
moved styles to less/css and also made sure to disable the buttons
not currently usable.
2016-08-31 17:20:23 +02:00
Gina Häußge
d2b0387994 Be sure that opts.url == urlToCall 2016-08-31 15:51:15 +02:00
Gina Häußge
20607dfab0 Work around a race condition(?) causing issues on startup
See lengthy comment inside main.js added in this commit.
2016-08-31 15:50:33 +02:00
Gina Häußge
9e1f82d977 Don't modify the list in the cache, make a copy 2016-08-31 11:49:53 +02:00
Gina Häußge
5c9ed254ff Fix a missing parameter 2016-08-31 11:11:47 +02:00
Gina Häußge
c32d9a33ee Make sure to include the sd files in the ETag calculation as well 2016-08-31 11:11:18 +02:00
Gina Häußge
bccc706329 First throw at caching of API methods
Most caching is left to the client, by utilizing ETag and Last-Modified headers.

Where it was easily achievable, an additional server side miniature cache of intermediary
results was introduced (e.g. for the files). The regular cached decorator was not used
since it targets caching full responses, and the responses in question already contained
client request specific data. Caching "one step earlier" allows better usage of the cache here.

Also introduced a dependency on the scandir module, to get a bit of a performance boost
on os.walk and os.listdir (which have been replaced with scandir.walk and scandir.listdir
respectively). See https://github.com/benhoyt/scandir#background on why that made
sense.
2016-08-30 19:02:30 +02:00
Gina Häußge
e00de7145f Fixed some indentation 2016-08-30 18:05:22 +02:00
Gina Häußge
ce28b637ab Better solution for access to .md files when running from source
The SelectedFileSystemLoader doesn't collect everything and the
kitchen sink from disk...
2016-08-29 17:50:14 +02:00
Gina Häußge
a13e12bb5e More work on JS Client documentation 2016-08-26 17:47:38 +02:00
Gina Häußge
12bc85694b Small optimizations on copy and move commands 2016-08-26 17:47:28 +02:00
Gina Häußge
efca776102 Merge branch 'maintenance' into devel
Conflicts:
	src/octoprint/plugins/softwareupdate/templates/softwareupdate_settings.jinja2
	src/octoprint/plugins/softwareupdate/updaters/update_script.py
2016-08-26 14:24:13 +02:00
Gina Häußge
21b7339187 SWU: Move branch config to update check & fix release version detection again 2016-08-26 14:18:17 +02:00
Gina Häußge
df1a97b0e1 SWU: Only enforce unequality comparison on release channel switch 2016-08-26 10:40:01 +02:00
Gina Häußge
66da377b64 SWU: Minor fixes in the octoprint check population 2016-08-26 10:19:20 +02:00
Gina Häußge
34e5b5d50f SWU: Sort github releases by version, not publication date
We can't rely on the publication date anymore with the introduction of prerelease
channels, since e.g. a current devel prerelease might have been published
earlier than the latest stable but should still be considered the latest release for
this release channel
2016-08-26 10:18:35 +02:00
Gina Häußge
882cf3a142 SWU: git reset => git reset --hard for forced version 2016-08-25 16:49:18 +02:00
Gina Häußge
d9a4ff47b6 Make sure to switch back to master for stable release channel 2016-08-25 16:30:35 +02:00
Gina Häußge
d538b3fd38 Adjust swu plugin settings to selected update method 2016-08-25 15:45:25 +02:00
Gina Häußge
f8386649bf Fix release channel selector 2016-08-25 13:32:18 +02:00
Gina Häußge
4fe944eb85 Actually trigger the beforePrintStarted script on print start
Missing trigger caused by 5bf5e336ec
2016-08-25 09:56:20 +02:00
Gina Häußge
b5bc03e711 First throw at release channels
We start out with master (Stable), rc/maintenance (Maintenance) and rc/devel (Devel)
2016-08-25 09:41:12 +02:00
Gina Häußge
2e27e640cd Better yet, mirror actual active login 2016-08-24 16:27:23 +02:00
Gina Häußge
1d8dea4d1b Fully mirror regular passive_login for auto login 2016-08-24 16:23:41 +02:00
Gina Häußge
9165c9475d Docs for about dialog panels through the TemplatePlugin mixin 2016-08-19 13:57:58 +02:00
Gina Häußge
27ada38855 Update of docs for preemptive cache methods on UiPlugin + method rename 2016-08-19 13:49:32 +02:00
Gina Häußge
5b0bc8c3a8 Some text changed for the first and last page on the first run wizard 2016-08-19 13:36:31 +02:00
Gina Häußge
98b57650d9 Add first run wizard dialog for default printer profile 2016-08-19 11:42:06 +02:00
Gina Häußge
d2f8b957bc Modularize printer profile manager UI components 2016-08-19 11:41:29 +02:00
Gina Häußge
dedffe3514 Allow tracking if printer profiles where modified
Needed for a first time setup wizard to configure default
printer profile.
2016-08-19 11:39:25 +02:00
Gina Häußge
650cfac1cf Removed semi-finished CuraEngine 15.06+ implementation
We'll need to turn that into a separate plugin and while at it also
move away from the generalized slicing profile format.

That's more a topic for after 1.3.0 however, so for now, just
clean this up.
2016-08-19 09:57:19 +02:00
Gina Häußge
aaeb2ef4db Forgot to call the default_view if no plugin felt responsible 2016-08-19 09:00:38 +02:00
Gina Häußge
b435ecf9e8 Slightly modified logging for preemptive cache execution 2016-08-18 16:46:51 +02:00
Gina Häußge
066907391a Only cache responses with status codes >= 200 and < 400 2016-08-18 16:46:18 +02:00
Gina Häußge
3a79805b6f g.locale might be None 2016-08-18 16:45:21 +02:00
Gina Häußge
5a38e9a412 X-Force-View, not X-Forced-View 2016-08-18 16:44:44 +02:00
Gina Häußge
f93212b06d Merge branch 'maintenance' into devel
Conflicts:
	src/octoprint/server/__init__.py
	src/octoprint/server/util/flask.py
	src/octoprint/server/views.py
2016-08-18 16:17:54 +02:00
Gina Häußge
0a78c92407 Do access logging via custom request header instead of global flag
We don't want any weird things to happen due to multithreading...
2016-08-18 16:14:03 +02:00
Gina Häußge
95a449530e Force view via request headers instead of temporary flag
The flag approach is not thread safe.
2016-08-18 15:56:27 +02:00
Gina Häußge
d92df9c698 Merge branch 'maintenance' into devel
Conflicts:
	src/octoprint/server/util/flask.py
	src/octoprint/server/views.py
	src/octoprint/settings.py
2016-08-18 15:48:31 +02:00
Gina Häußge
60c46a3fc4 Fixed use of preemptive cache exceptions in "unless" implementation 2016-08-18 14:05:12 +02:00
Gina Häußge
8782f77577 Slightly modified logging for cached.gif 2016-08-18 14:01:25 +02:00
Gina Häußge
08f9529c6d Merge remote-tracking branch 'origin/maintenance' into maintenance 2016-08-18 13:58:38 +02:00
Gina Häußge
6499bd160f Only wait for preemptive cache if it's enabled for path & view 2016-08-18 13:56:46 +02:00
Gina Häußge
f43381ce30 Merge branch 'maintenance' into devel
Conflicts:
	src/octoprint/filemanager/__init__.py
2016-08-18 12:28:13 +02:00
Gina Häußge
599098a589 Have intermediary reload only after preliminary caching 2016-08-18 12:27:30 +02:00
Gina Häußge
aa57277ff8 Only report files as enqueued for analysis which actually are 2016-08-18 08:39:19 +02:00
Gina Häußge
7cc3403a41 Info logging for preemptively caching plugins 2016-08-18 08:34:43 +02:00
Gina Häußge
74a94469b6 Fix an issue with global_get from 3rd party plugins 2016-08-17 14:50:53 +02:00
Gina Häußge
00923427cb Really do force a plugin view during preemptive caching
We don't need to check if the plugin will handle the UI, we just force
it to handle it.
2016-08-16 14:04:45 +02:00
Gina Häußge
79c95aa3b4 Merge branch 'maintenance' into devel
Conflicts:
	src/octoprint/filemanager/storage.py
	src/octoprint/templates/sidebar/state.jinja2
2016-08-16 09:34:49 +02:00
Gina Häußge
217e54d81c Make sure we are still in printing state before sending next line
We might just have "eaten" a line used for triggering a pause (e.g. an M0)
and thus might not be eligible to send the next line from the streamed file
anymore.

Solves #1448
2016-08-16 09:29:29 +02:00
Gina Häußge
b05beb27b5 Don't sanitize . or .. folder names 2016-08-15 16:13:35 +02:00
Gina Häußge
d81ec15f43 Improvements in fuzzy print time algorithm
Also use new fuzzy print time in gcode viewer to have some consistency.
2016-08-15 15:42:06 +02:00
Gina Häußge
39372a9475 Also sanitize leading .
That way hidden files that are uploaded will be "de-hidden".

Note that NO "de-hiding" of existing files will take place!
2016-08-15 14:19:36 +02:00
Gina Häußge
e8cac14c2f Make sure uploads folder only has sanitized entries
Should make sure stuff doesn't break when people perform manual
file operations on the uploads folder (e.g. uploading files
that don't match the sanitization scheme).

Should solve #1434
2016-08-15 14:19:35 +02:00
Gina Häußge
5bef0926a6 Add [ and ] to valid chars in filenames
See #1434
2016-08-15 14:19:34 +02:00
Gina Häußge
7772fdc7bf Tooltips for state panel 2016-08-15 14:19:33 +02:00
Gina Häußge
cd736c44df Improved fuzzy print time display 2016-08-15 14:19:32 +02:00
Gina Häußge
11bdc176a0 Fix minute comparison for dumb estimate fallback
Probably solves the core reason that caused #1428 to be
reported in the first place, totally inaccurate early linear
approximations (when nothing better is available) making
it to the user.

It should now display "Calcuting..." until the approximation
stabilizes OR the configured max percentage or max time without
an estimate are reached.
2016-08-15 14:17:27 +02:00
Gina Häußge
edf83e4984 Merge branch 'vanilla_devel' of https://github.com/mrbeam/OctoPrint into pr/mrbeam/vanilla_devel
Conflicts:
	src/octoprint/static/less/octoprint.less
2016-08-15 09:40:21 +02:00
Teja
963bb77d89 added transform without vendor prefix. Didn't work in Chromium 52.x anymore. 2016-08-04 09:58:07 +02:00
Gina Häußge
039412183c Merge branch 'maintenance' into devel
Conflicts:
	CHANGELOG.md
2016-07-30 09:57:31 +02:00
Gina Häußge
90340487f7 Merge branch 'fix/revertTimeoutAdjustment' into maintenance 2016-07-29 08:54:11 +02:00
Gina Häußge
1f19fd1e1d Partially revert 937487037
This commit might be at the root of the problems reported
in #1423
2016-07-29 07:45:03 +02:00
Gina Häußge
9b13eb8a6c Support serial hook handlers to not return written bytes 2016-07-29 00:13:03 +02:00
Gina Häußge
444a36d0f0 state_string must always be initialized
See #1425
2016-07-28 23:24:29 +02:00
Gina Häußge
e6d88a124d Merge branch 'maintenance' into devel 2016-07-28 15:21:06 +02:00