Commit graph

76078 commits

Author SHA1 Message Date
Damyon Wiese
63b5a5faad MDL-46455 event: Make the debugging messages print the event class.
Because they are in the base class, it was impossible to find which event
triggered the debugging.
2015-10-11 18:14:58 -07:00
Damyon Wiese
0817451470 MDL-46455 events: Add mapping info to events
This commit covers all events outside of /mod/. It adds mapping info for restoring
events, or the default implementation which returns false if mapping is not required.
2015-10-11 18:14:58 -07:00
Mark Nelson
0bfafc5ba0 MDL-46455 mod_*: added restore mapping to events 2015-10-11 18:14:57 -07:00
Mark Nelson
ef15eae433 MDL-46455 mod_*: added additional mapping to be used by events 2015-10-11 18:14:56 -07:00
Mark Nelson
901a7ff7f2 MDL-46455 restore: added restore support for 'other' in events 2015-10-11 18:14:51 -07:00
lazydaisy
8d9410bd4f MDL-51517 theme_bootstrapbase: Clean up buttons.less 2015-10-10 11:02:38 +01:00
David Mudrák
30c264211e MDL-49329 admin: Fix reported coding style warnings 2015-10-10 09:15:27 +02:00
David Mudrák
dbdd02c1fe MDL-49329 admin: Start using API 1.3 for fetching available updates
This is not really necessary as there is no actual change in the
behaviour of the updates API between 1.2 and 1.3. However, as we plan to
use the new \core\update\api client for this in the future, it makes
only sense to have these two synced already now. In other words, Moodle
3.0 site will use the same version 1.3 for all download.moodle.org/api
end points.
2015-10-10 09:15:27 +02:00
David Mudrák
aa1d100c2d MDL-49329 admin: Fix checking for available updates
This was a regression of my recent improvement of rendering the "Check
for updates" button. There is now unified parameter ?fetchupdates=1 that
can be used on either admin/index.php or admin/plugins.php, so that we
can use a common UI widget for both locations (without the need to pass
the URL explicitly).
2015-10-10 09:15:27 +02:00
David Mudrák
b0fc789878 MDL-49329 admin: Clean up disabling of plugins code management features
The admin setting updateautodeploy no longer exists. The two existing
config.php flags $CFG->disableupdateautodeploy and
$CFG->disableonclickaddoninstall merged into a single one.
2015-10-10 09:11:19 +02:00
Mark Nelson
6920d3904c MDL-46455 restore: added restore support for the 'objectid' in events 2015-10-09 16:23:09 -07:00
Damyon Wiese
51311962c4 MDL-46455 backup: Keep external database logstore code self-contained.
General backup/restore does not need to handle external data sources natively - so
any changes needed to achieve this should be contained to the plugin that needs it.
2015-10-09 16:23:09 -07:00
Mark Nelson
bcfa51ca41 MDL-46455 logstore_database: added backup/restore support 2015-10-09 16:23:09 -07:00
Eloy Lafuente (stronk7)
ea6c56437a MDL-46455 restore: Implement restore of standard logstore
Using standard subplugin support, this commits implements
the restore of logstore subplugins in general and the
standard logstore is particular. Notes:

- TODO: Decide about these 2 pending issues:

1) Some logs are already created (events fired) by the restore process itself. Every time
   an API is used and it fires events... corresponding (and actual!)
   logs are created. We need to prevent restore to duplicate them (or,
   alternatively, stop firing events when restore is happening).

2) There are 2 pieces of information in the logs that, right now, can
   not be restored, because the process does not know enough to be able
   to remap that information to its new counterparts. We are talking
   about objectid and other columns. So we need to specify, in some way
   understandable by restore, to which existing mappings they correspond
   to.
2015-10-09 16:23:09 -07:00
Eloy Lafuente (stronk7)
73c2a35420 MDL-46455 backup: Implement backup of standard logstore
Using standard subplugin support, this commit implements
the backup of logstore subplugins in general and the
standard logstore in particular. Notes:

- Uses a custom final element (base64_encode_final_element) to
  support the storage of serialized 'other' information in logs.
- Organization: Instead of directly extending backup_subplugin,
  every logstore extends backup_tool_log_logstore_subplugin just
  in case any shared code is needed in the future.
- Implements both course and activity logs, sharing the structure
  completely (both are based in contextid to pick the target
  information, from database or whatever other logstores use).
2015-10-09 16:23:09 -07:00
Eloy Lafuente (stronk7)
6a45e6b169 MDL-46455 restore: Extend support for subplugins to any plugin.
In order to implement the backup and restore of log stores, that
are created as subplugins of the tool_log plugin , we need to
extend subplugins support from activities to virtually any plugin.

Basically that implies moving the add_subplugin_structure() method from
its current, restricted, activity level to general restore_structure_step.

