Commit graph

3086 commits

Author SHA1 Message Date
Gina Häußge
085ab77c57 Added system API to client lib and migrated users to it 2015-10-01 14:57:41 +02:00
Gina Häußge
8875f257ea Merge branch 'devel' into dev/clientlib
Conflicts:
	src/octoprint/server/api/__init__.py
	src/octoprint/static/js/app/viewmodels/navigation.js
2015-10-01 14:22:15 +02:00
Gina Häußge
1837c74e8e PMGR: Show restart button on notification if restart command is configured
This will directly offer a "Restart Now" button on the "a restart is required" notification
for plugins which cannot be directly enabled/disabled without a restart, but only if
the restart command is configured on the server.

On click a confirmation dialog will be shown.
2015-10-01 14:20:37 +02:00
Gina Häußge
950b1c2355 Only show divider between core & custom commands if there are core commands 2015-10-01 14:19:00 +02:00
Gina Häußge
97e8326768 Only try to rewrite PNotify confirm buttons if buttons are actually configured 2015-10-01 14:16:24 +02:00
Gina Häußge
6ab44849cd Extracted system commands into their own proper API & ViewModel 2015-10-01 14:05:23 +02:00
Gina Häußge
31bc7c1f3e Helper method for creating notifications with only one confirm button
PNotify always merges the default buttons and the ones provided. Just settings the default
to containing no buttons was no option since plugins might already depend on the so far
obligatory Cancel button being present. The helper allows to create one buttoned
notifications without touching the defaults.
2015-10-01 10:08:24 +02:00
Gina Häußge
be79cf289e Merge branch 'maintenance' into devel 2015-09-30 16:00:56 +02:00
Gina Häußge
5cc8ec5cc3 Better wording for plugin system startup & sorted plugin list of ALL plugins 2015-09-30 16:00:32 +02:00
Gina Häußge
982f24fe31 PMGR: Better wording of "pip unavailable" message 2015-09-30 15:59:08 +02:00
Gina Häußge
0a1816e52f Better error reporting in PipUtil for errors during pip setup detection 2015-09-30 15:58:38 +02:00
Gina Häußge
b432496b7f Merge branch 'devel' into dev/clientlib 2015-09-30 14:40:46 +02:00
Gina Häußge
2926b5c8d5 PMGR: only mark as pending (un)installed if restart is needed 2015-09-30 14:30:10 +02:00
Gina Häußge
fdcc6ac367 PMGR: Only add --user flag if not running in a virtual env 2015-09-30 14:25:06 +02:00
Gina Häußge
2eb80c550f PMGR: Disable plugin remove button if plugin is not managable 2015-09-30 13:44:58 +02:00
Gina Häußge
ca587454df PMGR: Fixed marking of plugins
Plugins can now (again) show if they are pending installation,
uninstallation and also if they are managable at all.
2015-09-30 13:37:27 +02:00
Gina Häußge
e64975c85c PMGR: Debug output in frontend to indicate venv 2015-09-30 13:36:45 +02:00
Gina Häußge
4a97864e01 PMGR: Added option to force use of --user flag 2015-09-30 13:36:00 +02:00
Gina Häußge
28fc7d74f4 Made plugin marking in PluginManager more flexible
Now supports arbitrary markers for plugins. Also added a method
to check if a plugin was marked with a specified marker.
2015-09-30 13:33:25 +02:00
Gina Häußge
fbfac4b569 PluginManager also scans user site packages
In case the user site packages are not yet part of the used
working set OR the sys path and ENABLE_USER_SITE is true, the
manager will now make sure that the folder is searched for plugins
as well upon plugin reload.

This is necessary since Python will not automatically include the
user site directory upon firing up the program in case there's
nothing installed to it/it doesn't exist. If a plugin is installed
during run time with --user that will lead to it not being found,
which is undesirable. Hence run time manipulation of sys.path and
the workingset becomes necessary.
2015-09-30 13:30:39 +02:00
Gina Häußge
10db8c9577 PluginManager now marks plugins as managable
Managable currently pretty much only means "uninstallable".

