Commit graph

2293 commits

Author SHA1 Message Date
Gina Häußge
d991eab87e Only insert divider in system menu if there are custom commands 2016-11-18 15:01:53 +01:00
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