This commit implements the change in restore, covered with tests verifying
old, bc behavior and also new, general one.
2015-10-09 16:23:09 -07:00
Eloy Lafuente (stronk7)
ba66edd074 MDL-46455 backup: Extend support for subplugins to any plugin.
In order to implement the backup and restore of log stores, that
are created as subplugins of the tool_log plugin , we need to
extend subplugins support from activities to virtually any plugin.

Basically that implies moving the add_subplugin_structure() method from
its current, restricted, activity level to general backup_structure_step.

This commit implements the change in backup, covered with tests verifying
old, bc behavior and also new, general one.
2015-10-09 16:23:09 -07:00
Lior Gil
2209309e2c MDL-46497 Atto: Fix adding redundant p elements in rtl/ltr actions 2015-10-10 01:36:48 +03:00
David Mudrák
d9a5b810bd MDL-49329 admin: Do not force admin to reconfirm the core upgrade 2015-10-09 23:37:33 +02:00
David Mudrák
c20e9ae836 MDL-49329 admin: Add ability to cancel upgrade of the plugin
If there is an available archived zip with the version of the plugin
currently installed, we can use it to cancel/abort the upgrade of the
plugin. This is internally handled as the installation of the archived
zip and goes through all the validation and confirmation.

Additionally, some other parts were improved. Most notably, renderer no
longer decides itself if some installation can be cancelled but it
always asks the controller (plugin manager).

The button for installation was moved to the left so there should be
first buttons to add things, and then buttons to cancel things (which is
common in normal forms).
2015-10-09 23:37:32 +02:00
Dan Poltawski
9ff7c33ba5 MDL-50412 admin: prevent fatal errors on reports admin page 2015-10-09 14:46:35 +01:00
David Mudrák
80c3c6501d MDL-49329 admin: Clean up code manager methods
The method move_plugin_directory() was a relict from previous 2.9
implementation within tool_installadon_installer and was originally
supposed to be used to move whole plugin folders. The archiving feature
has been finally implemented via using zip files (so that we do not have
actual PHP code present in the dataroot) and we do not need this method.
2015-10-09 14:43:33 +02:00
David Mudrák
a2e1e0d0f1 MDL-49329 admin: Archive plugin code before removing it from dirroot
This should allow the admin to revert the upgrade of existing plugins,
such when the dependency chain leads to a dead-end. Additionally, we
archive (as a last-chance copy) the to-be-installed plugins when
cancelling their installation. This is mainly for developers who could
otherwise loose their code. For the same reason, plugins are being
archived upon uninstallation, too.
2015-10-09 14:33:47 +02:00
Barbara Ramiro
0a5be447ce MDL-40710 Icon: More identifiable backpack icon 2015-10-09 18:34:10 +08:00
Dan Poltawski
cc75779fb4 MDL-50079 atto_link: respect new window option when creating from repo
Previously users had to go back and edit their link to set the new
window option.
2015-10-09 11:23:32 +01:00
Dan Poltawski
0496ac6305 MDL-50788 classloader: Prevent cryptic errors on unreadable classes dir
Do not attempt to read an unreadable directory because previously the generated
errors were hard to fathom.

Thanks to James McQuillan for the basis of the patch.
2015-10-09 10:36:59 +01:00
Dan Poltawski
b96da4eaef MDL-51302 scorm: do not use invalid course urls
Previous behaviour of setting an empty sectionid was incorrect and we
were doing work which course_get_url() does for us.
2015-10-09 09:04:35 +01:00
Neill Magill
5978773d81 MDL-51435 Web Services: E_WARNING in core_webservice_get_site_info
$plugin was not being set before the version file was included.
This caused an E_WARNING: Creating default object from empty value

This change creates the plugin object before the version file sets its parameters.
2015-10-09 09:00:07 +01:00
David Mudrák
4d7528f9bc MDL-49329 admin: Require confirmation before cancelling plugin install 2015-10-09 09:50:46 +02:00
David Mudrák
4fff948910 MDL-49329 admin: Convert install plugins tool to use new APIs
Most of the functionality provided by this tool (typically the
validation and actual deployment of the plugin package) has been moved
to the core level. So this is becoming just a thin wrapper and user
interface for installing new plugins via the administration UI.

Also fixes MDL-49600 as we no longer keep the unzipped contents of the
packages in the persistent temp directories.
2015-10-09 09:50:46 +02:00
David Mudrák
2d00be61f1 MDL-49329 admin: Make plugin manager able to install from local zips too
The plugin manager's method install_remote_plugins() has been changed to
install_plugins() and it is now able to install plugins from the
provided list of locally available ZIP files, too. This is used by the
Install plugins admin tool.
2015-10-09 09:50:46 +02:00
David Mudrák
da54cf11a4 MDL-49329 admin: Call opcache_reset() after installing new plugin code
During the testing, I was experiencing weird behaviour - after a single
plugin updated was installed, I ended up on admin/index.php?cache=1. I
believe it was caused by the missing opcache_reset().
2015-10-09 09:50:45 +02:00
David Mudrák
8726c07cd0 MDL-49329 admin: Use the new plugins management on Plugins overview page
The plugins overview page now uses the new plugins management features,
most notably the ability to install all available updates at once.
2015-10-09 09:50:45 +02:00
David Mudrák
531381f914 MDL-49329 admin: Support plugins installation during upgrade
The plugins check screen (displayed during core upgrade and/or plugins
upgrade) now supports installation of remote plugins. This includes
installation of missing dependencies (both single and bulk mode) and
installation of available updates (both single and bulk mode).