Plugins are managable if their installation location is writable
and - if they are installed from an entry point and OctoPrint is
running in a virtual environment - within the bounds of the virtual
environment (because otherwise pip will not allow to uninstall).
2015-09-30 13:28:58 +02:00
Gina Häußge
7c5fe46f4a More intelligence for PipUtil to determine when to use --user
Includes a force_user (and a force_sudo) parameter.
2015-09-30 13:27:24 +02:00
Gina Häußge
6ed96764e1 Merge branch 'devel' into dev/pipUserParameter 2015-09-29 16:41:11 +02:00
Gina Häußge
79b8639135 Fix: Use adjusted pip arguments in execute method 2015-09-29 16:38:26 +02:00
Gina Häußge
62478fd98f More pip data in plugin manager front end 2015-09-29 14:51:58 +02:00
Gina Häußge
22509f02b5 Make sure to include testballoon package in install 2015-09-29 14:23:10 +02:00
Gina Häußge
cae73c1ee5 Cache for pip setup and version information
Can take a bit of time to collect that data since it needs some invocations of
pip, so we cache that data unless told otherwise.
2015-09-29 14:22:29 +02:00
Gina Häußge
5df576b73e Install testballoon using pip install . in testballoon folder 2015-09-29 13:53:48 +02:00
Gina Häußge
000f8e9310 Debug logging for testballoon install 2015-09-29 13:47:35 +02:00
Gina Häußge
7d38d66489 PipUtil now uses --user argument with pip install if detected as necessary 2015-09-29 13:39:08 +02:00
Gina Häußge
705f0706fd Merge branch 'fix/pmgrPipWithSudo' into devel
Conflicts:
	src/octoprint/util/pip.py
2015-09-28 20:21:40 +02:00
Gina Häußge
fce7b40b51 pip: Use string representation of version for display in UI 2015-09-28 20:20:56 +02:00
Gina Häußge
697affc62d Merge branch 'fix/pmgrPipWithSudo' into devel
Conflicts:
	src/octoprint/plugins/pluginmanager/__init__.py
	src/octoprint/util/pip.py
2015-09-28 19:57:05 +02:00
Gina Häußge
1178fe9e95 Support sudo for installing plugins, but warn about it 2015-09-28 19:53:30 +02:00
Gina Häußge
bdc5d72613 Fixes OctoPrint.files.download method 2015-09-28 18:41:40 +02:00
Gina Häußge
e57ed92294 Less repetitious code 2015-09-28 18:24:56 +02:00
Gina Häußge
73c235d67f Migrate SettingsViewModel.requestData to using promises
Fallback implementation for old callback parameter is still present,
logs warning about deprecation.
2015-09-28 18:17:43 +02:00
Gina Häußge
7a06f496de Let's get rid of another callback 2015-09-28 17:08:40 +02:00
Gina Häußge
7b7f21d126 Migrate to new utility methods for testing URLs & executable paths 2015-09-28 17:08:25 +02:00
Gina Häußge
c5f0ccdb94 Migrated client to module factory pattern
This should _hopefully_ also make it compatible to AMD implementations,
but I have to admit that I haven't tried that yet...
2015-09-28 17:07:37 +02:00
Gina Häußge
1a469e1c97 Take login data from data, not request.values
That was a left-over from the previous implementation...
2015-09-28 17:06:08 +02:00
Gina Häußge
6bc8bca99c Merge branch 'devel' into dev/clientlib 2015-09-28 13:09:58 +02:00
Gina Häußge
2f24e73fcb Merge branch 'fix/logsDocsBug' into maintenance 2015-09-28 13:08:57 +02:00
Gina Häußge
39a0441f34 Merge branch 'fix/logsDocsBug' into devel 2015-09-28 13:08:42 +02:00
Gina Häußge
9ff5c36370 Fixed a documentation bug 2015-09-28 13:08:35 +02:00
Gina Häußge
f3e242d3a0 Merge remote-tracking branch 'origin/devel' into devel 2015-09-28 13:02:38 +02:00
Gina Häußge
0b4e590a5b Refactored drop zone processing in GcodeFilesViewModel 2015-09-28 13:01:47 +02:00
Gina Häußge
96d479bd67 Merge branch 'fix/noDropFileuploads' into devel 2015-09-28 12:55:54 +02:00
Gina Häußge
1b4ea75466 Fix: Don't have file upload widgets listen to drop events by default
That way they won't be triggered by gcode uploads when all they are interested in
are uploads via a single file input.
2015-09-28 12:55:32 +02:00
Gina Häußge
eafca5d77a Some bug fixing of client migration 2015-09-25 17:09:07 +02:00