All the HTTP query parameters supported by admin/index.php are now
explicitly enlisted. Previously, the \core\update\deployer used
its own additional parameters (and was source of some serious problems
in the past).

The implementation uses the plugin manager as the controller and
provides an unified interface for installing any remote plugin or
plugins (be it available update or missing dependency).

As a side effect, we now validate available updates which was not
happening before.
2015-10-09 09:50:45 +02:00
David Mudrák
c948b813ae MDL-49329 admin: Add plugin manager method for installing remote packs
The new method core_plugin_manager::install_remote_plugins() will serve
as a backend for all the ways of installing ZIP packages from the moodle
plugins directory, such as installing new plugins (by clicking the
Install button in the plugins directory), installing available updates
(single and bulk mode) and installing missing dependencies (single and
bulk mode).

The method should be used both for validation pre-check screen and,
after the confirmation, for actual installation. Note that we
intentionally repeat the whole procedure after confirmation. Unzipping
plugins is cheap and fast and the ZIPs themselves are already available
in the \core\update\code_manager's cache.

We will need to add support for archiving existing code to prevent
accidental data-loss.

This basically provides what mdeploy.php was doing, but better. We now
have consistent way of installing all remote ZIP packages, always
validate them and we can perform bulk operations, too.
2015-10-09 09:50:44 +02:00
Damyon Wiese
b3c10f9fb2 MDL-51605 Atto: Fix deprecation warnings from upgraded rangy 2015-10-09 15:42:10 +08:00
John Okely
d5994d38c9 MDL-51586 enrol: Enrolment table displays fullname properly.
When the alternatefullnamedisplay was set to something that
didn't contain 'firstname' then nothing would be displayed
for the user's name.
2015-10-09 15:34:39 +08:00
Damyon Wiese
64f6ef1f3a MDL-48861 mod_assign: use >= for requires grading filter
If the grade and submission were modified at exactly the same time,
assume that this means the grade was automatically created for the submission
and is not a real grade from a teacher interaction.
2015-10-09 15:08:06 +08:00
Adrian Greeve
858d457d61 MDL-49515 libraries: Update FPDI to 1.5.4 2015-10-09 14:46:12 +08:00
Ryan Wyllie
49ee2d0d2a MDL-51528 themes: active tab cursor
Set the cursor to a pointer for an active tab with a link to
indicate that the tab is still clickable, even though it is
active. See also MDL-46470 and MDL-51207.
2015-10-09 06:34:43 +00:00
Ryan Wyllie
a25baf3184 MDL-51528 themes: Moodle changes to Bootstrap
Applying the upstream Bootstrap changes required for Moodle. Please
see MDL-42195 and MDL-48328 for more defails.
2015-10-09 06:22:49 +00:00
Ryan Wyllie
abe2e8ed9b MDL-51528 themes: update to bootstrap v2.3.2
Updated to clean version of Bootstrap v2.3.2 without the
Moodle patches to the upstream code.
2015-10-09 06:22:49 +00:00
Damyon Wiese
dc40503680 MDL-51628 assign: invalid hardcoded capability check
Use existing function to do the check instead.
2015-10-09 14:09:33 +08:00
Mifsud Gaël
f209d5e1be MDL-51083 admin: Prevent password autofill in authentication settings 2015-10-09 14:04:34 +08:00
Damyon Wiese
c38a3bf3a2 MDL-51686 assign: Apply admin default for comment inline 2015-10-09 13:38:24 +08:00
David Mudrák
8acee4b53d MDL-49329 admin: Improve the plugin package validator
Previously, the validator was used for installation of the new plugins
only. We now validate every incoming plugin package. As a result, we
must no longer insists on the target location is empty. Instead, warning
is raised.
2015-10-08 23:32:05 +02:00
David Mudrák
fd2d146218 MDL-49329 admin: Validate the contents of the cached plugin ZIP package 2015-10-08 23:32:05 +02:00
David Mudrák
4f18a4e60c MDL-49329 admin: Introduce new \core\update\remote_info class
This is just a thin wrapper for normal objects, allowing us to have
explicit type hinting / declarations in method signatures.
2015-10-08 23:32:05 +02:00
David Mudrák
44371554a9 MDL-49329 admin: Improve plugins overview page rendering
Provides a bit more compact layout. Finally cleans up the relevant LESS
files and makes available updates info boxes consistent across all
screens where they are displayed.
2015-10-08 23:32:04 +02:00
David Mudrák
cc5bc55ead MDL-49329 admin: Add core_plugin_manager::available_updates() method
The new method is going to be used to support the "Update all plugins"
feature.
2015-10-08 23:32:04 +02:00