Compare commits

..

588 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 07f6358b03 Moodle release 3.2.1 2017-01-08 11:04:37 +01:00
AMOS bot 7ffb98d0f5 Automatically generated installer lang files 2017-01-08 00:04:57 +08:00
Dan Poltawski dda99bb3f2 weekly release 3.2+ 2017-01-06 01:30:59 +00:00
Dan Poltawski 9cff26295b Merge branch 'install_32_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_32_STABLE 2017-01-06 01:30:57 +00:00
David Mudrák 5865a6875b MDL-57580 mod_assign: Fix the incorrect type of some input parameters
The PARAM_TEXT has been misused in certain cases here. The 'action'
parameter seems to always be alphabetic, with values like
savesubmission, editsubmission and others as handled in assign::view().

Fixing the action handling fixes the reported XSS issue. While working
on it, I spotted two more places where PARAM_TEXT does not seem
appropriate. I include changes for them too, even if they are no
strictly related to the reported bug and there are no known ways to
abuse it.

* The 'plugin' looks like PARAM_PLUGIN and is even declared as such in
  some other parts of the assignment code (such as feedback forms).

* The 'workflowstate' is one of the ASSIGN_MARKING_WORKFLOW_STATE
  constants and is supposed to be alpha in external function input
  parameters handling, too.
2017-01-05 17:39:51 +01:00
Dan Poltawski ef2eed1b3c Merge branch 'MDL-57563-32-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_32_STABLE 2017-01-05 10:11:40 +00:00
Rajesh Taneja 6601017d02 MDL-57531 behat: Set noreplyaddress to valid address
noreplyaddress should be a valid address, else
it will not be saved. For behat we don't send
email, so set it to noreply@example.com, to
avoid failing validation on localhost
2017-01-05 06:52:06 +00:00
David Mudrák 7ed6f330c6 MDL-57563 lang: Use the new newsitemsnumber wording in behat 2017-01-04 22:19:32 +01:00
Helen Foster 418d01aaf4 MDL-57563 lang: Merge English strings from the en_fix language pack 2017-01-04 22:18:31 +01:00
AMOS bot 11f9ff55e1 Automatically generated installer lang files 2017-01-05 00:05:20 +08:00
Dan Poltawski 04d4796089 Merge branch 'MDL-57531-32-phpmailer' of git://github.com/mudrd8mz/moodle into MOODLE_32_STABLE 2017-01-04 13:28:39 +00:00
David Mudrák e889aee562 MDL-57531 mail: Validate the sender's email address
The patch adds validation for the noreplyaddress setting variable, for
the explicit $replyto parameter and for the sender's email. In case of
misconfigured noreplyaddress setting, it falls back to the default
noreply address value. In case of invalid email in the user's record,
the email is not sent.

The patch also adds unit test for the value returned by the function
generate_email_processing_address() so that it can be considered as a
valid email, too.

This is supposed to significantly minimise the risk of exploiting the
vulnerability in PHPMailer's Sender field.
2017-01-04 12:37:36 +01:00
David Mudrák 228157ebf5 MDL-57531 mail: Do not let admins set invalid email addresses
The noreply and support emails should always be valid.
2017-01-04 12:37:36 +01:00
Eloy Lafuente (stronk7) c77ae4e017 Merge branch 'MDL-57192-32' of git://github.com/ankitagarwal/moodle into MOODLE_32_STABLE 2017-01-04 11:34:23 +00:00
David Mudrák 1da3022e50 MDL-56225 mod_forum: Fix inability to edit attachments
The 'attachments' is not a real DB field here. It comes from the form's
filepicker and holds the id of the attachments filearea. The function
forum_add_attachment() expects it as a property of the first argument.

There were two possible approaches here. Either to pass the raw $newpost
to forum_add_attachment(), or add the attachments into the list
modifiable fields. The second approach is safer.
2017-01-04 11:34:22 +00:00
David Monllao f6507b8e35 Merge branch 'm32_MDL-49557' of git://github.com/danmarsden/moodle into MOODLE_32_STABLE 2017-01-04 11:34:22 +00:00
David Monllao d52b937932 MDL-57338 templates: Fix modal_cancel template name 2017-01-04 11:34:21 +00:00
Rajesh Taneja ce36e3626f MDL-57536 availability: Fixed css for clean theme 2017-01-04 11:34:21 +00:00
Ankit Agarwal 063f7c198b MDL-56992 core_scss: Don't allow invalid files to be included
We allow only .scss files so allow files to be included only and only if they end in .scss and they exist on server under theme directory.
2017-01-04 11:34:20 +00:00
Andrew Nicols 83dedbcd33 MDL-56225 mod_forum: Remove unnecessary attributes from update 2017-01-04 11:34:20 +00:00
Dan Marsden 0ad466926d MDL-49557 mod_scorm: optionally strip quotes. 2017-01-04 15:45:08 +13:00
Ankit Agarwal ced9a33352 MDL-57192 dml: Temporarily disable query logging during setup 2017-01-03 17:27:08 +05:30
Ankit Agarwal 3b4fba5588 MDL-57192 dml: Support temporarily disabling query logs during setup 2017-01-03 17:27:08 +05:30
Eloy Lafuente (stronk7) 9cc9dabf17 Merge branch 'wip-mdl-57494-m32' of https://github.com/rajeshtaneja/moodle into MOODLE_32_STABLE 2017-01-03 02:35:10 +01:00
Eloy Lafuente (stronk7) cb8be0b6b8 Merge branch 'MDL-57536-32' of git://github.com/jleyva/moodle into MOODLE_32_STABLE 2017-01-02 18:59:55 +01:00
Juan Leyva c6bd4c1a45 MDL-57536 availability: Document required selectors changes
MDL-55839 Introduced some changes in CSS selectors used by the form.js
file.

This caused contributed plugins to not work (javascript stop working)
when editing a module.
2017-01-02 18:52:22 +01:00
Davo Smith 31e4c05002 MDL-47198 filelib: fix curl handling headers with no value 2017-01-02 16:43:52 +01:00
Dan Poltawski c5f11c0f3c Merge branch 'm32_MDL-49557' of git://github.com/danmarsden/moodle into MOODLE_32_STABLE 2017-01-02 12:35:10 +00:00
Dan Poltawski 6158379f75 Merge branch 'MDL-57080-m32' of https://github.com/micaherne/moodle into MOODLE_32_STABLE 2017-01-02 12:15:02 +00:00
Dan Poltawski bc076bf1b8 Merge branch 'wip-MDL-57464-32' of git://github.com/abgreeve/moodle into MOODLE_32_STABLE 2017-01-02 11:16:24 +00:00
Dan Poltawski 27a3a42efd MDL-57532 calendar: tidy up button grouping 2017-01-02 10:45:24 +00:00
Dan Poltawski b0c2ea4640 Merge branch 'MDL-57532_m32v1' of https://github.com/sbourget/moodle into MOODLE_32_STABLE 2017-01-02 10:45:20 +00:00
David Monllao 00ef7b1caa Merge branch 'MDL-56926_32' of git://github.com/dmonllao/moodle into MOODLE_32_STABLE 2016-12-30 10:00:08 +01:00
David Monllao 7914b0035f MDL-56926 theme_boost: Restore filepicker's filename and icons original spacing 2016-12-30 09:57:41 +01:00
Nadav Kavalerchik cb358279b7 MDL-56926 Theme/Boost: Fix filepicker folder tree YUI guides 2016-12-30 09:57:35 +01:00
AMOS bot 339edb47e2 Automatically generated installer lang files 2016-12-30 00:05:21 +08:00
Dan Poltawski bd6bc508df Merge branch 'MDL-57512-32' of git://github.com/crazyserver/moodle into MOODLE_32_STABLE 2016-12-29 11:50:58 +00:00
Dan Poltawski c53194f3f9 Merge branch 'm32_MDL-50643' of git://github.com/danmarsden/moodle into MOODLE_32_STABLE 2016-12-29 11:46:48 +00:00
Pau Ferrer Ocaña c477dc23c0 MDL-57512 categories: Use maxcategorydepth only when getting all cats 2016-12-29 12:05:27 +01:00
David Monllao 8cd421e941 Merge branch 'MDL-57338-32' of git://github.com/danpoltawski/moodle into MOODLE_32_STABLE 2016-12-29 10:52:30 +01:00
Dan Poltawski f18c2a9d15 MDL-57338 templates: fix missing example variables
From Davids review, thanks
2016-12-29 08:05:04 +00:00
David Monllao 403e0d96e5 Merge branch 'MDL-57331-32' of https://github.com/xow/moodle into MOODLE_32_STABLE 2016-12-28 22:32:33 +01:00
Dan Poltawski 5984ffded4 Merge branch 'MDL-57451-32' of https://github.com/lucisgit/moodle into MOODLE_32_STABLE 2016-12-28 21:17:48 +00:00
Dan Poltawski cd9a925e6a Merge branch 'MDL-55955_32' of git://github.com/markn86/moodle into MOODLE_32_STABLE 2016-12-28 21:17:47 +00:00
Dan Poltawski 40471ed54c Merge branch 'wip-MDL-57366-32' of git://github.com/abgreeve/moodle into MOODLE_32_STABLE 2016-12-28 21:17:46 +00:00
David Monllao 000b0949e6 Merge branch 'MDL-57491_m32v3' of https://github.com/sbourget/moodle into MOODLE_32_STABLE 2016-12-28 21:17:46 +00:00
Dan Poltawski 6c7f60dbc0 Merge branch 'MDL-57417-32' of https://github.com/snake/moodle into MOODLE_32_STABLE 2016-12-28 21:17:45 +00:00
David Monllao 3b37e372f2 Merge branch 'MDL-52366-32-mustachethemedir' of git://github.com/mudrd8mz/moodle into MOODLE_32_STABLE 2016-12-28 12:23:49 +01:00
David Monllao 44b94d9324 Merge branch 'MDL-57450-32' of git://github.com/danpoltawski/moodle into MOODLE_32_STABLE 2016-12-28 11:48:05 +01:00
Dan Poltawski e5bc84f84f MDL-57251 upgrade: bump versions
and remove uncessary ->mark_dirty()
2016-12-28 10:28:37 +00:00
Dan Poltawski a38d0650d4 Merge branch 'wip-MDL-57251-32' of git://github.com/abgreeve/moodle into MOODLE_32_STABLE 2016-12-28 10:28:31 +00:00
David Monllao 8d9edc0e7c Merge branch 'MDL-57357-32' of https://github.com/snake/moodle into MOODLE_32_STABLE 2016-12-28 11:17:11 +01:00
David Monllao 4e0357c1e3 Merge branch 'MDL-56488-32' of git://github.com/danpoltawski/moodle into MOODLE_32_STABLE 2016-12-28 10:58:22 +01:00
Dan Poltawski 9efd73abec Merge branch 'wip-MDL-57292-32' of git://github.com/abgreeve/moodle into MOODLE_32_STABLE 2016-12-28 09:13:37 +00:00
Dan Poltawski c31b5bbf9d Merge branch 'MDL-57474-32-messageid' of git://github.com/mudrd8mz/moodle into MOODLE_32_STABLE 2016-12-28 08:56:06 +00:00
Dan Marsden 7606ba2133 MDL-49557 mod_scorm: fix AICC pre-requisite handling. 2016-12-28 10:09:00 +13:00
Stephen Bourget 51b7f8f0a4 MDL-57532 calendar: Add missing bootstrap classes 2016-12-26 11:41:50 -05:00
AMOS bot 40fdf0f84f Automatically generated installer lang files 2016-12-27 00:08:58 +08:00
AMOS bot 3e99f4f642 Automatically generated installer lang files 2016-12-26 00:05:52 +08:00
AMOS bot 324e613b48 Automatically generated installer lang files 2016-12-25 00:04:37 +08:00
Adrian Greeve 502397dcbc MDL-57464 mod_lesson: fix notice with sub-clusters. 2016-12-23 11:12:27 +08:00
Jake Dallimore f1f83c3ba1 MDL-57357 auth: add behat coverage for remember username login feature 2016-12-23 11:04:19 +08:00
Jake Dallimore 2c3f09ccf7 MDL-57357 auth: fix the remember username feature on login page 2016-12-23 10:45:06 +08:00
Adrian Greeve e2f5592b8f MDL-57366 mod_lesson: Zero now acceptable numeric answer.
When creating a numerical question. If the answer to the
question is 0 then the answer will not save.
2016-12-23 10:36:12 +08:00
Mark Nelson 522fcf2ffc MDL-55955 mod_quiz: ensure duplicated override events are removed 2016-12-23 10:02:47 +08:00
Jake Dallimore 96e743ff78 MDL-57417 navigation: fix legacy_activity_onclick_handler callback scope 2016-12-23 08:43:37 +08:00
Dan Marsden e514ae345e MDL-50643 mod_scorm: redirect using current window instead of parent. 2016-12-23 10:18:52 +13:00
Stephen Bourget 2659b808ab MDL-57491 report_log: Improve filtering code by using static entries 2016-12-22 16:12:34 -05:00
AMOS bot 54037cf3e2 Automatically generated installer lang files 2016-12-23 00:04:18 +08:00
Dan Poltawski b0773d70c6 MDL-57338 message: fix template component 2016-12-22 12:57:11 +00:00
Dan Poltawski 4348fffe0c MDL-57338 templates: add missing example context 2016-12-22 12:57:11 +00:00
Dan Poltawski 216c68b834 MDL-57338 chart: add example context
And fix aria roles
2016-12-22 12:57:11 +00:00
Dan Poltawski a3c1bd86ed MDL-57338 mustache: fix admin_setting_tabs
* Add example context
* Fix validation issue (need role="tablist" to contain the tabs)
2016-12-22 12:57:11 +00:00
Michael Aherne e0006399ff MDL-57080 completion: Update completion expected date on reset 2016-12-22 11:43:39 +00:00
Tony Butler 2084c59b82 MDL-57451 theme_boost: Add checkboxgroup class to checkbox input element 2016-12-22 11:30:24 +00:00
Dan Poltawski a09a9879e5 weekly release 3.2+ 2016-12-22 08:15:17 +00:00
Dan Poltawski a3a095b6eb Merge branch 'install_32_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_32_STABLE 2016-12-22 08:15:15 +00:00
Adrian Greeve 0edf724367 MDL-57292 tool_lpimportcsv: Fix for unit tests. 2016-12-22 14:41:32 +08:00
Simey Lameze a953ac5942 MDL-57292 tool_lpimportcsv: display progress bar for large imports 2016-12-22 14:41:17 +08:00
Rajesh Taneja 5627b0b1a1 MDL-57494 behat: Fixed tags and removed reset in after_scenario
1. Added missing switch_window tags
2. Fixed switch_frame tags to use switch_iframe
3. Removed reset from after_scenario.
2016-12-22 12:44:38 +08:00
David Monllao 5d3a7be453 Merge branch 'MDL-55575_B_32' of https://github.com/bostelm/moodle into MOODLE_32_STABLE 2016-12-21 05:50:17 +01:00
David Mudrák 8f27fdf1ab MDL-57474 mailer: Make sure that our exlicit MessageID is trimmed
The new version of phpmailer shipped with Moodle 3.2 has added check
that the explicitly provided MessageID matches /^<.*@.*>$/.

Values coming from our overridden moodle_phpmailer::addCustomHeader()
had a whitespace at the start. So the requested value was not used as
the Message-ID header and the default phpmailer value was used.

As a result, forum posts threading was broken in email clients.
2016-12-21 01:11:32 +01:00
AMOS bot 1d5c2c6560 Automatically generated installer lang files 2016-12-21 00:04:00 +08:00
Simey Lameze 18317c7c1c MDL-57114 filemanager: apply btn-sm class to buttons
This commit also creates a new css rule to fix the file picker icons misalignment.
2016-12-20 10:34:08 +00:00
Dan Poltawski b83fd5b1fe Merge branch 'MDL-54996_m32v1' of https://github.com/sbourget/moodle into MOODLE_32_STABLE 2016-12-20 09:19:27 +00:00
Adrian Greeve 11eeb2e347 MDL-57251 navigation: Correct permission shows site admin
If the user does not have the moodle/site:configview
capability then do not show them the site administration
link.
2016-12-20 14:54:34 +08:00
Adrian Greeve 0aa8b11f5c MDL-57251 administration: Updated coursecreator role.
The coursecreator role now has the moodle/site:configview
capability so that they have access to the required admin
pages.
2016-12-20 14:54:34 +08:00
John Okely 829cafc050 MDL-57331 messaging: Fix sent messages appearing twice. 2016-12-20 10:48:01 +08:00
John Okely 25474b5e84 MDL-57268 auth_db: Unit tests for deletion from a large user set 2016-12-20 02:27:05 +01:00
Rafal Domagalski b7f902b5b3 MDL-52366 themes: check for templates in themedir 2016-12-19 18:08:37 +01:00
Dan Poltawski 11488775eb Merge branch 'MDL-57386-32' of git://github.com/damyon/moodle into MOODLE_32_STABLE 2016-12-19 15:46:59 +00:00
Dan Poltawski 32ec7e3d30 Merge branch 'MDL-55568_m32v2' of https://github.com/sbourget/moodle into MOODLE_32_STABLE 2016-12-19 14:33:06 +00:00
Dan Poltawski 1a1eef4345 Merge branch 'wip-MDL-56912-32' of git://github.com/marinaglancy/moodle into MOODLE_32_STABLE 2016-12-19 12:21:23 +00:00
Eloy Lafuente (stronk7) 4942dfc7cd Merge branch 'MDL-57270_32' of git://github.com/markn86/moodle into MOODLE_32_STABLE 2016-12-19 13:04:25 +01:00
Eloy Lafuente (stronk7) d469fb2181 Merge branch 'MDL-57293-32' of git://github.com/danpoltawski/moodle into MOODLE_32_STABLE 2016-12-19 13:02:16 +01:00
Dan Poltawski 0213ce081c Merge branch 'MDL-52098_32_STABLE' of git://github.com/Chocolate-lightning/moodle into MOODLE_32_STABLE 2016-12-19 11:25:49 +00:00
David Monllao 70b6a6618a Merge branch 'MDL-57402_32' of git://github.com/timhunt/moodle into MOODLE_32_STABLE 2016-12-19 12:23:45 +01:00
Dan Poltawski 089cf944f3 MDL-57450 enviroment: remove tls library check
Unfortunately it has come to light that the version sniffing is just not
reliable at all, operating system vendors backport security patches to
older versions - so in many cases we reporting a problem which is not a
problem. False positives and the solution to self-compile or something
like php will be causing more harm than good.
2016-12-19 10:53:59 +00:00
Dan Poltawski 68d9adcba8 Merge branch 'MDL-53044-m32' of https://github.com/ak4t0sh/moodle into MOODLE_32_STABLE 2016-12-19 08:47:23 +00:00
Dan Poltawski 32636d1757 Merge branch 'MDL-55715_m32v1' of https://github.com/sbourget/moodle into MOODLE_32_STABLE 2016-12-19 08:35:43 +00:00
Stephen Bourget 48ff43d3bd MDL-54996 Calendar: Fix dates for future multi-day events
Thanks to Martin Cunliffe for providing the fix
2016-12-17 10:53:00 -05:00
Mathew May 725863abe4 MDL-52098 enrol: cohort now looks at instance status 2016-12-16 11:22:06 +13:00
Arnaud Trouve 9de4bbf8a8 MDL-53044 auth : force change on expired password 2016-12-15 15:11:30 +01:00
Dan Poltawski cd7ca81fdd MDL-57293 lang/email: Improve emailvia string
* Strip the https? part of url for existing strings
* Switch the string to (via shortname)
2016-12-15 09:54:34 +00:00
Andrew Nicols 1ca30f2503 weekly release 3.2+ 2016-12-15 11:34:25 +08:00
Andrew Nicols c47a9439d3 Merge branch 'install_32_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_32_STABLE 2016-12-15 11:34:21 +08:00
Damyon Wiese 2ce5b1d637 MDL-57386 blocklib: wrong variable in is_block_present
This isn't reachable code in core moodle, but themes/plugins could call is_block_present to trigger it.
2016-12-15 10:51:31 +08:00
Tim Hunt c4ade76ee5 MDL-57402 quiz editing: fix add heading after remove page break 2016-12-14 16:35:17 +00:00
AMOS bot 62fc665ff6 Automatically generated installer lang files 2016-12-15 00:04:14 +08:00
Dan Poltawski 263865899e MDL-56488 boost: validate scss settings for parsable scss
* Parses the scss and fails validation if a parse error is found

* Does not detect the situation when variables are not present - this
  would involve us parsing the entire tree and would be slow. It could
  also change over time, depending on whats defined in the scss
  from themes.

* Introduces a new admin_setting_scsscode to do this
2016-12-14 11:34:25 +00:00
Mark Nelson f927f3e196 MDL-57270 core_message: trim message before it is sent 2016-12-14 12:19:24 +08:00
Stephen Bourget 70f5e9ba61 MDL-55715 calendar: Only update events from the current subscription
The iCal import should only update calendar events from the current
subscription not any subscription that contains the same event.
2016-12-13 22:06:44 -05:00
Andrew Nicols 3b7bf2cee0 Merge branch 'wip-mdl-57380-m32' of https://github.com/rajeshtaneja/moodle into MOODLE_32_STABLE 2016-12-14 09:56:57 +08:00
Mark Nelson a57a9053d7 MDL-55062 tool_uploaduser: prevent defaults when not selected 2016-12-14 09:49:04 +08:00
Rajesh Taneja 0292245755 MDL-57380 behat: Check for list tags and text
after list tag span can be added on few browsers
like chrome 51.0, so test if text starts with
list tag and contains text
2016-12-14 09:38:35 +08:00
Stephen Bourget dd7aa695b2 MDL-55568 chat: chat_refresh_events should only create published events 2016-12-13 18:53:40 -05:00
Eloy Lafuente (stronk7) 2626dce64c Merge branch 'MDL-55809-32' of https://github.com/xow/moodle into MOODLE_32_STABLE 2016-12-13 20:05:23 +01:00
Dan Poltawski 7e2e135943 Merge branch 'MDL-57125-32' of git://github.com/lameze/moodle into MOODLE_32_STABLE 2016-12-13 16:34:58 +00:00
Matt Davidson cc15b9d46f MDL-56810 unoconv: task fails if user removed
If the user is removed from a course after a submission has been made,
the task will crash and never continue.  This removes submissions from
the cron task if the user isn't enrolled in the course.
2016-12-13 14:56:52 +00:00
Eloy Lafuente (stronk7) ce47bacfe9 Merge branch 'MOODLE_32_STABLE' of https://github.com/fwsl/moodle into MOODLE_32_STABLE 2016-12-13 12:00:58 +01:00
ak4t0sh 7c89091995 MDL-55720 course: fix potential undefined variable and cleaning
This commit replace $e usage by $returnfromfunc.
Indeed $returnfromfunc always exists in the scope and take $e value in case of moodle_exception.

This commit also remove useless $modcontext affectation.
2016-12-13 11:49:32 +01:00
Henning Bostelmann 7766ffc618 MDL-55575 mod_glossary: Allow viewing all entries on one page 2016-12-13 11:46:03 +01:00
Mark Nelson 75efa0860c MDL-57250 core: show admin settings when only one category exists 2016-12-13 10:25:19 +00:00
Dan Poltawski d31412392c Merge branch 'MDL-56859-32' of https://github.com/snake/moodle into MOODLE_32_STABLE 2016-12-13 09:45:19 +00:00
Dan Poltawski da694c75ff Merge branch 'MDL-57074-32' of https://github.com/snake/moodle into MOODLE_32_STABLE 2016-12-13 09:26:08 +00:00
Adrian Greeve 76f5d7b9ab MDL-57216 navigation: Updated parent behat test. 2016-12-13 09:04:40 +00:00
Adrian Greeve e7d8926583 MDL-57216 navigation: Added missing grade overview link.
For theme_boost the grade overview link has been added
to the user profile page.
2016-12-13 09:04:36 +00:00
Dan Poltawski c87f1ac4c7 Merge branch 'MDL-57182-32' of https://github.com/snake/moodle into MOODLE_32_STABLE 2016-12-13 08:47:35 +00:00
Dan Poltawski 75c4f5b0ca Merge branch 'wip-MDL-57257-32' of git://github.com/abgreeve/moodle into MOODLE_32_STABLE 2016-12-13 08:46:03 +00:00
Marina Glancy f7b3774380 MDL-56912 feedback: empty multichoice questions do not submit 2016-12-13 15:01:04 +08:00
Andrew Nicols 78293c74bf Merge branch 'MDL-57213-32-2' of git://github.com/junpataleta/moodle into MOODLE_32_STABLE 2016-12-13 13:06:25 +08:00
Simey Lameze 406fc019c1 MDL-57125 comment: prevent js execution if there are no comments 2016-12-13 11:55:05 +08:00
Jun Pataleta 903cd37434 MDL-57213 navigation: Load all my course categories into navigation tree
* Load all of the relevant course categories of the courses that a user
  is enrolled in.
2016-12-13 11:43:22 +08:00
Nadav Kavalerchik 6fd8b0098a MDL-57056 Theme/Boost: Fix "Skip to" link when Tab key pressed 2016-12-13 10:47:50 +08:00
Jan Dageförde 34954a6050 MDL-57257 lesson: Validate type of numerical answer 2016-12-13 10:34:36 +08:00
Mark Nelson 949d8ae04e MDL-57222 mod_assign: show validation message on visible element 2016-12-13 10:30:38 +08:00
Eloy Lafuente (stronk7) 1c7cbed23c Merge branch 'wip-mdl-57328-m32' of https://github.com/rajeshtaneja/moodle into MOODLE_32_STABLE 2016-12-13 02:30:06 +01:00
Eloy Lafuente (stronk7) 9156498826 Merge branch 'mdl32_MDL-57324' of git://github.com/danmarsden/moodle into MOODLE_32_STABLE 2016-12-13 02:02:02 +01:00
Jake Dallimore 71adc9a9a3 MDL-57182 navigation: fix login failures display in page footer.
A bug introduced with MDL-45893 meant that the failure count was being
reset, causing the footer code to be skipped. This patch fixes that
bug and adds behat tests covering the displayloginfailures feature.
2016-12-13 07:20:58 +08:00
Eloy Lafuente (stronk7) 49612b733f Merge branch 'MDL-57319-32' of git://github.com/danpoltawski/moodle into MOODLE_32_STABLE 2016-12-12 16:23:20 +01:00
Arnaud Trouve bc0721c7d9 MDL-56525 forum: remove targeted user enrolment check
By removing the check on the targeted user's enrolment we allow to show his forum posts even if he is unenrol from a course (obviouly we need to have access to this course to view them)
2016-12-12 14:10:21 +00:00
Ryan Wyllie c5452484ee MDL-55782 groups: wrap long group names (theme: boost)
In the groups UI if a group name is very long it now no longer underlaps
the user column on its right hand side.
2016-12-12 13:19:18 +00:00
= 74eecb6078 MDL-55782 groups: wrap long group names
In the groups UI if a group name is very long it now no longer underlaps the user
column on its right hand side.
2016-12-12 13:19:15 +00:00
Dan Poltawski 725be51c11 Merge branch 'wip-mdl-52796-m32' of https://github.com/rajeshtaneja/moodle into MOODLE_32_STABLE 2016-12-12 13:00:56 +00:00
Philipp Hager d0d8a7f984 MDL-57198 course: add css-classes to restrictbygroup-button 2016-12-12 12:46:52 +00:00
Adrian Greeve 4a50811ae3 MDL-57299 Atto: Theme boost fix for manage files.
Theme boost removed a selector that was being used
to remove used files and so the page wasn't loading
properly.
2016-12-12 12:40:09 +00:00
Dan Poltawski b82ddcbcac Merge branch 'wip-mdl-57325-m32' of https://github.com/rajeshtaneja/moodle into MOODLE_32_STABLE 2016-12-12 12:23:25 +00:00
Dan Poltawski 6e4cc6caf4 Merge branch 'wip-mdl-57314-m32' of https://github.com/rajeshtaneja/moodle into MOODLE_32_STABLE 2016-12-12 12:21:31 +00:00
Dan Poltawski fe8e9b1b4e Merge branch 'wip-mdl-57343-m32' of https://github.com/rajeshtaneja/moodle into MOODLE_32_STABLE 2016-12-12 12:21:13 +00:00
Dan Poltawski 72770e9a60 Merge branch 'MDL-57171-32-2' of git://github.com/junpataleta/moodle into MOODLE_32_STABLE 2016-12-12 10:31:13 +00:00
Dan Poltawski a847efc70b Merge branch 'MDL-56566_32' of https://github.com/bostelm/moodle into MOODLE_32_STABLE 2016-12-12 09:20:13 +00:00
Ilya Tregubov 9e99327888 MDL-55906 table: Update user preferences table when reset preferences 2016-12-12 09:07:30 +00:00
Andrew Nicols 9973eebb91 Merge branch 'MDL-46714-32-nadav' of git://github.com/FMCorz/moodle into MOODLE_32_STABLE 2016-12-12 13:26:58 +08:00
Nadav Kavalerchik a162f636d8 MDL-46714 Calendar: Properly order Date & Time fields in RTL mode 2016-12-12 12:38:45 +08:00
Rajesh Taneja 8ff8d598fe MDL-57343 behat: Ensure we wait enough for page to be fully loaded 2016-12-12 10:38:32 +08:00
Ramindu Deshapriya 8704d2e5fc MDL-52796 behat: Behat feature to test reset wiki page, tags & comments 2016-12-12 10:27:44 +08:00
Bram Tassyns f9dd21a17a MDL-56859 SCORM: player shouldn't display TOC while loading 2016-12-12 09:11:50 +08:00
Jake Dallimore eb349bdfc4 MDL-57074 Filepicker: Fix alias and link icons in RTL mode
Fixed alignment of the images in RTL mode. Also fixed a z-index problem
in which the icons were displayed above the open drawer on narrow
screens.
2016-12-12 08:48:15 +08:00
AMOS bot 89d186af72 Automatically generated installer lang files 2016-12-10 00:04:00 +08:00
Dan Poltawski 65de977483 MDL-57319 outputlib: raise timeout for scss/less compilation 2016-12-09 08:47:05 +00:00
Rajesh Taneja e167481759 MDL-57328 core: Remove xdebug extension, so test run faster 2016-12-09 10:24:01 +08:00
Rajesh Taneja 457c913461 MDL-57325 behat: Fixed backup/restore steps to use proper api 2016-12-09 09:31:13 +08:00
Rajesh Taneja 422449dca8 MDL-57328 core: Run tests with php 7.1 2016-12-09 08:49:21 +08:00
Dan Marsden 53c8f0ca3c MDL-57324 scorm: exclude objective raw.score from grade update 2016-12-09 10:13:20 +13:00
Henning Bostelmann b094b88a9a MDL-56566 mod_assign: ignore "doanything" in course overview
Do not count site admin "doanything" capability for determining
what should be shown in the course overview for assignments.
2016-12-08 20:28:10 +00:00
AMOS bot 49e5d04a8d Merge branch 'MOODLE_32_STABLE' into install_32_STABLE 2016-12-09 00:04:15 +08:00
AMOS bot 38e28dfbcd Automatically generated installer lang files 2016-12-08 18:11:21 +08:00
Dan Poltawski 44047dc78d weekly release 3.2+ 2016-12-08 08:43:05 +00:00
Marina Glancy c06b8145b1 MDL-56614 behat: add missing wait for page is ready 2016-12-08 13:51:53 +08:00
Franziska Hübler 79da2c5bfa MDL-55809 glossary: Keep file author and license across import/export 2016-12-08 12:28:22 +08:00
Andrew Nicols a5800adaf0 Merge branch 'MDL-57278-32-5' of https://github.com/xow/moodle into MOODLE_32_STABLE 2016-12-08 10:53:37 +08:00
John Okely c1c3f50965 MDL-57278 signup: Fix double encoding of confirmation links 2016-12-08 10:17:50 +08:00
John Okely cff14cf0d1 MDL-57278 signup: Unit tests covering confirmation link generation 2016-12-08 10:17:50 +08:00
Rajesh Taneja c95ea731bc MDL-57314 behat: Press enter after setting password unmask 2016-12-08 09:24:37 +08:00
Rajesh Taneja b98f14632b MDL-56642 dataformat: Fixed method_exits parameters 2016-12-08 00:37:03 +01:00
Mark Nelson a1e1b45ae7 MDL-57283 core: fixed function call on null 2016-12-07 10:17:36 +00:00
Kenneth Hendricks 2d44bb544b MDL-56674 core: Fix test_get_all_observers 2016-12-07 08:46:04 +00:00
Marina Glancy c60d333578 MDL-56614 behat: corrections to new steps 2016-12-07 14:58:39 +08:00
Andrew Nicols 182690b018 Merge branch 'wip-mdl-56353-m32' of https://github.com/rajeshtaneja/moodle into MOODLE_32_STABLE 2016-12-07 12:03:36 +08:00
Rajesh Taneja b36b54179d MDL-56353 behat: Added test for multi select dependency 2016-12-07 11:19:01 +08:00
Andrew Nicols fc4b768e25 Merge branch 'wip-MDL-56642-32' of git://github.com/marinaglancy/moodle into MOODLE_32_STABLE 2016-12-07 10:00:59 +08:00
Andrew Nicols 7e0f1972f1 Merge branch 'MDL-57266_32' of git://github.com/stronk7/moodle into MOODLE_32_STABLE 2016-12-07 09:54:33 +08:00
Andrew Nicols 93e64c823c Merge branch 'MDL-56240_32' of git://github.com/stronk7/moodle into MOODLE_32_STABLE 2016-12-07 09:51:07 +08:00
Rajesh Taneja 20d598f094 MDL-56614 behat: Fixed steps to use new definition 2016-12-07 09:43:06 +08:00
Marina Glancy e376549179 MDL-56642 dataformat: set temp dir
Thanks to Chien Wen-Chang for proposing a patch
2016-12-07 09:30:25 +08:00
Rajesh Taneja 163a317bcc MDL-57137 behat: Subcategory has black space before name 2016-12-07 09:13:26 +08:00
Dan Poltawski 7ecf13ac1d Merge branch 'MDL-45873_32' of https://github.com/bostelm/moodle into MOODLE_32_STABLE 2016-12-06 15:56:28 +00:00
Ankit Agarwal 2fbe4fca87 MDL-57284 boost: Fix booktool_print icons 2016-12-06 15:50:57 +00:00
Jun Pataleta d07a8ebd7e MDL-57171 admin: Make environment check table look better
* Use Bootstrap label classes for the text under the status column.
* theme_bootstrapbase:
  - Cleanup unnecessary classes and make .error styles consistent
    with .warn styles
* theme_boost:
  - Set font color appropriate for success, warning and error strings.
* Enclose report text in div so that the feedback texts will be
  displayed right below it.
2016-12-06 22:18:55 +08:00
SSRF d4feb70e17 MDL-53677 tool_spamcleaner: CSRF Fix
Resolves minor CSRF within Moodle spamcleaner.
2016-12-06 12:48:31 +00:00
Dan Poltawski f477809e38 Merge branch 'MDL-56836-32' of https://github.com/snake/moodle into MOODLE_32_STABLE 2016-12-06 12:46:19 +00:00
Daniel Thee Roperto 94caed45db MDL-56233 forms library: Fixed form identifier when mocking a form.
If the plugin is using namespaces instead of frankenstyle class name,
get_called_class() will return 'type\name' instead of 'type_name'.

Added code to replace backslashes to underscores and fix that issue.
2016-12-06 12:42:17 +00:00
Dan Poltawski 8c4fdb1073 MDL-56778 enrol: add note about legacy css 2016-12-06 12:32:30 +00:00
Nadav Kavalerchik e5bbe44230 MDL-56778 Enrollment: Fix enroll users dialog in RTL mode (theme:Boost) 2016-12-06 12:32:23 +00:00
Tim Hunt d0a58fe035 MDL-57199 question preview: make HTML ids unique 2016-12-06 12:25:45 +00:00
Michael Aherne 9c68157292 MDL-56971 enrol: Use autoloading in enrol_get_plugin() 2016-12-06 11:08:17 +00:00
Grzegorz Ziółek 44f71599df MDL-56830 config_log: Add block plugin visibility changes to config_log. 2016-12-06 11:51:48 +01:00
Alexander Melihov 1fac7b914b MDL-57137 quiz: Create question category with specified parent category
Fix question category generator bug. Now it is possible to specify parent category of subcategory, supply only name of parent category
2016-12-06 15:34:13 +08:00
Tony Butler cede73411f MDL-56346 assignfeedback_editpdf: Correct typo in property name 2016-12-06 14:38:01 +08:00
Andrew Nicols 47deb83b5c Merge branch 'MDL-56301-32' of https://github.com/snake/moodle into MOODLE_32_STABLE 2016-12-06 14:27:03 +08:00
Andrew Nicols 4ea56c1c80 Merge branch 'wip-MDL-56614-m32-2' of https://github.com/marinaglancy/moodle into MOODLE_32_STABLE 2016-12-06 13:38:08 +08:00
Marina Glancy 311121b16c MDL-56614 behat: add navigation block when required
Most of these hacks have links to corresponding MDL issues
2016-12-06 13:35:40 +08:00
Marina Glancy 5863f1b073 MDL-56614 behat: rename step for navigating in the gradebook 2016-12-06 13:35:40 +08:00
Marina Glancy 2bb195f64f MDL-56614 behat: navigate without navigation and admin blocks 2016-12-06 13:35:40 +08:00
Marina Glancy f6b50d9901 MDL-56614 block_navigation: Add block in behat tests 2016-12-06 13:35:39 +08:00
Marina Glancy a0b0234a18 MDL-56614 behat: new steps for navigation without blocks 2016-12-06 13:35:39 +08:00
Andrew Nicols f8b8a363ae Merge branch 'MDL-57161-32' of git://github.com/lameze/moodle into MOODLE_32_STABLE 2016-12-06 13:10:40 +08:00
Donald Barrett b197272987 MDL-56301 course: Use value for intro field if set in a mods function
Respects a module that has set a value for the db field intro in it's lib function modulename_add_instance.
2016-12-06 10:40:49 +08:00
Juan Leyva e4976aefc5 MDL-57255 gradereport_user: Fix default value for graderaw
graderaw is a PARAM_FLOAT, the default to empty string was incorrect
2016-12-06 10:18:53 +08:00
David Monllao dcd408b81f MDL-57161 search: Set the correct HTTP header
All credit goes to Test Valley School
2016-12-06 10:00:07 +08:00
Simey Lameze 4a564ca40b MDL-56759 themes: fix badge list alignment issues 2016-12-06 09:24:31 +08:00
Eloy Lafuente (stronk7) 5da06d632a MDL-57266 upgrade: add 3.2.0 separation line to all upgrade scripts 2016-12-05 17:17:54 +01:00
Eloy Lafuente (stronk7) d797e57255 MDL-56240 upgrade: delete incorrect lines, manually added
Note that, with MDL-57266, we are changine the comment to be:

// Automatically generated Moodle v3.2.0 release upgrade line

in order to make to make to make it clearer that it's an
automatic (part of the release process) comment and should not
be added manually ever.
2016-12-05 16:52:31 +01:00
Frederic Massart 55d2042f0a MDL-56459 competency: Invalid use of indirect property key
This change ensures that PHP7 and earlier work the same way. Before
the patch PHP < 7 would not expand the property as we expected it.

More information here:
http://php.net/manual/en/migration70.incompatible.php#migration70.incompatible.variable-handling.indirect
2016-12-05 15:48:47 +00:00
David Mudrák 8cd6972966 MDL-57256 course: Fix display of the Legacy course files link
The patch fixes the classical operator precedence bug.
2016-12-05 15:45:38 +00:00
Henning Bostelmann 9cbc0a0cdb MDL-45873 mode_data: Allow "0" entries in menu field 2016-12-05 09:21:07 +00:00
John Okely 931d12b589 MDL-54921 signup: Only clear wanturl when necessary
Thanks to Juho Jaakkola for original patch idea.
2016-12-05 15:35:25 +08:00
Shamim Rezaie 0beeb95a8a MDL-52840 assignsubmission_file: Change default setting file size
The default value of the assignsubmission_file/maxbytes setting is changed to $CFG->maxbytes.
2016-12-05 13:02:20 +08:00
Mark Nelson 617f8bb911 MDL-57084 core_message: prevent duplication of day separator 2016-12-05 12:28:56 +08:00
Michael Spall 75dd21a002 MDL-56893 grades: Fix edit grade item when grade_report_showmin is false
Check to make sure $data['grademin'] exists. When grade_report_showmin
is false $data['grademin'] doesn't exist.
2016-12-05 12:05:19 +08:00
Bram Tassyns a0c13477ab MDL-56836 SCORM: player doesn't remember display mode when not logged in 2016-12-05 09:25:31 +08:00
Eloy Lafuente (stronk7) b182239f21 Moodle release 3.2 2016-12-03 14:26:15 +01:00
Eloy Lafuente (stronk7) 9c46f5c6fb NOBUG: Change travis.yml to MOODLE_32_STABLE 2016-12-03 14:26:15 +01:00
Dan Poltawski 1b00e27281 Moodle release 3.2rc5 2016-12-02 15:19:10 +00:00
Dan Poltawski 6a6b1bd782 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2016-12-02 15:19:09 +00:00
Dan Poltawski 65cc788bb1 Merge branch 'wip-mdl-57232' of https://github.com/rajeshtaneja/moodle 2016-12-02 15:00:48 +00:00
Rajesh Taneja 54348ea6d7 MDL-57232 behat: Add blocks in boost theme
Currently behat in boost depend on blocks
so make sure we have them.
2016-12-02 22:48:13 +08:00
Eloy Lafuente (stronk7) 72edf2ef13 Merge branch 'wip-mdl-57245' of https://github.com/rajeshtaneja/moodle 2016-12-02 14:15:27 +01:00
Rajesh Taneja 43b3cf0f25 MDL-57245 behat: Use correct @_file_upload tag 2016-12-02 19:04:32 +08:00
Eloy Lafuente (stronk7) dadbe55c81 Merge branch 'MDL-57193-master-notest' of git://github.com/FMCorz/moodle 2016-12-02 11:41:02 +01:00
Dan Poltawski 1acd568793 MDL-56553 usertours: fix apostrophe use 2016-12-02 09:22:42 +00:00
Frederic Massart 7fc7486f49 MDL-57193 auth_db: Flip the array outside the loop for better perf
Also as the recent changes where affecting the whitespaces quite
a lot, I took the liberty of aligning a few lines which weren't.
2016-12-02 16:29:47 +08:00
John Okely ec3e79134f MDL-57193 auth_db: Use a recordset and array_key_exists 2016-12-02 16:29:47 +08:00
Josh Willcock 34949c1a55 MDL-57193 auth_db: Fixed bug suspends all users if external DB has > 10k 2016-12-02 16:29:47 +08:00
David Monllao b9278260c7 MDL-56553 usertours: Removing trailing ^M 2016-12-02 16:23:03 +08:00
Ryan Wyllie 1459415f93 MDL-56553 tool_usertours: change add a block step to position right 2016-12-02 07:53:07 +00:00
David Monllao 76e337ab96 Merge branch 'MDL-57232-master' of git://github.com/damyon/moodle 2016-12-02 14:20:17 +08:00
David Monllao 80ee8a3eb0 Merge branch 'MDL-57209-master' of git://github.com/crmpicco/moodle 2016-12-02 13:26:56 +08:00
Damyon Wiese 9d1402abd8 MDL-57232 blocks: Split undeletableblocktypes
There are 2 kinds of blocks that are undeletable. Those required by the
theme and those protected via the admin page ui. We only want the theme
ones to be auto created site wide if they don't exist - so we need to
rename the theme ones and split the logic.
2016-12-02 12:32:03 +08:00
Andrew Nicols 666b9fcb6a MDL-57243 search: Correct todo doc 2016-12-02 10:53:52 +08:00
Andrew Nicols ddcb68b284 Merge branch 'MDL-57243_master' of git://github.com/dmonllao/moodle 2016-12-02 10:49:34 +08:00
David Monllao 5f654ea2c0 MDL-57243 search: Note about search area base classes relocation 2016-12-02 09:51:05 +08:00
Andrew Nicols d8326d8364 MDL-57101 media_videojs: Load legacy events before use 2016-12-02 08:58:19 +08:00
Eloy Lafuente (stronk7) f200f74552 Merge branch 'wip-MDL-57234-master' of https://github.com/Beedell/moodle 2016-12-01 17:58:51 +01:00
John Beedell 6c45e525fc MDL-57234 Quiz report: fix exception in Responses for all users 2016-12-01 16:23:18 +00:00
Dan Poltawski 063d5c28cf Merge branch 'MDL-57220-master' of git://github.com/damyon/moodle 2016-12-01 13:20:15 +00:00
Dan Poltawski a8bac97613 Merge branch 'MDL-57194-master' of git://github.com/lameze/moodle 2016-12-01 12:20:01 +00:00
David Monllao 2b114798b9 Merge branch 'MDL-57210-master' of git://github.com/ryanwyllie/moodle 2016-12-01 16:12:25 +08:00
Andrew Nicols 53cbfac2b9 Merge branch 'MDL-57101-master-fixup' of https://github.com/FMCorz/moodle 2016-12-01 15:07:42 +08:00
Frederic Massart b52c562a8c MDL-57101 media_videojs: Dynamic loader works on self-matching nodes 2016-12-01 14:51:40 +08:00
Frederic Massart 36e6789b27 MDL-57101 filter: Load globally available filters on every page
Previous commits were overlooked, they should have passed the
system context to filter_manager::setup_page_for_fitlers(), the
page context was passed instead. Regardless, the processing of
the latter is too excessive for what we need, but, more importantly,
it does not return "Off, but available" filters which we also need.
2016-12-01 14:51:40 +08:00
Frederic Massart 39a9ac4098 MDL-57101 core_media: Only instantiate enabled plugins 2016-12-01 14:50:04 +08:00
Simey Lameze 7d17256a75 MDL-57194 core_charts: Allow colors to be overridden by setting 2016-12-01 14:44:00 +08:00
Andrew Nicols 8f5de6f268 Merge branch 'MDL-56553-master-2' of git://github.com/ryanwyllie/moodle 2016-12-01 14:31:45 +08:00
Andrew Nicols 1f16e4e68e Merge branch 'MDL-57219-master' of git://github.com/damyon/moodle 2016-12-01 13:30:23 +08:00
Andrew Nicols 995c6d2787 Merge branch 'MDL-57206-master' of https://github.com/snake/moodle 2016-12-01 12:21:25 +08:00
David Monllao bb8b3ba6f8 Merge branch 'wip-mdl-57229' of https://github.com/rajeshtaneja/moodle 2016-12-01 11:38:59 +08:00
Rajesh Taneja 04bfccdce6 MDL-57229 enrol: Enrol dialog should have relative position
On clean theme it is absolute position and on small
screen user can't scroll to enrol user
2016-12-01 11:13:46 +08:00
Ryan Wyllie 3cc12bd747 MDL-57210 theme_boost: fix header buttons on smaller resolutions 2016-12-01 02:21:25 +00:00
Damyon Wiese e7d0de87c9 MDL-57219 blocks: Dont create and empty block for spacing
Change box to an empty container. We are after tiny tiny changes ATM.
2016-12-01 10:12:29 +08:00
Damyon Wiese ef06bc18b0 MDL-57220 boost: Fix for date selector inline template
It was putting the label on a separate line.
2016-12-01 09:48:59 +08:00
Damyon Wiese 52ee200368 MDL-57220 boost: minimal fix for radio button template
It still does not match
http://v4-alpha.getbootstrap.com/components/forms/#radios
but I don't want to make radical changes before 3.2 release.
2016-12-01 09:48:06 +08:00
Ryan Wyllie 10df630ee8 MDL-56553 tool_usertours: add admin and course tours 2016-12-01 00:44:29 +00:00
Ryan Wyllie 3eb3d916cb MDL-56553 tool_usertours: allow tours to be shipped with Moodle 2016-12-01 00:36:02 +00:00
Jake Dallimore bb316e0764 MDL-57206 core: describe newly introduced hooks in upgrade.txt
Added a description and example for the
<component>_course_module_background_deletion_recommended hook.
2016-12-01 08:25:28 +08:00
AMOS bot 5544189dd1 Automatically generated installer lang files 2016-12-01 00:05:38 +08:00
AMOS bot 09ade73632 Merge branch 'master' into install_master 2016-12-01 00:05:38 +08:00
Dan Poltawski ce7149b10c MDL-57197 js: fix AMD module warnings
In 3.2 we are free of AMD lint warnings, unfortunately we can't expose
them through grunt yet due to
"File ignored because of a matching ignore pattern. Use "--no-ignore" to
override"

ps. this isn't related to MDL-57197 at all, i'm just a Rebel
2016-11-30 13:50:38 +00:00
Dan Poltawski 5814817ceb Merge branch 'MDL-57169_master' of git://github.com/markn86/moodle 2016-11-30 11:04:38 +00:00
Dan Poltawski a9b85245f2 Merge branch 'MDL-52199-incoming-nice-fail' of https://github.com/brendanheywood/moodle 2016-11-30 09:52:35 +00:00
Dan Poltawski 10461a04c6 Merge branch 'MDL-57207-master' of git://github.com/cameron1729/moodle 2016-11-30 09:51:21 +00:00
Cameron Ball 9a22c99ea9 MDL-57207 mod_lti: Remove redundant popover() call
Since MDL-56748 popovers are properly delegated. Making manual calls
to .popover redundant.
2016-11-30 17:45:41 +08:00
Andrew Nicols b95107ca83 Merge branch 'MDL-57205-master' of git://github.com/damyon/moodle 2016-11-30 15:03:43 +08:00
Andrew Nicols 432ed35484 Merge branch 'MDL-57127-master' of git://github.com/FMCorz/moodle 2016-11-30 14:27:23 +08:00
David Monllao f4aec377fc Merge branch 'MDL-56682_master' of git://github.com/markn86/moodle 2016-11-30 13:56:08 +08:00
David Monllao 99d2667f5c Merge branch 'MDL-57072-master' of git://github.com/junpataleta/moodle 2016-11-30 13:36:32 +08:00
Andrew Nicols a57699ead8 Merge branch 'MDL-57177-master' of git://github.com/cameron1729/moodle 2016-11-30 13:15:58 +08:00
Craig R Morton f6f0cb49aa MDL-57209 forms: Notice: Undefined index: options in profile edit page
Skipping a loop iteration if the option group has no options.
2016-11-30 13:08:56 +08:00
Frederic Massart 061a39ac5d MDL-57127 output: Increase memory limit when parsing CSS 2016-11-30 12:19:03 +08:00
Andrew Nicols 3f342da584 Merge branch 'MDL-57101-master-2nd' of git://github.com/FMCorz/moodle 2016-11-30 12:13:54 +08:00
David Monllao 4495ddcf9f Merge branch 'MDL-56955-master' of git://github.com/lameze/moodle 2016-11-30 11:34:29 +08:00
Simey Lameze 45cd101f80 MDL-56955 theme_boost: fix login failure displaying on user menu 2016-11-30 11:32:38 +08:00
David Monllao c5a5f26ce2 Merge branch 'MDL-57090-master' of git://github.com/ankitagarwal/moodle 2016-11-30 10:43:16 +08:00
Damyon Wiese 7c0725857a MDL-57205 forms: Prevent debugging in selectgroups
Sometimes the option group has no options I guess. The same check is in
exportValue.
2016-11-30 10:38:51 +08:00
Andrew Nicols 70f0e8353d Merge branch 'wip-MDL-57186-master' of https://github.com/marinaglancy/moodle 2016-11-30 10:20:31 +08:00
David Monllao 8c291fb06e Merge branch 'wip-MDL-56829-master-2' of git://github.com/marinaglancy/moodle 2016-11-30 10:05:16 +08:00
David Monllao 449b730e09 Merge branch 'MDL-57095-master' of git://github.com/ryanwyllie/moodle 2016-11-30 09:26:07 +08:00
Andrew Nicols 8018dc63c7 Merge branch 'MDL-57174_master' of git://github.com/markn86/moodle 2016-11-30 09:12:54 +08:00
Jun Pataleta 8ace7b6c34 MDL-57072 theme_boost: Render action menu for category management 2016-11-30 09:11:32 +08:00
Eloy Lafuente (stronk7) 3f083d9a33 MDL-57197 versions: main version bump 2016-11-29 22:58:22 +01:00
Eloy Lafuente (stronk7) 04649747a4 MDL-57197 versions: bump all versions and requires near release
version = 2016120500 release version
requires= 2016112900 current rc4 version
2016-11-29 22:57:05 +01:00
Eloy Lafuente (stronk7) eb80018202 Merge branch 'MDL-57133-master-enfix' of git://github.com/mudrd8mz/moodle 2016-11-29 22:36:29 +01:00
AMOS bot f3317a0eac Automatically generated installer lang files 2016-11-30 00:04:41 +08:00
Dan Poltawski a0352aa95e Moodle release 3.2rc4 2016-11-29 13:33:15 +00:00
Dan Poltawski d5d1d56f9c Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2016-11-29 13:33:13 +00:00
David Mudrák 1270616023 MDL-56800 theme_boost: Radios should not have name if soft frozen, too 2016-11-29 11:32:28 +00:00
Andrew Nicols 06ded0ed5f MDL-56800 theme_boost: Remove name from hardFrozen radio 2016-11-29 08:11:31 +00:00
Ryan Wyllie c22141bd0c MDL-57095 theme: fix content styling for notification page 2016-11-29 07:14:05 +00:00
Marina Glancy 6f19da0549 MDL-57186 media: fix link in security report 2016-11-29 13:54:49 +08:00
Andrew Nicols 220f3ac711 MDL-56858 theme_boost: Correct bad merge conflict 2016-11-29 13:49:18 +08:00
David Monllao 1e102ca3ca Merge branch 'wip-mdl-57168-m1' of git://github.com/rajeshtaneja/moodle 2016-11-29 13:41:55 +08:00
David Monllao 7621fe8399 Merge branch 'MDL-57158-int-fix-1' of github.com:ryanwyllie/moodle 2016-11-29 13:36:52 +08:00
Damyon Wiese 0d5f5f7357 MDL-57124 boost: I want really tiny logos.
Said no-one ever.

Use max-height so very small logos will not be scaled up.
2016-11-29 13:21:35 +08:00
Marina Glancy 7d94f001e2 MDL-56829 media_videojs: play inline on iPhone with ios 10 2016-11-29 13:02:31 +08:00
Frederic Massart e37c128686 MDL-57101 filter: Always set-up the page for filters 2016-11-29 12:36:28 +08:00
Frederic Massart a174f2474f MDL-57101 media_videojs: Set-up player on dynamically loaded content 2016-11-29 12:36:26 +08:00
Andrew Nicols 805659e1fa Merge branch 'MDL-56919-master' of git://github.com/junpataleta/moodle 2016-11-29 12:06:56 +08:00
Jun Pataleta 01dc1c11ec MDL-56919 mod_forum: Assign check icon for selected subscription mode 2016-11-29 12:03:34 +08:00
Andrew Nicols 740dbe77a2 Merge branch 'MDL-56858_master-alt-2' of git://github.com/markn86/moodle 2016-11-29 11:52:32 +08:00
David Monllao 8b516a6a55 Merge branch 'MDL-57163_master' of git://github.com/dmonllao/moodle 2016-11-29 11:46:55 +08:00
David Monllao 4a1165ba39 MDL-57163 install: Check curl availability before curl_version() 2016-11-29 11:46:06 +08:00
David Herney 5634310997 MDL-57169 backup: ensure images in category descriptions are shown 2016-11-29 11:40:47 +08:00
Rajesh Taneja 9eb8f6ec56 MDL-57168 behat: Don't press continue as it will go to Annotate PDF
This might cause random failures as the draft files are being accessed by other user
2016-11-29 10:53:02 +08:00
David Monllao dc3e3c0831 Merge branch 'MDL-57097-master' of git://github.com/lameze/moodle 2016-11-29 10:51:10 +08:00
Cameron Ball d91cbe1e62 MDL-57177 theme_boost: Use regular ! for advanced form fields
Previously we used U+2757 on advanced form fields, which was problematic
as it's part of emoji and displays differently on different platforms.
This is a problem since we explicitly style it to be blue, but, for
example on OS X it's red (since it gets replaced with their emoji).
2016-11-29 10:48:38 +08:00
Mark Nelson 8599ac9e56 MDL-57174 mod_lesson: show settings menu on edit.php page 2016-11-29 10:24:55 +08:00
Damyon Wiese 4d41cec8db MDL-57124 boost: Show pageheaderbutton when no navbar
Even if there is no navbar - if there is a pageheaderbutton we need to
show it (E.g. Customise this page on dashboard).
2016-11-29 10:07:16 +08:00
David Mudrák 5e45c34221 MDL-57133 lang: Reword the strings in Behat tests too 2016-11-29 01:59:31 +01:00
Helen Foster 67823776a0 MDL-57133 lang: Merge English strings from the en_fix language pack 2016-11-29 01:49:28 +01:00
Ryan Wyllie 12f7202177 MDL-57158 theme: add margin for icon in pull right menu 2016-11-29 00:34:44 +00:00
Rajesh Taneja 8392a86068 MDL-57168 behat: Check for button not text 2016-11-29 07:36:43 +08:00
Mark Nelson dc801cb6b9 MDL-56858 theme_boost: separate input description and label
Also added missing advanced and required form symbols.
2016-11-28 18:24:16 +08:00
Mark Nelson 4a8c6b4259 MDL-56682 mod_assign: ensure the variable is not null 2016-11-28 16:47:00 +08:00
Dan Poltawski 1cbc346092 Merge branch 'MDL-57176-master' of git://github.com/damyon/moodle 2016-11-28 08:30:37 +00:00
David Monllao c56c23720b Merge branch 'MDL-57124-master' of git://github.com/damyon/moodle 2016-11-28 15:22:46 +08:00
Damyon Wiese 7ad1d2da47 MDL-57124 Boost: Login page styles (and signup)
Center logo / site name.
Add padding to logo / site name.
Serve retina images and resize with css.
Add a line under the logo / site name.
Don't show site name if there is a logo.
Obey nonavbar option in core_renderer.
2016-11-28 15:20:35 +08:00
Ankit Agarwal 3d1be67752 MDL-57090 hubs: Replace smart select with searchableselect 2016-11-28 12:22:25 +05:30
Damyon Wiese 58ec5a315b MDL-57176 blocks: Never never never dup blocks
Dont create duplicate blocks 'requiredbytheme' for any reason.
2016-11-28 14:48:02 +08:00
David Monllao 6ee691d71b Merge branch 'MDL-57158-master' of git://github.com/ryanwyllie/moodle 2016-11-28 14:39:22 +08:00
Ryan Wyllie 60ff24c0f1 MDL-57158 theme: fix icon margin in action menus 2016-11-28 06:37:08 +00:00
David Monllao c811356efb Merge branch 'MDL-57156-master' of https://github.com/snake/moodle 2016-11-28 14:00:50 +08:00
Vladimir Zhirov acefc7d963 MDL-57163 installation: fixed "Call to undefined function curl_version" 2016-11-28 13:25:41 +08:00
David Monllao f59bab60c0 Merge branch 'wip-mdl-57168' of https://github.com/rajeshtaneja/moodle 2016-11-28 12:59:11 +08:00
Rajesh Taneja 47b03b9170 MDL-57168 behat: Fixed xpath to ensure active link is checked 2016-11-28 12:57:56 +08:00
Rajesh Taneja d442a3169c MDL-57168 behat: Return link is the existing category 2016-11-28 12:57:56 +08:00
Rajesh Taneja 3df6e801b5 MDL-57168 behat: Ensure drawer is open before clicking the link 2016-11-28 12:57:55 +08:00
David Monllao 920778eb93 Merge branch 'MDL-56619-master' of git://github.com/ryanwyllie/moodle 2016-11-28 12:45:46 +08:00
David Monllao d826c64c57 Merge branch 'wip-mdl-57147' of https://github.com/rajeshtaneja/moodle 2016-11-28 12:40:27 +08:00
David Monllao 085e077fa3 Merge branch 'MDL-57146-master' of git://github.com/damyon/moodle 2016-11-28 12:15:30 +08:00
Ryan Wyllie 341da3e3fb MDL-56619 theme: filemanager_selectlayout bootstrap 4 form styling 2016-11-28 03:42:40 +00:00
Jake Dallimore 0395ec28e2 MDL-57156 themes: override caption alignment in theme boost 2016-11-28 11:35:11 +08:00
David Monllao dd106016ee Merge branch 'MDL-57122-master' of git://github.com/ankitagarwal/moodle 2016-11-28 11:31:05 +08:00
Ankit Agarwal 2adf5ef946 MDL-57122 boost: Don't escape strings twice
Strings should always be escaped in templates not before
2016-11-28 08:22:41 +05:30
Ankit Agarwal 6c4aba1e7e MDL-57122 boost: Add context docs to login template 2016-11-28 08:22:41 +05:30
Jun Pataleta 894b1825f6 MDL-56919 boost: Render non-action menu items as disabled action links 2016-11-28 10:20:18 +08:00
Jun Pataleta 27a3843d05 MDL-56919 templates: action_link template fixes when disabled
For the case where the action_link template is shown as disabled:
* Allow extra classes to be set on on the class attribute.
* Allow extra attributes to be set.
2016-11-28 10:20:18 +08:00
Rajesh Taneja 96813571b1 MDL-57147 phpunit: Check if time is greater than or equal to
Some windows only have 1/100 microtime resolution
so a lot of times it does not advance enough.
2016-11-28 09:40:21 +08:00
AMOS bot c1722505e1 Automatically generated installer lang files 2016-11-27 00:05:45 +08:00
Dan Poltawski 39f621305d Merge branch 'MDL-57134-master' of git://github.com/lameze/moodle 2016-11-25 12:35:17 +00:00
Dan Poltawski 1f5fbd1696 Merge branch 'wip-mdl-56659' of https://github.com/rajeshtaneja/moodle 2016-11-25 11:17:36 +00:00
Dan Poltawski cdef9e91a3 Merge branch 'MDL-56800-master-radio' of git://github.com/mudrd8mz/moodle 2016-11-25 10:44:19 +00:00
David Monllao 3eabedbb92 Moodle release 3.2rc3 2016-11-25 15:58:02 +08:00
David Monllao 9441af9596 NOBUG: Fixed file access permissions 2016-11-25 15:58:02 +08:00
David Monllao c08a263134 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2016-11-25 15:58:01 +08:00
Marina Glancy 392367c4f7 MDL-56586 behat: fix behat tests to work with new add block 2016-11-25 14:04:10 +08:00
Rajesh Taneja 350d0ae6b7 MDL-56659 core: Enable password field when label is clicked 2016-11-25 12:09:37 +08:00
Rajesh Taneja dfa707c994 MDL-56659 core: No need for noscript tag and set size later
1. BrowserKitDriver::setValue only checks if the element is
   disabled. It still is able to set value on hidden elements
   So there is no need for noscript tag in password unmask
2. Set size on hidden field is not valid html, so set it later
   when text element is displayed
2016-11-25 12:09:37 +08:00
David Monllao 0d9d55a3ad Merge branch 'MDL-56584-master-fix1' of http://github.com/damyon/moodle 2016-11-25 11:15:32 +08:00
David Monllao b4f82837ba Merge branch 'MDL-55324-master-fix' of git://github.com/cameron1729/moodle 2016-11-25 11:11:20 +08:00
David Monllao bae517c616 Merge branch 'MDL-57094-int-patch-1' of github.com:ryanwyllie/moodle 2016-11-25 10:52:00 +08:00
David Monllao b68af8e6f8 Merge branch 'MDL-56801-master' of git://github.com/lameze/moodle 2016-11-25 10:40:39 +08:00
Ryan Wyllie af46d1dd23 MDL-57094 admin_tool: fix subscription behat tests 2016-11-25 02:24:33 +00:00
David Monllao b35c209d76 MDL-56551 calendar: Update behat test according to DOM changes 2016-11-25 10:06:36 +08:00
Damyon Wiese a1e8265d48 MDL-57146 boost: New tabbed settings page missing branch links
Branches that are also links were not showing as links.
2016-11-25 10:00:22 +08:00
David Monllao b71149c9ac Merge branch 'MDL-56761-master' of git://github.com/ryanwyllie/moodle 2016-11-25 09:36:17 +08:00
Damyon Wiese 262253f624 MDL-56584 boost: Use tabindex-1 on nav drawer
Also use aria-hidden on unicode symbol for hamburger.
2016-11-25 09:27:17 +08:00
David Monllao c15f993cde Merge branch 'wip-mdl-56898-fix4' of https://github.com/rajeshtaneja/moodle 2016-11-25 09:24:24 +08:00
Rajesh Taneja d2a44a71ac MDL-56898 behat: Focus only works with JS 2016-11-25 09:20:52 +08:00
David Monllao 92fa8b8fde Merge branch 'MDL-57126-master' of https://github.com/snake/moodle 2016-11-25 09:18:26 +08:00
David Monllao 29c96d214b Merge branch 'MDL-55857-master' of git://github.com/danpoltawski/moodle 2016-11-25 08:46:04 +08:00
Marina Glancy 1adf21fc1d MDL-57019 behat: corrections to the selectors, adding waiting 2016-11-25 08:38:24 +08:00
Jake Dallimore d714aeb4f5 MDL-57126 core: add 'scss' to list of core filetypes.
This allows filetype restrictions to work when uploading additional
preset files on the Boost admin settings page.
2016-11-25 07:53:59 +08:00
David Mudrák c03f1de198 MDL-56800 theme_boost: Clean up rendering of the radio buttons
The <input type="radio"> element does not support the size attribute so
there is no point of rendering it. Also fixed the example data as the
field name must not contain any whitespace.
2016-11-24 23:50:21 +01:00
David Mudrák edd837038a MDL-56800 theme_boost: Display frozen form's radios as disabled
For frozen (read-only) forms, the radio widget was not displayed at all
and only the legend text was displayed. So it was not possible to see
which one of the radios in a group was selected.

This patch mimics the original quick form rendering and displays the
radio as disabled.
2016-11-24 23:47:39 +01:00
Dan Poltawski ad76556b76 Merge branch 'MDL-56948-master' of https://github.com/lucisgit/moodle 2016-11-24 15:58:05 +00:00
Dan Poltawski 9cc9690575 Merge branch 'MDL-57102-master' of git://github.com/jleyva/moodle 2016-11-24 10:43:21 +00:00
Dan Poltawski b001cd4b17 Merge branch 'MDL-56431-filter-fix' of git://github.com/abgreeve/moodle 2016-11-24 09:45:53 +00:00
Dan Poltawski 74b8557661 Merge branch 'MDL-57013_master' of https://github.com/nadavkav/moodle 2016-11-24 09:44:32 +00:00
Adrian Greeve 72a5842bd7 MDL-56431 messaging: Added aria label to filter.
Added an aria label to the course filter in the
messaging page.
2016-11-24 17:33:22 +08:00
Dan Poltawski 304e8a8d0c Merge branch 'wip-MDL-56586-master-2' of git://github.com/marinaglancy/moodle 2016-11-24 09:30:29 +00:00
Dan Poltawski c5c8f3a6f5 Merge branch 'MDL-57118-master' of git://github.com/damyon/moodle 2016-11-24 09:26:52 +00:00
Marina Glancy 86ac6a3763 MDL-57019 behat: make tab navigation compatible with boost 2016-11-24 16:47:00 +08:00
Simey Lameze 539de849cd MDL-57134 core_badges: add missing badgeslib.php include 2016-11-24 16:45:17 +08:00
David Monllao 68dde67d9f Merge branch 'MDL-57094-master' of git://github.com/ryanwyllie/moodle 2016-11-24 15:53:26 +08:00
David Monllao 8b81daf4dd Merge branch 'MDL-56429-master' of git://github.com/ryanwyllie/moodle 2016-11-24 15:47:31 +08:00
David Monllao 4de871f4ca Merge branch 'MDL-57001-master' of git://github.com/damyon/moodle 2016-11-24 15:29:04 +08:00
Damyon Wiese a955cf531c MDL-57118 boost: Participants cog shows too much
Because 0 == 'participants' in php.
2016-11-24 15:27:17 +08:00
Andrew Nicols 9a102866be Merge branch 'MDL-56564-master-2' of git://github.com/junpataleta/moodle 2016-11-24 15:22:12 +08:00
David Monllao 8411e0a508 Merge branch 'wip-mdl-56797' of https://github.com/rajeshtaneja/moodle 2016-11-24 15:19:18 +08:00
Ryan Wyllie 1fb687ea8f MDL-56761 theme: fix RTL styling for hover tooltip 2016-11-24 07:12:46 +00:00
Damyon Wiese 2fedc0da7c MDL-57001 roles: Do access check for switchroles
Put it in the API so it can't be skipped.
2016-11-24 15:11:19 +08:00
Damyon Wiese 7dba450fd4 MDL-57001 user_menu: Hide switch roles students
Check that there are switchable roles before showing the link in the user menu.
2016-11-24 15:11:19 +08:00
Damyon Wiese 22b8c5b842 MDL-57001 user_menu: Fixes for unit tests
We added a link to the user menu so we have to adjust the tests.
2016-11-24 15:11:19 +08:00
Damyon Wiese 8c224317ee MDL-57001 switchroles: Add a cancel link to the page. 2016-11-24 15:11:19 +08:00
Damyon Wiese 70b03eff02 MDL-57001 switchroles: Move to user menu
Take this out of the navigation and force it in the user menu.
2016-11-24 15:11:19 +08:00
Damyon Wiese 7095f5be97 MDL-57001 usermenu: Add switch role to the bottom of the user menu 2016-11-24 15:11:19 +08:00
Andrew Nicols 4213f7e236 Merge branch 'wip-MDL-57019-fix' of https://github.com/marinaglancy/moodle 2016-11-24 15:09:43 +08:00
Simey Lameze 45d5594ecb MDL-56801 theme_boost: remove registration_textfield rule
The registration_textfield conflicts with the form default styling and breaks form layout.
2016-11-24 14:40:38 +08:00
Marina Glancy bf07b81543 MDL-56586 blocks: use template for non-JS add block selector 2016-11-24 14:24:59 +08:00
Damyon Wiese be2247fb24 MDL-56586 blocks: Do the addblock in a modal 2016-11-24 14:24:59 +08:00
Marina Glancy b1e5624ad9 MDL-56586 blocks: Fix mess with links to permissions
problem 1: links to blocks permissions changes were missing in boost
problem 2: when modifying link from dashboard user is returned to profile ('returnurl' passed but not respected)
problem 3: link to check permissions missing from category management page
fix: instead of respecting both 'return' and 'returnurl' parameter use only 'returnurl'
fix: use 'popup' layout when modifying permissions for a block
2016-11-24 14:24:59 +08:00
Marina Glancy b11916d3e7 MDL-56586 blocks: allow theme to manage "Add a block" select 2016-11-24 14:24:56 +08:00
Ryan Wyllie de4ca62e7a MDL-56429 theme: add margin to processor settings form controls
Add a top margin to the form controls in the processor settings modal on
the notification preferences page to separate the content from the
controls.
2016-11-24 06:12:27 +00:00
Marina Glancy b0842f61f4 MDL-57019 behat: new step to navigate to gradebook section 2016-11-24 12:46:27 +08:00
Cameron Ball 4d85886b5f MDL-55324 atto_media: Reduce maximum height of atto modal
Previously after adding a few sources or expanding a few fieldsets
the modal would be pushed off the bottom of the screen. Here we
reduce the maximum height to allow it to remain visible.
2016-11-24 12:31:30 +08:00
David Monllao 692c1bf345 Merge branch 'MDL-56391_master-fix' of https://github.com/markn86/moodle 2016-11-24 11:28:00 +08:00
Mark Nelson bb3a1d6f39 MDL-56391 core_user: fixed failing behat 2016-11-24 11:24:32 +08:00
Simey Lameze b6f549d139 MDL-57097 mod_assign: add event listener to avoid form submit 2016-11-24 11:24:25 +08:00
Jun Pataleta 144c149704 MDL-56564 mod_lti: Reset fields before updating tool matches 2016-11-24 11:09:03 +08:00
Andrew Nicols 2ecb3ffa97 Merge branch 'wip-mdl-56898-fix3' of https://github.com/rajeshtaneja/moodle 2016-11-24 11:08:55 +08:00
David Monllao fa42b7bc69 Merge branch 'MDL-57069_master' of git://github.com/markn86/moodle 2016-11-24 11:04:28 +08:00
Cameron Ball e24699cc7a MDL-55324 atto_media: Preserve help text when adding sources 2016-11-24 10:55:05 +08:00
David Monllao ff8b71ef7b Merge branch 'MDL-56871_master' of git://github.com/markn86/moodle 2016-11-24 09:53:45 +08:00
David Monllao 55f8edfdf2 Merge branch 'MDL-56993-master' of git://github.com/damyon/moodle 2016-11-24 09:50:31 +08:00
David Monllao 654efef456 Merge branch 'MDL-56551-master' of git://github.com/damyon/moodle 2016-11-24 09:47:18 +08:00
Andrew Nicols 65f0ef9e34 Merge branch 'wip-mdl-57112' of https://github.com/rajeshtaneja/moodle 2016-11-24 08:43:45 +08:00
Rajesh Taneja febbb9f8cd MDL-57112 behat: Social activity block is by default present 2016-11-24 07:45:55 +08:00
Rajesh Taneja 8c35e49b37 MDL-56898 behat: No need to trigger error, as it sometimes hangs behat 2016-11-24 07:31:38 +08:00
Rajesh Taneja b3502be320 MDL-56898 behat: Ensure we have button in viewport and page is stable 2016-11-24 07:27:19 +08:00
Juan Leyva 851b291998 MDL-57102 tool_mobile: Return launchurl when sign-up enabled 2016-11-23 19:35:08 +00:00
Juan Leyva 813320fbb6 MDL-57102 auth: Add new signup_is_enabled function
And apply the function in:
- login/signup.php
- blocks/login/block_login.php
2016-11-23 19:35:08 +00:00
Damyon Wiese 9d44510d60 MDL-57100 JS: Exceptions give exceptions
Exceptions returned from ajax are not in the format expected by the JS, so
an error occurs and the exception popups are not appearing.
2016-11-23 18:07:26 +00:00
Dan Poltawski 4b287476f3 Merge branch 'MDL-53964' of https://github.com/timhunt/moodle 2016-11-23 16:07:28 +00:00
AMOS bot c61d7c0802 Merge branch 'master' into install_master 2016-11-24 00:06:13 +08:00
Dan Poltawski 183b1d6785 MDL-56995 boost: fix css lint warning 2016-11-23 15:47:12 +00:00
Dan Poltawski 2a55269ce8 Merge branch 'MDL-56584-master' of git://github.com/damyon/moodle 2016-11-23 15:44:29 +00:00
Dan Poltawski 2ec4ed4dba Merge branch 'MDL-56995-master' of git://github.com/damyon/moodle 2016-11-23 15:07:26 +00:00
Damyon Wiese 242997744d MDL-56995 boost: Hide navigation for print media
Hide the navigation elements, flat navigation settings menus etc when
printing.
2016-11-23 22:32:20 +08:00
Dan Poltawski 203f51d627 MDL-57064 tests: update externallib test 2016-11-23 13:00:29 +00:00
Dan Poltawski 9f82774a8b Merge branch 'MDL-57064-master' of git://github.com/FMCorz/moodle 2016-11-23 12:46:18 +00:00
Dan Poltawski c8012422eb Merge branch 'MDL-35949' of https://github.com/timhunt/moodle 2016-11-23 12:31:22 +00:00
Dan Poltawski 68153d5cbc Merge branch 'MDL-56564-master-2' of git://github.com/junpataleta/moodle 2016-11-23 11:27:20 +00:00
Dan Poltawski be58f604b5 Merge branch 'MDL-57112-master' of git://github.com/cameron1729/moodle 2016-11-23 10:34:33 +00:00
Dan Poltawski 93b68886e9 Merge branch 'MDL-57093-master' of git://github.com/ryanwyllie/moodle 2016-11-23 10:32:01 +00:00
Dan Poltawski fd111ccabf MDL-57061 boost: build js 2016-11-23 10:23:02 +00:00
Dan Poltawski 2664ef1861 Merge branch 'MDL-57061-master' of git://github.com/FMCorz/moodle 2016-11-23 10:18:48 +00:00
Adrian Greeve 58c2684db2 MDL-56431 messaging: Set focus to the write a message box. 2016-11-23 09:13:51 +00:00
Adrian Greeve d14207fd25 MDL-56431 messaging: Adding access to messaging.
This adds the most crucial elements needed for making
the messaging page accessible. There are still some other
areas that need addressing.
2016-11-23 09:13:50 +00:00
Damyon Wiese c0f89860ec MDL-56993 boost: Add behat tests for boost nav menus 2016-11-23 16:47:25 +08:00
Mark Nelson cb8057531f MDL-56871 core_message: fix inconsistent online status between panels 2016-11-23 16:32:46 +08:00
Dan Poltawski 19d8b0f9e1 Merge branch 'MDL-56182-master' of git://github.com/FMCorz/moodle 2016-11-23 08:26:38 +00:00
Cameron Ball 1b367ac6e8 MDL-57112 blocks: Add back social_activities block for social courses.
Courses in the social format are difficult to use. This patch
simply adds back the social activities block to the social
course format.
2016-11-23 16:06:37 +08:00
Andrew Nicols a954685767 Merge branch 'MDL-56988-master' of git://github.com/lameze/moodle 2016-11-23 15:53:49 +08:00
Andrew Nicols 020fb9d2dc Merge branch 'MDL-56733-master' of git://github.com/ankitagarwal/moodle 2016-11-23 15:50:38 +08:00
Ankit Agarwal 2c0dfa7d33 MDL-56733 boost: Add a preset repo link 2016-11-23 13:14:48 +05:30
Damyon Wiese ea5084f7f1 MDL-56993 boost: Fix navigation for singleactivity format
The single activity course format has no course front page, so we need
to make a special case for it so it's possible to get to the course
admin menu and put the course nodes in the flat navigation.
2016-11-23 15:31:27 +08:00
Simey Lameze 270b2e443c MDL-56988 report: review and apply boosty styles to all reports 2016-11-23 15:30:32 +08:00
Mark Nelson afa68a8174 MDL-57069 core_message: prevent past messages being loaded 2016-11-23 14:26:14 +08:00
Andrew Nicols 2a58fef860 Merge branch 'MDL-57059-master' of git://github.com/lameze/moodle 2016-11-23 14:15:42 +08:00
David Monllao d062d64fb8 Merge branch 'MDL-56116-master' of git://github.com/FMCorz/moodle 2016-11-23 14:01:48 +08:00
Frederic Massart 862816eec3 MDL-56116 theme_boost: Improve developer documentation related to themes 2016-11-23 13:55:28 +08:00
Ryan Wyllie b487a7c028 MDL-57094 message: change view more link in notification popover 2016-11-23 05:54:07 +00:00
Simey Lameze bea19e0dec MDL-57059 theme_boost: add rule to fix slot number misalignment 2016-11-23 13:37:55 +08:00
Jun Pataleta 1b669ebeba MDL-56564 mod_lti: External tool form fixes
* Revert disabling of the Preconfigured tool field on edit mode
* Reset LTI tool configuration fields when selecting a different
  preconfigured tool.
* Behat fixes for UI changes.
2016-11-23 13:10:51 +08:00
Frederic Massart e0c5ffb681 MDL-57061 theme_boost: Focus the invalid form elements on error 2016-11-23 12:11:57 +08:00
Andrew Nicols 5bda9fe900 Merge branch 'MDL-55324-master' of git://github.com/cameron1729/moodle 2016-11-23 12:09:46 +08:00
Cameron Ball 28e93cc41b MDL-55324 atto_media: Implement HTML compliant media plugin
This patch completely reworks the atto media plugin to allow
insertion of HTML media elements.
2016-11-23 11:57:33 +08:00
Cameron Ball a60a98d900 MDL-55324 filepicker: Explicitly set callback from showFilePicker
Prior to this patch the callback passed to showFilePicker was saved
and reused for subsequent calls. This doesn't allow the use of a function
for generating the callback.

This patch explicitly sets the callback each time.
2016-11-23 11:56:40 +08:00
Andrew Nicols 44cf94a877 Merge branch 'wip-MDL-57019-master' of git://github.com/marinaglancy/moodle 2016-11-23 11:54:16 +08:00
David Monllao d5c2829b06 MDL-56902 version: Triggering a major upgrade 2016-11-23 11:50:26 +08:00
David Monllao b3440a13cc Merge branch 'MDL-56902-master-fix1' of http://github.com/damyon/moodle 2016-11-23 11:48:44 +08:00
Ryan Wyllie 52aeda247c MDL-57093 forum: less specific unread styling
Changed the CSS for unread styling to no longer use ids because the
rules are too specific and override other elements with the .unread
class on the forum pages.
2016-11-23 03:40:30 +00:00
Damyon Wiese 48489fb93a MDL-56551 calendar: cibot fixes from this issue 2016-11-23 11:25:57 +08:00
Damyon Wiese 7ee4a28719 MDL-56551 calendar: Events list fixes for boost
The events list is now a list of cards with headers.
Spacing and layout is now done with bootstrap utility classes.
The existing classes were kept - and the styles for bootstrapbase are not changed much.
Also calendar colours can be overridden from a preset.
2016-11-23 11:25:52 +08:00
Damyon Wiese 1ac36fa9f7 MDL-56902 blocks: No theme blocks if fake blocks only
When showing only fake blocks, never auto create the blocks for the
theme. This would give you double blocks.
2016-11-23 11:07:32 +08:00
Frederic Massart 6b7e523b5d MDL-56182 mod_lti: Include the query string when comparing type URLs 2016-11-23 10:16:50 +08:00
David Monllao 8fb1b3bb68 Merge branch 'MDL-56391_master' of git://github.com/markn86/moodle 2016-11-23 09:49:03 +08:00
Dan Poltawski 3fd840072f MDL-56988 report: attempt to improve styling of reports 2016-11-23 08:50:06 +08:00
David Monllao 44c3d0775c Merge branch 'MDL-56902-master' of git://github.com/damyon/moodle 2016-11-23 08:29:41 +08:00
David Monllao 111d6b8f24 Merge branch 'MDL-57089-master' of git://github.com/ankitagarwal/moodle 2016-11-23 08:20:13 +08:00
David Monllao 74138c7cd0 Merge branch 'MDL-57087_master' of git://github.com/markn86/moodle 2016-11-23 08:01:25 +08:00
Dan Poltawski 0484a0d511 Merge branch 'MDL-57075-master' of git://github.com/ryanwyllie/moodle 2016-11-22 21:14:20 +00:00
Dan Poltawski 95b25310ce Merge branch 'MDL-56795-master' of git://github.com/damyon/moodle 2016-11-22 21:01:59 +00:00
Dan Poltawski 1da2cf3bc0 Merge branch 'MDL-57018-master' of git://github.com/damyon/moodle 2016-11-22 20:59:17 +00:00
Dan Poltawski cb151980c4 Merge branch 'MDL-56656-master' of git://github.com/ankitagarwal/moodle 2016-11-22 18:05:10 +00:00
Dan Poltawski 03f450c10d Merge branch 'MDL-56987-master' of git://github.com/damyon/moodle 2016-11-22 18:01:38 +00:00
Dan Poltawski d3b13065ce Merge branch 'MDL-57012-master' of git://github.com/damyon/moodle 2016-11-22 18:01:10 +00:00
Dan Poltawski 73430100ff Merge branch 'MDL-57042-master' of git://github.com/damyon/moodle 2016-11-22 18:00:45 +00:00
AMOS bot 499f4a7823 Automatically generated installer lang files 2016-11-23 00:04:53 +08:00
Eloy Lafuente (stronk7) 0fbe41f4cd Moodle release 3.2rc2 2016-11-22 16:22:21 +01:00
Dan Poltawski e122972d3f Merge branch 'MDL-56938-master-fix1' of http://github.com/damyon/moodle 2016-11-22 10:26:52 +00:00
Ankit Agarwal 7597ab0b99 MDL-56656 messages: Proper multilang formating in messaging pages 2016-11-22 14:51:12 +05:30
Damyon Wiese 57bfb7c30a MDL-56938 filter_media: Responsive size fallback player
Apply responsive sizing to any video element in a media filter div.

This applys to the HTML5 video player and the fall back player if
video.js fails to load.
2016-11-22 17:04:55 +08:00
Ankit Agarwal 2561e79fca MDL-57089 boost: Fix single select rendering
Also added context docs to the template file
2016-11-22 14:06:59 +05:30
John Okely 529e944a8c MDL-56782 custommenu add multilang example 2016-11-22 15:12:55 +08:00
Damyon Wiese 45ed4271b7 MDL-56902 blocks: no nav / settings in boost
Upgraded sites switching to boost should not see nav/settings blocks.
2016-11-22 15:02:51 +08:00
Damyon Wiese 51718b752d MDL-56902 blocks: Prevent blocks returning when switching themes.
Now if the current theme requires some blocks that don't exist, they
will be created - but with a new flag that indicates this block should
only be returned if the current theme requires it. This allows flipping back
and forth between boost and clean without restoring the nav and settings blocks
in boost.
2016-11-22 14:53:24 +08:00
Mark Nelson 9c6c29932a MDL-56391 core_message: addressed confusing links on the profile page
1) Use the string 'Send message' rather than 'View messages'.
2) Removed the 'View messages' string as it is no longer used
   and was introduced in the new messaging UI.
3) Removed the 'View profile' link and made the user's profile
   picture a link to their profile instead, this was only
   recently plausible because of MDL-57036.
2016-11-22 14:35:19 +08:00
Damyon Wiese 8cdff4beda MDL-56584 boost: Focus on drawer when it is opened 2016-11-22 14:05:43 +08:00
Damyon Wiese 95210c6650 MDL-56987 bootstrapbase: Center align in page modals 2016-11-22 13:31:50 +08:00
Mark Nelson 3c1cdac63f MDL-57087 core_message: ignore site policy if logged in as admin 2016-11-22 13:20:49 +08:00
Frederic Massart 84979ab793 MDL-57064 course: Return all properties when getting navigation options 2016-11-22 12:58:52 +08:00
Andrew Nicols 8d294e729f Merge branch 'MDL-57035-master' of git://github.com/FMCorz/moodle 2016-11-22 12:02:45 +08:00
Damyon Wiese a51122983c MDL-57018 boost: Style marking guide entry form
Add boost styles to marking guide entry form.
2016-11-22 11:47:45 +08:00
David Monllao 82f9746962 Merge branch 'MDL-56782-master' of git://github.com/damyon/moodle 2016-11-22 11:46:13 +08:00
Frederic Massart cbca970ab7 MDL-57035 repository_skydrive: Compability with converged type apps
http://go.microsoft.com/fwlink/p/?LinkID=615760
2016-11-22 11:46:05 +08:00
Damyon Wiese e466e337b0 MDL-57018 marking guide: Style frequent comments
Style frequently used comments for bootstrap 4.
2016-11-22 11:46:01 +08:00
Ryan Wyllie a6a277f06c MDL-57075 message: notification popover see all link
The "see all" link in the notification popover should link to the full
notifications page similar to how the "see all" link in the message
popover links to the messaging page.
2016-11-22 03:44:26 +00:00
Andrew Nicols 282f0437f1 Merge branch 'wip-mdl-56898-fixup' of https://github.com/rajeshtaneja/moodle 2016-11-22 11:33:25 +08:00
Andrew Nicols 873a7e1e86 Merge branch 'MDL-56683-master' of git://github.com/damyon/moodle 2016-11-22 11:27:28 +08:00
Andrew Nicols 38a8590ed0 Merge branch 'wip-mdl-56994' of https://github.com/rajeshtaneja/moodle 2016-11-22 11:22:30 +08:00
Rajesh Taneja 45e862c4bd MDL-56898 behat: Wait for pending JS after setting password 2016-11-22 11:20:30 +08:00
Andrew Nicols d51d8ca2af Merge branch 'MDL-55838-master' of git://github.com/damyon/moodle 2016-11-22 11:17:33 +08:00
Rajesh Taneja f4565e7147 MDL-56994 behat: Fixed activity selector to find proper li
Previous to this patch, only 1 activity was
expected and if there are more than 1 activities
then it will fail. Improved step to find the
correct activity node by name
2016-11-22 11:02:52 +08:00
Damyon Wiese 52a51514f6 MDL-56683 theme_boost: Popovers on dynamic content 2016-11-22 10:28:25 +08:00
David Monllao 42cf4a3470 Merge branch 'MDL-57023-master' of git://github.com/andrewnicols/moodle 2016-11-22 10:23:21 +08:00
Damyon Wiese 5d03ab36b5 MDL-55838 theme_boost: Fix secure layout
It was out of date with the columns2 layout and had links outside it's content.
2016-11-22 10:22:17 +08:00
Andrew Nicols 727145bf1c MDL-56407 message: Additional unit test for unblocked user 2016-11-22 09:45:52 +08:00
Brendan Heywood 3d8fbf39f7 MDL-52199 core_message: IMAP errors passed to task api 2016-11-22 12:44:30 +11:00
Andrew Nicols d10ca75b8c Merge branch 'MDL-56407-master-2' of git://github.com/junpataleta/moodle 2016-11-22 09:06:09 +08:00
Andrew Nicols aacdf8e280 MDL-57023 tool_usertours: Ensure that the tour key is unique
The tour key was already unique, but this change makes it unique to the
current user too.
2016-11-22 09:05:31 +08:00
Andrew Nicols aabebc7516 MDL-57023 tool_usertours: Update to v0.9.10
This new version of the library brings with it storage of the current
step number in the browser session storage.

This allows the page to reload whilst viewing a tour and have the tour
continue.
2016-11-22 09:05:31 +08:00
David Monllao 5009bcd9b4 Merge branch 'MDL-56986-master-fix' of https://github.com/lameze/moodle 2016-11-22 09:04:26 +08:00
Andrew Nicols 4b2790c580 Merge branch 'MDL-56809-master' of git://github.com/ankitagarwal/moodle 2016-11-22 08:49:18 +08:00
Simey Lameze 5e43ccd3b9 MDL-56986 block_course_summary: remove edit icon scenario from behat 2016-11-22 08:39:35 +08:00
Andrew Nicols 783ef76bfc Merge branch 'MDL-56716-master' of git://github.com/damyon/moodle 2016-11-22 08:10:11 +08:00
Rajesh Taneja 49cf53dd93 MDL-56797 theme_boost: Fixed css on rubric icon so text wraps 2016-11-22 07:26:25 +08:00
Dan Poltawski 4b631c2d87 Merge branch 'wip-mdl-56898-fix2' of https://github.com/rajeshtaneja/moodle 2016-11-21 15:07:49 +00:00
Damyon Wiese 00f5c95590 MDL-57012 boost: Filepicker layout fix
Use container-fluid which is always 100% wide.
2016-11-21 21:35:12 +08:00
Damyon Wiese 7e81bd114e MDL-56782 custommenu - update docs
We don't support sub-menus in all themes (boost) so we want to update
the docs and example.
2016-11-21 21:17:43 +08:00
Dan Poltawski 9446cb507c Merge branch 'MDL-56318-master' of git://github.com/damyon/moodle 2016-11-21 09:55:09 +00:00
Damyon Wiese ef25d51f5b MDL-56795 boost: Close drawer after navigating on mobile 2016-11-21 17:26:45 +08:00
Damyon Wiese 21a5c3c447 MDL-56318 assign: Polish for assign grading in boost
These styles mostly remove the responsiveness from the grading form.
2016-11-21 16:59:39 +08:00
David Monllao 9557be1542 Merge branch 'MDL-57063-master' of git://github.com/FMCorz/moodle 2016-11-21 16:53:44 +08:00
Dan Poltawski 05551a935a Merge branch 'MDL-56849-master' of git://github.com/damyon/moodle 2016-11-21 08:36:27 +00:00
Dan Poltawski f7d76254fd Merge branch 'MDL-56994-master-2' of git://github.com/junpataleta/moodle 2016-11-21 07:30:58 +00:00
Damyon Wiese 28f2458448 MDL-56849 mod_wiki: Update styles for boost
Make sure all form field have bootstrap styles. Use bootstrap tables on
tables. Remove custom styling. Prefer left-aligned text.
2016-11-21 15:19:16 +08:00
Damyon Wiese e283c6ca33 MDL-56716 boost: Fix styling for review options
The checkbox form template was changed, so this custom rule needs
updating.
2016-11-21 15:08:41 +08:00
Rajesh Taneja 26fef01b6b MDL-56898 behat: Go to a non html page to avoid any unwanted ajax calls
After scenario is finished, go to README.txt, so
there is no JS/AJAX calls pending and site is ready
for reset before next scenario
2016-11-21 14:16:49 +08:00
Rajesh Taneja d9a9a87835 MDL-56898 behat: Ensure the page is stable before executing 2016-11-21 14:16:48 +08:00
David Monllao e0ba33697f Merge branch 'MDL-56938-master' of git://github.com/damyon/moodle 2016-11-21 14:09:43 +08:00
Ankit Agarwal f318b74b49 MDL-56809 boost: Don't escape html in single select options 2016-11-21 11:38:51 +05:30
Ankit Agarwal 63531fff79 MDL-56809 boost: Add template context info 2016-11-21 11:38:51 +05:30
Andrew Nicols 51e8968635 Merge branch 'MDL-56612_master' of git://github.com/dmonllao/moodle 2016-11-21 13:40:00 +08:00
Andrew Nicols e67c14053e Merge branch 'MDL-56974-master' of git://github.com/jleyva/moodle 2016-11-21 13:21:27 +08:00
David Monllao 30f023b1b3 Merge branch 'MDL-56975-master' of git://github.com/jleyva/moodle 2016-11-21 13:15:40 +08:00
Damyon Wiese fce0f1c235 MDL-56938 messages: Images and videos display badly in messaging
Make sure they get minimum and maximum width so they don't overflow and
don't appear tiny.
2016-11-21 13:01:36 +08:00
David Monllao 57c01bca0e MDL-56612 navigation: Remove redundant load_courses_enrolled call 2016-11-21 12:42:09 +08:00
David Monllao 7d432be4e9 Merge branch 'MDL-57017-master' of git://github.com/andrewnicols/moodle 2016-11-21 12:40:26 +08:00
Andrew Nicols 2380daba7b Merge branch 'MDL-57054-master' of git://github.com/jleyva/moodle 2016-11-21 12:38:05 +08:00
Damyon Wiese 9741087ffd MDL-57042 messaging: When selecting a user, go to send message
This is the whole point of this UI - make it the default action after
searching and selecting a user. You can still get to their profile by
clicking their name in the header of the messaging pane.
2016-11-21 12:22:30 +08:00
David Monllao 2f5208ea1b Merge branch 'MDL-57049-master' of https://github.com/snake/moodle 2016-11-21 11:49:59 +08:00
Andrew Nicols 1e9487092d Merge branch 'MDL-56877' of https://github.com/eSrem/moodle 2016-11-21 11:08:01 +08:00
Frederic Massart 3d3fb328b4 MDL-57063 backup: Do not try to set default value on locked setting
We cannot set a default value on settings which are 'config' or
'permission' locked or an exception will be thrown from
base_setting::set_value.
2016-11-21 11:03:41 +08:00
Andrew Nicols 23bb1871b3 Merge branch 'MDL-55275' of https://github.com/tobiasreischmann/moodle 2016-11-21 11:01:40 +08:00
Andrew Nicols 896718ef79 Merge branch 'MDL-56943-master' of git://github.com/danpoltawski/moodle 2016-11-21 10:54:09 +08:00
David Monllao dfe7cbe4cf Merge branch 'MDL-57036_master' of git://github.com/markn86/moodle 2016-11-21 10:51:29 +08:00
Jun Pataleta 25bfa25190 MDL-56994 mod_forum: Auto-create news forum if course format supports it 2016-11-21 10:05:05 +08:00
Jun Pataleta e47d61e198 MDL-56994 course: Show News field only if course format supports news 2016-11-21 10:05:01 +08:00
Jun Pataleta 87799e9fba MDL-56994 course: New method to check if format supports news forum 2016-11-21 09:50:55 +08:00
David Monllao 30cfed3731 Merge branch 'MDL-57052-master' of git://github.com/jleyva/moodle 2016-11-21 09:47:51 +08:00
David Monllao 406f1eb76d Merge branch 'MDL-57051-master' of git://github.com/jleyva/moodle 2016-11-21 09:45:44 +08:00
Marina Glancy fc14932c40 MDL-57019 core_grades: change default navigation to tabs
without navigation block in boost it is not easy to navigation between gradebook sections
2016-11-21 09:31:49 +08:00
Rajesh Taneja 7f24e5e654 MDL-56898 behat: Click on logout link in footer, it's faster 2016-11-21 09:25:35 +08:00
Rajesh Taneja 65eb39c0b4 MDL-56898 behat: Increase autosavefrequency for behat tests
We don't need editor to autosave, as this cause
unwanted ajax request
2016-11-21 09:25:35 +08:00
Rajesh Taneja 1bce723292 MDL-56898 behat: Try data reset if it fails because of pending process 2016-11-21 09:25:35 +08:00
David Monllao f48cc821db Merge branch 'MDL-56972-master' of https://github.com/snake/moodle 2016-11-21 09:05:40 +08:00
Jake Dallimore 0a5cafcbe9 MDL-57049 libraries: update jqueryui version in requirejs path 2016-11-21 08:57:53 +08:00
Andrew Nicols 5084343b3f Merge branch 'MDL-42977-master' of git://github.com/lameze/moodle 2016-11-21 08:52:42 +08:00
David Monllao a4abacc9a6 Merge branch 'MDL-56986-master' of git://github.com/lameze/moodle 2016-11-21 08:51:47 +08:00
David Monllao ff687b9c15 Merge branch 'MDL-56843-master' of git://github.com/lameze/moodle 2016-11-21 08:48:22 +08:00
Andrew Nicols b0db945b11 Merge branch 'MDL-57002-master' of git://github.com/FMCorz/moodle 2016-11-21 08:21:31 +08:00
Tim Hunt edf2f7bdf1 MDL-53964 qtype_ddmarker: marker label 0 should be allowed 2016-11-20 21:32:55 +00:00
Tim Hunt 030d8f22c2 MDL-35949 quiz accessibility: move input outside label 2016-11-20 16:59:00 +00:00
Juan Leyva d0da94cdf4 MDL-56974 auth_email: Incorrect param type for redirect in sign_up WS 2016-11-19 18:21:56 +00:00
Juan Leyva 02bb0c0637 MDL-56975 tool_mobile: Fix page set_url 2016-11-19 18:15:59 +00:00
Juan Leyva 8abfb7b1bb MDL-57054 mod_quiz: check_updates_since not returning questionids 2016-11-19 17:44:48 +00:00
Juan Leyva 0840b3e687 MDL-57052 course: Missing required file in check_module_updates_since 2016-11-19 17:27:01 +00:00
Juan Leyva 6706c1cb12 MDL-57051 course: Do not return directories in check_module_updates 2016-11-19 16:54:31 +00:00
Tony Butler 40e0baf08e MDL-56948 mod_assign: Don't call get_grade_item() unless we have one 2016-11-18 15:37:09 +00:00
Dan Poltawski 835f1f9add Merge branch 'MDL-57038-master' of git://github.com/FMCorz/moodle 2016-11-18 14:41:56 +00:00
Dan Poltawski b3fd942b52 Merge branch 'MDL-56693_master' of git://github.com/dmonllao/moodle 2016-11-18 14:25:20 +00:00
EizEddin AlKatrib af28ceb945 MDL-42977 course: Fixed the default behaviour of the Collapse/Expand all link 2016-11-18 14:24:42 +08:00
Frederic Massart 538ce414a5 MDL-57002 repository_webdav: Use default temporary file name
The WebDAV library does not like when there are UTF-8 characters
in the temporary file name. It changes the path but does not return
it, so the file ends up being saved somewhere unknown. As we do not
need the file name at all, we let repository::prepare_file()
generate one.
2016-11-18 12:47:59 +08:00
David Monllao f2e599d51c MDL-56693 boost: Highlight config.php settings in admin UI 2016-11-18 12:22:59 +08:00
Jake Dallimore fe9864f488 MDL-56972 backup: fix question category stamp duplicates during restore
To kerb future stamp duplication, MDL-54864 added a unique index to the
question_categories table (stamp, contextid) and added an upgrade step
to fix existing duplicate stamps. It missed the case where a course with
duplicate stamps in the same context is directly restored into moodle
3.1, causing index clashes. This issue provides a fix for that.
2016-11-18 11:15:02 +08:00
Mark Nelson f4c39cb983 MDL-57036 core_message: always show profile picture on messaging UI 2016-11-18 11:13:36 +08:00
Frederic Massart 3d66b5a100 MDL-57038 theme_bootstrapbase: Fix expand icon with RTL auto-flipped 2016-11-18 11:05:10 +08:00
Simey Lameze b95a05a536 MDL-56843 theme_boost: remove top margin from repository search div 2016-11-18 09:47:30 +08:00
Simey Lameze 2da36b3750 MDL-56986 block_course_summary: remove unnecessary small cog icon 2016-11-18 09:18:46 +08:00
Virgil Ashruf 5ceb68d169 MDL-56877 autogroup form: no limit on cohorts 2016-11-17 10:46:53 +01:00
Andrew Nicols c6b4421524 MDL-57017 tool_usertours: Allow targetting of the frontpage 2016-11-17 10:23:00 +08:00
Jun Pataleta 26dca05d02 MDL-56407 message: Indicate user is blocked in message area 2016-11-17 09:11:37 +08:00
Nadav Kavalerchik 6e402aeb0a MDL-57013 Theme_boost: Fix inline edit tooltip in RTL mode. 2016-11-16 23:38:28 +02:00
Dan Poltawski a4e2d64571 MDL-56943 boost: correct ARIA roles
* role="navigation" can't go directly on a list
* role="banner" should only be done once and not on a link
2016-11-16 16:52:03 +00:00
Tobias Reischmann 1cca9a3479 MDL-55275 assign: Prevent exception under admin role assignment.
In group mode the submission status was displayed to admins.
This caused an exception when the admins were enrolled as teachers
in a course while being the only member of a group.
2016-11-16 16:55:22 +01:00
Dan Poltawski 05a25f86dd MDL-55857 boost: add example context 2016-11-16 13:24:24 +00:00
Dan Poltawski 8515e2d16d MDL-55857 boost: template for checkboxes in repo plugins
Thanks to Damyon for the suggested markup
2016-11-16 13:12:18 +00:00
1205 changed files with 12514 additions and 4839 deletions
+8 -10
View File
@@ -13,7 +13,7 @@ language: php
php:
# We only run the highest and lowest supported versions to reduce the load on travis-ci.org.
- 7.0
- 7.1
- 5.6
services:
@@ -23,7 +23,7 @@ env:
# Although we want to run these jobs and see failures as quickly as possible, we also want to get the slowest job to
# start first so that the total run time is not too high.
#
# We only run MySQL on PHP 7.0, so run that first.
# We only run MySQL on PHP 7.1, so run that first.
# CI Tests should be second-highest in priority as these only take <= 60 seconds to run under normal circumstances.
# Postgres is significantly is pretty reasonable in its run-time.
@@ -47,22 +47,22 @@ matrix:
include:
# Run grunt/npm install on lowest supported npm version
- php: 7
- php: 7.1
env: DB=none TASK=GRUNT NVM_VERSION='4'
# Run grunt/npm install on highest version ('node' is an alias for the latest node.js version.)
- php: 7
- php: 7.1
env: DB=none TASK=GRUNT NVM_VERSION='node'
exclude:
# MySQL - it's just too slow.
# Exclude it on all versions except for 7.0
# Exclude it on all versions except for 7.1
- env: DB=mysqli TASK=PHPUNIT
php: 5.6
# Moodle 2.7 is not compatible with PHP 7 for the upgrade test.
- env: DB=pgsql TASK=UPGRADE
php: 7.0
php: 7.1
cache:
directories:
@@ -70,9 +70,6 @@ cache:
- $HOME/.npm
install:
# Disable xdebug. We aren't generating code coverage, and it has a huge impact upon test performance.
- rm /home/travis/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini
- >
if [ "$TASK" = 'PHPUNIT' ];
then
@@ -99,6 +96,7 @@ install:
fi
before_script:
- phpenv config-rm xdebug.ini
- >
if [ "$TASK" = 'PHPUNIT' -o "$TASK" = 'UPGRADE' ];
then
@@ -184,7 +182,7 @@ before_script:
# We need the official upstream for comparison
git remote add upstream https://github.com/moodle/moodle.git;
git fetch upstream master;
git fetch upstream MOODLE_32_STABLE;
export GIT_PREVIOUS_COMMIT="`git merge-base FETCH_HEAD $TRAVIS_COMMIT`";
export GIT_COMMIT="$TRAVIS_COMMIT";
export UPSTREAM_FETCH_HEAD=`git rev-parse FETCH_HEAD`
+7 -22
View File
@@ -4,6 +4,7 @@
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/blocklib.php');
require_once($CFG->libdir.'/tablelib.php');
admin_externalpage_setup('manageblocks');
@@ -36,6 +37,7 @@
print_error('blockdoesnotexist', 'error');
}
$DB->set_field('block', 'visible', '0', array('id'=>$block->id)); // Hide block
add_to_config_log('block_visibility', $block->visible, '0', $block->name);
core_plugin_manager::reset_caches();
admin_get_root(true, false); // settings not required - only pages
}
@@ -45,40 +47,23 @@
print_error('blockdoesnotexist', 'error');
}
$DB->set_field('block', 'visible', '1', array('id'=>$block->id)); // Show block
add_to_config_log('block_visibility', $block->visible, '1', $block->name);
core_plugin_manager::reset_caches();
admin_get_root(true, false); // settings not required - only pages
}
if (!isset($CFG->undeletableblocktypes) || (!is_array($CFG->undeletableblocktypes) && !is_string($CFG->undeletableblocktypes))) {
$undeletableblocktypes = array('navigation', 'settings');
} else if (is_string($CFG->undeletableblocktypes)) {
$undeletableblocktypes = explode(',', $CFG->undeletableblocktypes);
} else {
$undeletableblocktypes = $CFG->undeletableblocktypes;
}
if (!empty($protect) && confirm_sesskey()) {
if (!$block = $DB->get_record('block', array('id'=>$protect))) {
print_error('blockdoesnotexist', 'error');
}
if (!in_array($block->name, $undeletableblocktypes)) {
$undeletableblocktypes[] = $block->name;
set_config('undeletableblocktypes', implode(',', $undeletableblocktypes));
}
block_manager::protect_block((int)$protect);
admin_get_root(true, false); // settings not required - only pages
}
if (!empty($unprotect) && confirm_sesskey()) {
if (!$block = $DB->get_record('block', array('id'=>$unprotect))) {
print_error('blockdoesnotexist', 'error');
}
if (in_array($block->name, $undeletableblocktypes)) {
$undeletableblocktypes = array_diff($undeletableblocktypes, array($block->name));
set_config('undeletableblocktypes', implode(',', $undeletableblocktypes));
}
block_manager::unprotect_block((int)$unprotect);
admin_get_root(true, false); // settings not required - only pages
}
$undeletableblocktypes = block_manager::get_undeletable_block_types();
echo $OUTPUT->header();
echo $OUTPUT->heading($strmanageblocks);
-5
View File
@@ -1868,11 +1868,6 @@
<ON_CHECK message="unoconvwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_tls_libraries" level="optional">
<FEEDBACK>
<ON_CHECK message="tlswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
<FEEDBACK>
<ON_CHECK message="libcurlwarning" />
+10 -3
View File
@@ -1899,14 +1899,21 @@ class core_admin_renderer extends plugin_renderer_base {
} else {
$report = $this->doc_link(join($linkparts, '/'), get_string($stringtouse, 'admin', $rec));
}
// Enclose report text in div so feedback text will be displayed underneath it.
$report = html_writer::div($report);
// Format error or warning line
if ($errorline || $warningline) {
$messagetype = $errorline? 'error':'warn';
if ($errorline) {
$messagetype = 'error';
$statusclass = 'label-important';
} else if ($warningline) {
$messagetype = 'warn';
$statusclass = 'label-warning';
} else {
$messagetype = 'ok';
$statusclass = 'label-success';
}
$status = '<span class="'.$messagetype.'">'.$status.'</span>';
$status = html_writer::span($status, 'label ' . $statusclass);
// Here we'll store all the feedback found
$feedbacktext = '';
// Append the feedback if there is some
+16 -23
View File
@@ -29,7 +29,7 @@ define("MAX_USERS_TO_LIST_PER_ROLE", 10);
$contextid = required_param('contextid', PARAM_INT);
$roleid = optional_param('roleid', 0, PARAM_INT);
$returnto = optional_param('return', null, PARAM_ALPHANUMEXT);
$returnurl = optional_param('returnurl', null, PARAM_LOCALURL);
list($context, $course, $cm) = get_context_info_array($contextid);
@@ -53,7 +53,13 @@ if ($course) {
// Security.
require_login($course, false, $cm);
require_capability('moodle/role:assign', $context);
$PAGE->set_url($url);
navigation_node::override_active_url($url);
$pageurl = new moodle_url($url);
if ($returnurl) {
$pageurl->param('returnurl', $returnurl);
}
$PAGE->set_url($pageurl);
$PAGE->set_context($context);
$contextname = $context->get_context_name();
@@ -141,6 +147,10 @@ if (!empty($user) && ($user->id != $USER->id)) {
}
$PAGE->set_pagelayout('admin');
if ($context->contextlevel == CONTEXT_BLOCK) {
// Do not show blocks when changing block's settings, it is confusing.
$PAGE->blocks->show_only_fake_blocks(true);
}
$PAGE->set_title($title);
switch ($context->contextlevel) {
@@ -186,9 +196,6 @@ if ($roleid) {
// Print the form.
$assignurl = new moodle_url($PAGE->url, array('roleid'=>$roleid));
if ($returnto !== null) {
$assignurl->param('return', $returnto);
}
?>
<form id="assignform" method="post" action="<?php echo $assignurl ?>"><div>
<input type="hidden" name="sesskey" value="<?php echo sesskey() ?>" />
@@ -235,18 +242,10 @@ if ($roleid) {
// Print a form to swap roles, and a link back to the all roles list.
echo '<div class="backlink">';
$newroleurl = new moodle_url($PAGE->url);
if ($returnto !== null) {
$newroleurl->param('return', $returnto);
}
$select = new single_select($newroleurl, 'roleid', $nameswithcounts, $roleid, null);
$select = new single_select($PAGE->url, 'roleid', $nameswithcounts, $roleid, null);
$select->label = get_string('assignanotherrole', 'core_role');
echo $OUTPUT->render($select);
$backurl = new moodle_url('/admin/roles/assign.php', array('contextid' => $contextid));
if ($returnto !== null) {
$backurl->param('return', $returnto);
}
echo '<p><a href="' . $backurl->out() . '">' . get_string('backtoallroles', 'core_role') . '</a></p>';
echo '<p><a href="' . $PAGE->url . '">' . get_string('backtoallroles', 'core_role') . '</a></p>';
echo '</div>';
} else if (empty($assignableroles)) {
@@ -284,9 +283,6 @@ if ($roleid) {
}
} else if ($assigncounts[$roleid] > MAX_USERS_TO_LIST_PER_ROLE) {
$assignurl = new moodle_url($PAGE->url, array('roleid'=>$roleid));
if ($returnto !== null) {
$assignurl->param('return', $returnto);
}
$roleholdernames[$roleid] = '<a href="'.$assignurl.'">'.$strmorethanmax.'</a>';
} else {
$roleholdernames[$roleid] = '';
@@ -307,9 +303,6 @@ if ($roleid) {
foreach ($assignableroles as $roleid => $rolename) {
$description = format_string($DB->get_field('role', 'description', array('id'=>$roleid)));
$assignurl = new moodle_url($PAGE->url, array('roleid'=>$roleid));
if ($returnto !== null) {
$assignurl->param('return', $returnto);
}
$row = array('<a href="'.$assignurl.'">'.$rolename.'</a>',
$description, $assigncounts[$roleid]);
if ($showroleholders) {
@@ -322,8 +315,8 @@ if ($roleid) {
if ($context->contextlevel > CONTEXT_USER) {
if ($context->contextlevel === CONTEXT_COURSECAT && $returnto === 'management') {
$url = new moodle_url('/course/management.php', array('categoryid' => $context->instanceid));
if ($returnurl) {
$url = new moodle_url($returnurl);
} else {
$url = $context->get_url();
}
+19 -12
View File
@@ -25,6 +25,7 @@
require_once(__DIR__ . '/../../config.php');
$contextid = required_param('contextid', PARAM_INT);
$returnurl = optional_param('returnurl', null, PARAM_LOCALURL);
list($context, $course, $cm) = get_context_info_array($contextid);
@@ -49,7 +50,13 @@ require_login($course, false, $cm);
if (!has_any_capability(array('moodle/role:assign', 'moodle/role:safeoverride', 'moodle/role:override', 'moodle/role:manage'), $context)) {
print_error('nopermissions', 'error', '', get_string('checkpermissions', 'core_role'));
}
$PAGE->set_url($url);
navigation_node::override_active_url($url);
$pageurl = new moodle_url($url);
if ($returnurl) {
$pageurl->param('returnurl', $returnurl);
}
$PAGE->set_url($pageurl);
if ($context->contextlevel == CONTEXT_USER and $USER->id != $context->instanceid) {
$PAGE->navbar->includesettingsbase = true;
@@ -75,6 +82,10 @@ $userselector->set_rows(20);
$title = get_string('checkpermissionsin', 'core_role', $contextname);
$PAGE->set_pagelayout('admin');
if ($context->contextlevel == CONTEXT_BLOCK) {
// Do not show blocks when changing block's settings, it is confusing.
$PAGE->blocks->show_only_fake_blocks(true);
}
$PAGE->set_title($title);
switch ($context->contextlevel) {
@@ -156,16 +167,7 @@ if (!is_null($reportuser)) {
// Show UI for choosing a user to report on.
echo $OUTPUT->box_start('generalbox boxwidthnormal boxaligncenter', 'chooseuser');
echo '<form method="get" action="' . $CFG->wwwroot . '/' . $CFG->admin . '/roles/check.php" >';
// Hidden fields.
echo '<input type="hidden" name="contextid" value="' . $context->id . '" />';
if (!empty($user->id)) {
echo '<input type="hidden" name="userid" value="' . $user->id . '" />';
}
if ($isfrontpage) {
echo '<input type="hidden" name="courseid" value="' . $courseid . '" />';
}
echo '<form method="post" action="' . $PAGE->url . '" >';
// User selector.
echo $OUTPUT->heading('<label for="reportuser">' . $selectheading . '</label>', 3);
@@ -180,7 +182,12 @@ echo $OUTPUT->box_end();
// Appropriate back link.
if ($context->contextlevel > CONTEXT_USER) {
echo html_writer::start_tag('div', array('class'=>'backlink'));
echo html_writer::tag('a', get_string('backto', '', $contextname), array('href'=>$context->get_url()));
if ($returnurl) {
$backurl = new moodle_url($returnurl);
} else {
$backurl = $context->get_url();
}
echo html_writer::link($backurl, get_string('backto', '', $contextname));
echo html_writer::end_tag('div');
}
+15 -4
View File
@@ -33,7 +33,7 @@ $prevent = optional_param('prevent', 0, PARAM_BOOL);
$allow = optional_param('allow', 0, PARAM_BOOL);
$unprohibit = optional_param('unprohibit', 0, PARAM_BOOL);
$prohibit = optional_param('prohibit', 0, PARAM_BOOL);
$return = optional_param('return', null, PARAM_ALPHANUMEXT);
$returnurl = optional_param('returnurl', null, PARAM_LOCALURL);
list($context, $course, $cm) = get_context_info_array($contextid);
@@ -56,7 +56,13 @@ if ($course) {
// Security first.
require_login($course, false, $cm);
require_capability('moodle/role:review', $context);
$PAGE->set_url($url);
navigation_node::override_active_url($url);
$pageurl = new moodle_url($url);
if ($returnurl) {
$pageurl->param('returnurl', $returnurl);
}
$PAGE->set_url($pageurl);
if ($context->contextlevel == CONTEXT_USER and $USER->id != $context->instanceid) {
$PAGE->navbar->includesettingsbase = true;
@@ -85,6 +91,11 @@ $straction = get_string('permissions', 'core_role'); // Used by tabs.php.
$currenttab = 'permissions';
$PAGE->set_pagelayout('admin');
if ($context->contextlevel == CONTEXT_BLOCK) {
// Do not show blocks when changing block's settings, it is confusing.
$PAGE->blocks->show_only_fake_blocks(true);
}
$PAGE->set_title($title);
switch ($context->contextlevel) {
case CONTEXT_SYSTEM:
@@ -219,8 +230,8 @@ echo $OUTPUT->box_end();
if ($context->contextlevel > CONTEXT_USER) {
if ($context->contextlevel === CONTEXT_COURSECAT && $return === 'management') {
$url = new moodle_url('/course/management.php', array('categoryid' => $context->instanceid));
if ($returnurl) {
$url = new moodle_url($returnurl);
} else {
$url = $context->get_url();
}
+2 -1
View File
@@ -53,7 +53,8 @@ if (has_capability('moodle/grade:manage', $systemcontext)
'3' => '3',
'4' => '4',
'5' => '5')));
$temp->add(new admin_setting_configselect('grade_navmethod', new lang_string('navmethod', 'grades'), null, 0,
$temp->add(new admin_setting_configselect('grade_navmethod', new lang_string('navmethod', 'grades'), null,
GRADE_NAVMETHOD_TABS,
array(GRADE_NAVMETHOD_DROPDOWN => new lang_string('dropdown', 'grades'),
GRADE_NAVMETHOD_TABS => new lang_string('tabs', 'grades'),
GRADE_NAVMETHOD_COMBO => new lang_string('combo', 'grades'))));
+3 -3
View File
@@ -29,9 +29,9 @@ if ($primaryadmin) {
$primaryadminname = NULL;
}
$temp->add(new admin_setting_configtext('supportname', new lang_string('supportname', 'admin'),
new lang_string('configsupportname', 'admin'), $primaryadminname, PARAM_NOTAGS));
new lang_string('configsupportname', 'admin'), $primaryadminname, PARAM_NOTAGS));
$setting = new admin_setting_configtext('supportemail', new lang_string('supportemail', 'admin'),
new lang_string('configsupportemail', 'admin'), $primaryadminemail, PARAM_NOTAGS);
new lang_string('configsupportemail', 'admin'), $primaryadminemail, PARAM_EMAIL);
$setting->set_force_ltr(true);
$temp->add($setting);
$temp->add(new admin_setting_configtext('supportpage', new lang_string('supportpage', 'admin'), new lang_string('configsupportpage', 'admin'), '', PARAM_URL));
@@ -237,7 +237,7 @@ $temp->add(new admin_setting_configtext('smtpmaxbulk', new lang_string('smtpmaxb
$temp->add(new admin_setting_heading('noreplydomainheading', new lang_string('noreplydomain', 'admin'),
new lang_string('noreplydomaindetail', 'admin')));
$temp->add(new admin_setting_configtext('noreplyaddress', new lang_string('noreplyaddress', 'admin'),
new lang_string('confignoreplyaddress', 'admin'), 'noreply@' . get_host_from_url($CFG->wwwroot), PARAM_NOTAGS));
new lang_string('confignoreplyaddress', 'admin'), 'noreply@' . get_host_from_url($CFG->wwwroot), PARAM_EMAIL));
$temp->add(new admin_setting_configtextarea('allowedemaildomains',
new lang_string('allowedemaildomains', 'admin'),
new lang_string('configallowedemaildomains', 'admin'),
@@ -35,35 +35,25 @@
}}
<div class="form-password">
<span data-passwordunmask="wrapper" data-passwordunmaskid="{{ id }}">
<span class="visibleifjs">
<span data-passwordunmask="editor">
<input type="hidden"
name="{{ name }}"
id="{{ id }}"
value="{{ value }}"
size="{{ size }}"
>
</span>
<a href="#" data-passwordunmask="edit" title="{{ edithint }}">
<span data-passwordunmask="displayvalue">{{> core_form/element-passwordunmask-fill }}</span>
{{# pix }} t/passwordunmask-edit, core, {{# str }} passwordunmaskedithint, form {{/ str }}{{/ pix }}
</a>
<a href="#" data-passwordunmask="unmask" title="{{ unmaskhint }}">
{{# pix }} t/passwordunmask-reveal, core, {{# str }} passwordunmaskrevealhint, form {{/ str }}{{/ pix }}
</a>
<span data-passwordunmask="instructions" class="form-text text-muted" style="display: none;">
{{# str }} passwordunmaskinstructions, form {{/ str }}
</span>
</span>
<noscript>
<!-- Backwards compatability for Behat -->
<input type="password"
<span data-passwordunmask="editor">
<input type="hidden"
name="{{ name }}"
id="{{ id }}"
value="{{ value }}"
size="{{ size }}"
data-size="{{ size }}"
class="form-control d-inline-block"
>
</noscript>
</span>
<a href="#" data-passwordunmask="edit" title="{{ edithint }}">
<span data-passwordunmask="displayvalue">{{> core_form/element-passwordunmask-fill }}</span>
{{# pix }} t/passwordunmask-edit, core, {{# str }} passwordunmaskedithint, form {{/ str }}{{/ pix }}
</a>
<a href="#" data-passwordunmask="unmask" title="{{ unmaskhint }}">
{{# pix }} t/passwordunmask-reveal, core, {{# str }} passwordunmaskrevealhint, form {{/ str }}{{/ pix }}
</a>
<span data-passwordunmask="instructions" class="form-text text-muted" style="display: none;">
{{# str }} passwordunmaskinstructions, form {{/ str }}
</span>
</span>
</div>
{{#js}}
@@ -16,8 +16,7 @@ Feature: Display extended course names
And I should not see "C_shortname Course fullname"
Scenario: Courses list with extended course names
Given I expand "Site administration" node
And I click on "Courses" "link" in the "//div[@id='settingsnav']/descendant::li[contains(concat(' ', normalize-space(@class), ' '), ' type_setting ')][contains(., 'Appearance')]" "xpath_element"
Given I navigate to "Appearance > Courses" in site administration
And I set the field "Display extended course names" to "1"
When I press "Save changes"
And I am on site homepage
+1 -1
View File
@@ -25,7 +25,7 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
And I log in as "admin"
And I add "User Two (two@example.com)" user to "CH1" cohort members
And I add "User Three (three@example.com)" user to "CH1" cohort members
And I follow "Browse list of users"
And I navigate to "Users > Accounts > Browse list of users" in site administration
Scenario: Filter user accounts by role and cohort
When I set the following fields to these values:
+3 -3
View File
@@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300;
$plugin->requires = 2016051900;
$plugin->version = 2016120500;
$plugin->requires = 2016112900;
$plugin->component = 'tool_assignmentupgrade';
$plugin->dependencies = array('mod_assign' => 2016051900);
$plugin->dependencies = array('mod_assign' => 2016112900);
@@ -8,6 +8,8 @@ Feature: Manage availability conditions
Scenario: Display list of availability conditions
# Check the report doesn't show when not enabled.
Given I log in as "admin"
And I press "Customise this page"
And I add the "Administration" block if not present
And the following config values are set as admin:
| enableavailability | 0 |
And I expand "Site administration" node
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300;
$plugin->requires = 2016051900;
$plugin->version = 2016120500;
$plugin->requires = 2016112900;
$plugin->component = 'tool_availabilityconditions';
@@ -59,8 +59,7 @@ Feature: Set up contextual data for tests
When I log in as "admin"
And I am on site homepage
And I follow "Course 1"
And I expand "Users" node
And I follow "Groups"
And I navigate to "Users > Groups" in current page administration
Then I should see "Group 1"
And I should see "Group 2"
And I follow "Groupings"
@@ -90,8 +89,7 @@ Feature: Set up contextual data for tests
When I log in as "admin"
And I am on site homepage
And I follow "Course 1"
And I expand "Users" node
And I follow "Permissions"
And I navigate to "Users > Permissions" in current page administration
And I set the field "Advanced role override" to "Student (1)"
Then "mod/forum:editanypost" capability has "Allow" permission
And I press "Cancel"
@@ -134,30 +132,31 @@ Feature: Set up contextual data for tests
And the following "course enrolments" exist:
| user | course | role |
| user4 | C1 | custom1 |
| user2 | C1 | student |
| user3 | C1 | editingteacher |
And the following "role assigns" exist:
| user | role | contextlevel | reference |
| user1 | manager | System | |
| user2 | editingteacher | Category | CAT1 |
| user3 | editingteacher | Course | C1 |
| user5 | custom2 | System | |
When I log in as "user1"
And I am on site homepage
Then I should see "Front page settings"
Then "Edit settings" "link" should exist in current page administration
And I log out
And I log in as "user2"
And I am on site homepage
And I follow "Course 1"
And I should see "Turn editing on"
And "Turn editing on" "link" should exist in current page administration
And I log out
And I log in as "user3"
And I am on site homepage
And I follow "Course 1"
And I should see "Turn editing on"
And "Turn editing on" "link" should exist in current page administration
And I log out
And I log in as "user4"
And I am on site homepage
And I follow "Course 1"
And I should see "Turn editing on"
And "Turn editing on" "link" should exist in current page administration
And I log out
And I log in as "user5"
And I should see "You are logged in as"
@@ -264,8 +263,7 @@ Feature: Set up contextual data for tests
When I log in as "admin"
And I am on site homepage
And I follow "Course 1"
And I expand "Users" node
And I follow "Groups"
And I navigate to "Users > Groups" in current page administration
Then the "groups" select box should contain "Group 1 (1)"
And the "groups" select box should contain "Group 2 (1)"
And I set the field "groups" to "Group 1 (1)"
@@ -302,7 +300,7 @@ Feature: Set up contextual data for tests
| System cohort A | 1 |
| System cohort B | 2 |
And I should not see "Cohort in category"
And I follow "Courses"
And I am on course index
And I follow "Cat 1"
And I follow "Cohorts"
And I should not see "System cohort"
@@ -322,10 +320,9 @@ Feature: Set up contextual data for tests
| fullname | course | gradecategory |
| Grade sub category 2 | C1 | Grade category 1 |
When I log in as "admin"
And I am on site homepage
And I follow "Courses"
And I am on course index
And I follow "Course 1"
And I click on "Grades" "link" in the "Navigation" "block"
And I navigate to "View > Grader report" in the course gradebook
Then I should see "Grade category 1"
And I should see "Grade sub category 2"
@@ -349,9 +346,7 @@ Feature: Set up contextual data for tests
When I log in as "admin"
And I am on site homepage
And I follow "Course 1"
And I click on "Grades" "link" in the "Navigation" "block"
And I expand "Setup" node
And I follow "Gradebook setup"
And I navigate to "Setup > Gradebook setup" in the course gradebook
Then I should see "Test Grade Item 1"
And I follow "Edit Test Grade Item 1"
And I expand all fieldsets
@@ -380,8 +375,7 @@ Feature: Set up contextual data for tests
When I log in as "admin"
And I am on site homepage
And I follow "Course 1"
And I click on "Grades" "link" in the "Navigation" "block"
And I follow "Scales"
And I navigate to "Scales" in the course gradebook
Then I should see "Test Scale 1"
And I should see "Disappointing, Good, Very good, Excellent"
@@ -432,9 +426,7 @@ Feature: Set up contextual data for tests
When I log in as "admin"
And I am on site homepage
And I follow "Course 1"
And I click on "Grades" "link" in the "Navigation" "block"
And I expand "Setup" node
And I follow "Gradebook setup"
And I navigate to "Setup > Gradebook setup" in the course gradebook
Then I should see "Test Outcome Grade Item 1"
And I follow "Edit Test Outcome Grade Item 1"
And the field "Outcome" matches value "Grade outcome 1"
@@ -32,8 +32,7 @@ Feature: Edit capabilities
Scenario: Course capabilities overrides
Given I log in as "teacher1"
And I follow "Course 1"
And I expand "Users" node
And I follow "Permissions"
And I navigate to "Users > Permissions" in current page administration
And I override the system permissions of "Student" role with:
| mod/forum:deleteanypost | Prohibit |
| mod/forum:editanypost | Prevent |
@@ -52,7 +51,7 @@ Feature: Edit capabilities
| Forum name | I'm the name |
| Description | I'm the introduction |
And I follow "I'm the name"
And I navigate to "Permissions" node in "Forum administration"
And I navigate to "Permissions" in current page administration
And I override the system permissions of "Student" role with:
| mod/forum:deleteanypost | Prohibit |
| mod/forum:editanypost | Prevent |
@@ -33,8 +33,6 @@ Feature: Verify that all form fields values can be get and set
| activity | course | idnumber | name | intro | firstpagetitle | wikimode | visible |
| wiki | C1 | wiki1 | Test this one | Test this one | Test this one | collaborative | 0 |
And I log in as "admin"
And I expand "Site administration" node
And I expand "Appearance" node
And I am on site homepage
And I follow "Course 1"
And I navigate to "Reset" node in "Course administration"
@@ -60,9 +58,8 @@ Feature: Verify that all form fields values can be get and set
| HTML format | Student page contents |
And I press "Save"
Then I should see "Student page contents" in the "region-main" "region"
And I click on "Edit" "link" in the "Administration" "block"
# Select (multi-select) - Checking "I set the field".
And I click on "Edit settings" "link" in the "Administration" "block"
And I navigate to "Edit settings" in current page administration
And I expand all fieldsets
# Checkbox - Checking "I set the field".
And I set the field "Display description on course page" to "1"
@@ -75,7 +72,7 @@ Feature: Verify that all form fields values can be get and set
And I press "Save and return to course"
And I should see "Test this one"
And I follow "Test this one"
And I click on "Edit settings" "link" in the "Administration" "block"
And I navigate to "Edit settings" in current page administration
# Checkbox - Checking "the field matches value" and "the following fields match these values".
And the following fields match these values:
| Display description on course page | 1 |
@@ -91,7 +88,7 @@ Feature: Verify that all form fields values can be get and set
# Select (simple) - Checking "I set the field".
And I set the field "Group mode" to "Separate groups"
And I press "Save and display"
And I click on "Edit settings" "link" in the "Administration" "block"
And I navigate to "Edit settings" in current page administration
And the following fields match these values:
| Default format | NWiki |
| Group mode | Separate groups |
@@ -134,8 +131,7 @@ Feature: Verify that all form fields values can be get and set
@javascript
Scenario: with JS enabled all form fields getters and setters works as expected
Then I follow "Course 1"
And I expand "Users" node
And I follow "Groups"
And I navigate to "Users > Groups" in current page administration
# Select (multi-select & AJAX) - Checking "I set the field" and "select box should contain".
And I set the field "groups" to "Group 2"
And the "members" select box should contain "Student 2"
@@ -158,7 +154,7 @@ Feature: Verify that all form fields values can be get and set
And the "available[day]" "field" should be enabled
And the field "deadline[enabled]" matches value "1"
And I press "Save and display"
And I click on "Edit settings" "link" in the "Administration" "block"
And I navigate to "Edit settings" in current page administration
And the field "available[enabled]" matches value "1"
And the "available[day]" "field" should be enabled
And the field "deadline[enabled]" matches value "1"
@@ -15,6 +15,7 @@ Feature: Forms manipulation
Then the field "First name" matches value "Field value"
And the "Select a country" select box should contain "Japan"
And the field "New password" matches value "TestPass"
And I take focus off "Update profile" "button"
And I press "Update profile"
@javascript
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_behat'; // Full name of the plugin (used for diagnostics)
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
+2 -2
View File
@@ -25,8 +25,8 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_cohortroles'; // Full name of the plugin (used for diagnostics).
$plugin->dependencies = array(
+3
View File
@@ -41,5 +41,8 @@ function xmldb_tool_customlang_upgrade($oldversion) {
// Moodle v3.1.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+2 -2
View File
@@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300;
$plugin->requires = 2016051900;
$plugin->version = 2016120500;
$plugin->requires = 2016112900;
$plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_dbtransfer'; // Full name of the plugin (used for diagnostics).
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300;
$plugin->requires = 2016051900;
$plugin->version = 2016120500;
$plugin->requires = 2016112900;
$plugin->component = 'tool_filetypes';
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300;
$plugin->requires = 2016051900;
$plugin->version = 2016120500;
$plugin->requires = 2016112900;
$plugin->component = 'tool_generator';
+2 -2
View File
@@ -25,8 +25,8 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_health'; // Full name of the plugin (used for diagnostics)
$plugin->maturity = MATURITY_ALPHA; // this version's maturity level
+2 -2
View File
@@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_innodb'; // Full name of the plugin (used for diagnostics)
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->component = 'tool_installaddon';
$plugin->version = 2016052300;
$plugin->requires = 2016051900;
$plugin->version = 2016120500;
$plugin->requires = 2016112900;
$plugin->maturity = MATURITY_STABLE;
+2 -2
View File
@@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_langimport'; // Full name of the plugin (used for diagnostics)
+3
View File
@@ -45,5 +45,8 @@ function xmldb_tool_log_upgrade($oldversion) {
// Moodle v3.1.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -39,5 +39,8 @@ function xmldb_logstore_database_upgrade($oldversion) {
// Moodle v3.1.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'logstore_database'; // Full name of the plugin (used for diagnostics).
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'logstore_legacy'; // Full name of the plugin (used for diagnostics).
@@ -56,5 +56,8 @@ function xmldb_logstore_standard_upgrade($oldversion) {
// Moodle v3.1.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'logstore_standard'; // Full name of the plugin (used for diagnostics).
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_log'; // Full name of the plugin (used for diagnostics).
@@ -7,12 +7,9 @@ Feature: Manage competency frameworks
Background:
Given I log in as "admin"
And I am on site homepage
And I expand "Site administration" node
When I expand "Competencies" node
Then I should see "Competency frameworks"
Scenario: Create a new framework
Given I follow "Competency frameworks"
Given I navigate to "Competencies > Competency frameworks" in site administration
And I should see "List of competency frameworks"
And I click on "Add new competency framework" "button"
And I should see "General"
@@ -34,7 +31,7 @@ Feature: Manage competency frameworks
Given the following lp "frameworks" exist:
| shortname | idnumber |
| Science Year-2 | sc-y-2 |
And I follow "Competency frameworks"
And I navigate to "Competencies > Competency frameworks" in site administration
And I should see "Science Year-2"
When I click on "Science Year-2" "link"
Then I should see "Science Year-2"
@@ -43,7 +40,7 @@ Feature: Manage competency frameworks
Given the following lp "frameworks" exist:
| shortname | idnumber |
| Science Year-3 | sc-y-3 |
And I follow "Competency frameworks"
And I navigate to "Competencies > Competency frameworks" in site administration
And I should see "Science Year-3"
And I click on "Edit" of edit menu in the "Science Year-3" row
And the field "Name" matches value "Science Year-3 "
@@ -57,7 +54,7 @@ Feature: Manage competency frameworks
Given the following lp "frameworks" exist:
| shortname | idnumber |
| Science Year-4 | sc-y-4 |
And I follow "Competency frameworks"
And I navigate to "Competencies > Competency frameworks" in site administration
And I should see "Science Year-4"
And I should see "sc-y-4"
And I click on "Delete" of edit menu in the "Science Year-4" row
@@ -90,7 +87,7 @@ Scenario: Edit a framework with competencies in user competency
| user | competency |
| admin | Comp1 |
| admin | Comp2 |
And I follow "Competency frameworks"
And I navigate to "Competencies > Competency frameworks" in site administration
And I should see "Science Year-5"
And I click on "Edit" of edit menu in the "Science Year-5" row
And the field "Name" matches value "Science Year-5 "
@@ -120,7 +117,7 @@ Scenario: Edit a framework with competencies in user competency plan
| user | competency | plan |
| admin | Comp1 | Plan Science-6 |
| admin | Comp2 | Plan Science-6 |
And I follow "Competency frameworks"
And I navigate to "Competencies > Competency frameworks" in site administration
And I should see "Science Year-6"
And I click on "Edit" of edit menu in the "Science Year-6" row
And the field "Name" matches value "Science Year-6 "
+2 -6
View File
@@ -26,9 +26,7 @@ Feature: Manage plearning plan
| shortname | description |
| Science template | science template description |
And I follow "Home"
And I expand "Site administration" node
And I expand "Competencies" node
And I follow "Learning plan templates"
And I navigate to "Competencies > Learning plan templates" in site administration
And I click on ".template-userplans" "css_element" in the "Science template" "table_row"
And I click on ".form-autocomplete-downarrow" "css_element"
And I click on "Admin" item in the autocomplete list
@@ -52,9 +50,7 @@ Feature: Manage plearning plan
| student-plan1 | COHORTPLAN |
| student-plan2 | COHORTPLAN |
And I follow "Home"
And I expand "Site administration" node
And I expand "Competencies" node
And I follow "Learning plan templates"
And I navigate to "Competencies > Learning plan templates" in site administration
And I click on ".template-cohorts" "css_element" in the "Science template cohort" "table_row"
And I click on ".form-autocomplete-downarrow" "css_element"
And I click on "cohort plan" item in the autocomplete list
@@ -145,10 +145,7 @@ Feature: Manage plan workflow
| Test-Plan3 | user1 | Description of plan 3 for user 1 | active | manager1 |
| Test-Plan4 | user1 | Description of plan 4 for user 1 | active | manager1 |
And I log in as "manager1"
And I expand "Site administration" node
And I expand "Users" node
And I expand "Accounts" node
And I follow "Browse list of users"
And I navigate to "Users > Accounts > Browse list of users" in site administration
And I follow "User 1"
And I follow "Learning plans"
And I should see "List of learning plans"
@@ -167,10 +164,7 @@ Feature: Manage plan workflow
| Test-Plan3 | user1 | Description of plan 3 for user 1 | active | manager1 |
| Test-Plan4 | user1 | Description of plan 4 for user 1 | active | manager1 |
And I log in as "manager1"
And I expand "Site administration" node
And I expand "Users" node
And I expand "Accounts" node
And I follow "Browse list of users"
And I navigate to "Users > Accounts > Browse list of users" in site administration
And I follow "User 1"
And I follow "Learning plans"
And I should see "List of learning plans"
@@ -191,10 +185,7 @@ Scenario: Manager reopen a complete learning plan
| Test-Plan3 | user1 | Description of plan 3 for user 1 | complete | manager1 |
| Test-Plan4 | user1 | Description of plan 4 for user 1 | complete | manager1 |
And I log in as "manager1"
And I expand "Site administration" node
And I expand "Users" node
And I expand "Accounts" node
And I follow "Browse list of users"
And I navigate to "Users > Accounts > Browse list of users" in site administration
And I follow "User 1"
And I follow "Learning plans"
And I should see "List of learning plans"
@@ -7,12 +7,9 @@ Feature: Manage plearning plan templates
Background:
Given I log in as "admin"
And I am on site homepage
And I expand "Site administration" node
When I expand "Competencies" node
Then I should see "Learning plan templates"
Scenario: Create a new learning plan template
Given I follow "Learning plan templates"
Given I navigate to "Competencies > Learning plan templates" in site administration
And I should see "List of learning plan templates"
And I click on "Add new learning plan template" "button"
And I should see "Add new learning plan template"
@@ -26,7 +23,7 @@ Feature: Manage plearning plan templates
Given the following lp "templates" exist:
| shortname | description |
| Science template Year-2 | science template description |
And I follow "Learning plan templates"
And I navigate to "Competencies > Learning plan templates" in site administration
And I should see "Science template Year-2"
When I click on "Science template Year-2" "link"
Then I should see "Science template Year-2"
@@ -36,7 +33,7 @@ Feature: Manage plearning plan templates
Given the following lp "templates" exist:
| shortname | description |
| Science template Year-3 | science template description |
And I follow "Learning plan templates"
And I navigate to "Competencies > Learning plan templates" in site administration
And I should see "Science template Year-3"
And I click on "Edit" of edit menu in the "Science template Year-3" row
And the field "Name" matches value "Science template Year-3"
@@ -49,7 +46,7 @@ Feature: Manage plearning plan templates
Given the following lp "templates" exist:
| shortname | description |
| Science template Year-4 | science template description |
And I follow "Learning plan templates"
And I navigate to "Competencies > Learning plan templates" in site administration
And I should see "Science template Year-4"
And I click on "Delete" of edit menu in the "Science template Year-4" row
And "Confirm" "dialogue" should be visible
+2 -2
View File
@@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_lp'; // Full name of the plugin (used for diagnostics).
@@ -53,6 +53,10 @@ class framework_importer {
protected $importer = null;
protected $foundheaders = array();
protected $scalecache = array();
/** @var bool $useprogressbar Control whether importing should use progress bars or not. */
protected $useprogressbar = false;
/** @var \core\progress\display_if_slow|null $progress The progress bar instance. */
protected $progress = null;
/**
* Store an error message for display later
@@ -164,8 +168,11 @@ class framework_importer {
* @param string delimiter The specified delimiter for the file.
* @param string importid The id of the csv import.
* @param array mappingdata The mapping data from the import form.
* @param bool $useprogressbar Whether progress bar should be displayed, to avoid html output on CLI.
*/
public function __construct($text = null, $encoding = null, $delimiter = null, $importid = 0, $mappingdata = null) {
public function __construct($text = null, $encoding = null, $delimiter = null, $importid = 0, $mappingdata = null,
$useprogressbar = false) {
global $CFG;
// The format of our records is:
@@ -204,7 +211,7 @@ class framework_importer {
}
$this->foundheaders = $this->importer->get_columns();
$this->useprogressbar = $useprogressbar;
$domainid = 1;
$flat = array();
@@ -264,8 +271,19 @@ class framework_importer {
$this->fail(get_string('invalidimportfile', 'tool_lpimportcsv'));
return;
} else {
// We are calling from browser, display progress bar.
if ($this->useprogressbar === true) {
$this->progress = new \core\progress\display_if_slow(get_string('processingfile', 'tool_lpimportcsv'));
$this->progress->start_html();
} else {
// Avoid html output on CLI scripts.
$this->progress = new \core\progress\none();
}
$this->progress->start_progress('', count($this->flat));
// Build a tree from this flat list.
raise_memory_limit(MEMORY_EXTRA);
$this->add_children($this->framework, '');
$this->progress->end_progress();
}
}
@@ -278,6 +296,7 @@ class framework_importer {
public function add_children(& $node, $parentidnumber) {
foreach ($this->flat as $competency) {
if ($competency->parentidnumber == $parentidnumber) {
$this->progress->increment_progress();
$node->children[] = $competency;
$this->add_children($competency, $competency->idnumber);
}
@@ -443,17 +462,28 @@ class framework_importer {
$record->contextid = context_system::instance()->id;
$framework = api::create_framework($record);
if ($this->useprogressbar === true) {
$this->progress = new \core\progress\display_if_slow(get_string('importingfile', 'tool_lpimportcsv'));
$this->progress->start_html();
} else {
$this->progress = new \core\progress\none();
}
$this->progress->start_progress('', (count($this->framework->children) * 2));
raise_memory_limit(MEMORY_EXTRA);
// Now all the children.
foreach ($this->framework->children as $comp) {
$this->progress->increment_progress();
$this->create_competency($comp, null, $framework);
}
// Now create the rules.
foreach ($this->framework->children as $record) {
$this->progress->increment_progress();
$this->set_rules($record);
$this->set_related($record);
}
$this->progress->end_progress();
$this->importer->cleanup();
return $framework;
-47
View File
@@ -1,47 +0,0 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Page to continue after an action.
*
* @package tool_lpimportcsv
* @copyright 2015 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once(__DIR__ . '/../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
$pagetitle = get_string('pluginname', 'tool_lpimportcsv');
$context = context_system::instance();
$id = required_param('id', PARAM_INT);
$url = new moodle_url("/admin/tool/lpimportcsv/index.php");
$PAGE->set_context($context);
$PAGE->set_url($url);
$PAGE->set_title($pagetitle);
$PAGE->set_pagelayout('admin');
$PAGE->set_heading($pagetitle);
echo $OUTPUT->header();
echo $OUTPUT->heading($pagetitle);
$urlparams = ['competencyframeworkid' => $id, 'pagecontextid' => $context->id];
$frameworksurl = new moodle_url('/admin/tool/lp/competencies.php', $urlparams);
echo $OUTPUT->notification(get_string('competencyframeworkcreated', 'tool_lp'), 'notifysuccess');
echo $OUTPUT->continue_button($frameworksurl);
echo $OUTPUT->footer();
+7 -4
View File
@@ -37,6 +37,7 @@ $PAGE->set_pagelayout('admin');
$PAGE->set_heading($pagetitle);
$form = null;
echo $OUTPUT->header();
if (optional_param('needsconfirm', 0, PARAM_BOOL)) {
$form = new \tool_lpimportcsv\form\import($url->out(false));
} else if (optional_param('confirm', 0, PARAM_BOOL)) {
@@ -53,7 +54,7 @@ if ($form->is_cancelled()) {
if ($data->confirm) {
$importid = $data->importid;
$importer = new \tool_lpimportcsv\framework_importer(null, null, null, $importid, $data);
$importer = new \tool_lpimportcsv\framework_importer(null, null, null, $importid, $data, true);
$error = $importer->get_error();
if ($error) {
@@ -61,21 +62,23 @@ if ($form->is_cancelled()) {
$form->set_import_error($error);
} else {
$framework = $importer->import();
redirect(new moodle_url('continue.php', array('id' => $framework->get_id())));
$urlparams = ['competencyframeworkid' => $framework->get_id(), 'pagecontextid' => $context->id];
$frameworksurl = new moodle_url('/admin/tool/lp/competencies.php', $urlparams);
echo $OUTPUT->notification(get_string('competencyframeworkcreated', 'tool_lp'), 'notifysuccess');
echo $OUTPUT->continue_button($frameworksurl);
die();
}
} else {
$text = $form->get_file_content('importfile');
$encoding = $data->encoding;
$delimiter = $data->delimiter_name;
$importer = new \tool_lpimportcsv\framework_importer($text, $encoding, $delimiter);
$importer = new \tool_lpimportcsv\framework_importer($text, $encoding, $delimiter, 0, null, true);
$confirmform = new \tool_lpimportcsv\form\import_confirm(null, $importer);
$form = $confirmform;
$pagetitle = get_string('confirmcolumnmappings', 'tool_lpimportcsv');
}
}
echo $OUTPUT->header();
echo $OUTPUT->heading($pagetitle);
$form->display();
@@ -38,11 +38,13 @@ $string['importfile'] = 'CSV framework description file';
$string['importfile_help'] = 'A competency framework may be imported via text file. The format of the file can be determined by creating a new competency framework on the site and then exporting it.';
$string['importfile_link'] = 'admin/tool/lpimportcsv';
$string['import'] = 'Import';
$string['importingfile'] = 'Importing file data';
$string['invalidimportfile'] = 'File format is invalid.';
$string['isframework'] = 'Is framework';
$string['noframeworks'] = 'No competency frameworks have been created yet';
$string['parentidnumber'] = 'Parent ID number';
$string['pluginname'] = 'Import competency framework';
$string['processingfile'] = 'Processing file';
$string['relatedidnumbers'] = 'Cross-referenced competency ID numbers';
$string['ruleconfig'] = 'Rule config (optional)';
$string['ruleoutcome'] = 'Rule outcome (optional)';
+3 -3
View File
@@ -25,8 +25,8 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016083000; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_lpimportcsv'; // Full name of the plugin (used for diagnostics).
$plugin->dependencies = array('tool_lp' => 2016052300);
$plugin->dependencies = array('tool_lp' => 2016112900);
+2 -2
View File
@@ -24,8 +24,8 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_lpmigrate'; // Full name of the plugin (used for diagnostics).
$plugin->dependencies = array(
'tool_lp' => ANY_VERSION
@@ -125,9 +125,7 @@ class manager {
} catch (\Horde_Imap_Client_Exception $e) {
$message = $e->getMessage();
mtrace("Unable to connect to IMAP server. Failed with '{$message}'");
return false;
throw new \moodle_exception('imapconnectfailure', 'tool_messageinbound', '', null, $message);
}
}
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300;
$plugin->requires = 2016051900;
$plugin->version = 2016120500;
$plugin->requires = 2016112900;
$plugin->component = 'tool_messageinbound';
+6 -1
View File
@@ -101,6 +101,7 @@ class api {
*/
public static function get_public_config() {
global $CFG, $SITE, $PAGE, $OUTPUT;
require_once($CFG->libdir . '/authlib.php');
$context = context_system::instance();
// We need this to make work the format text functions.
@@ -132,8 +133,12 @@ class api {
}
$settings['typeoflogin'] = $typeoflogin;
// Check if the user can sign-up to return the launch URL in that case.
$cansignup = signup_is_enabled();
if ($typeoflogin == self::LOGIN_VIA_BROWSER or
$typeoflogin == self::LOGIN_VIA_EMBEDDED_BROWSER) {
$typeoflogin == self::LOGIN_VIA_EMBEDDED_BROWSER or
$cansignup) {
$url = new moodle_url("/$CFG->admin/tool/mobile/launch.php");
$settings['launchurl'] = $url->out(false);
}
+2 -1
View File
@@ -94,7 +94,8 @@ $isios = core_useragent::is_ios();
if ($confirmed or $isios) {
$PAGE->set_context(context_system::instance());
$PAGE->set_heading($COURSE->fullname);
$PAGE->set_url('/local/mobile/launch.php', array('service' => $serviceshortname, 'passport' => $passport, 'urlscheme' => $urlscheme));
$params = array('service' => $serviceshortname, 'passport' => $passport, 'urlscheme' => $urlscheme, 'confirmed' => $confirmed);
$PAGE->set_url("/$CFG->admin/tool/mobile/launch.php", $params);
echo $OUTPUT->header();
if ($confirmed) {
+2 -2
View File
@@ -23,6 +23,6 @@
*/
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052305; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_mobile'; // Full name of the plugin (used for diagnostics).
@@ -77,7 +77,7 @@ class renderer extends \plugin_renderer_base {
protected function render_add_button($courseid) {
global $CFG;
$button = \html_writer::tag('button', get_string('addrule', 'tool_monitor'));
$button = \html_writer::tag('button', get_string('addrule', 'tool_monitor'), ['class' => 'btn btn-primary']);
$addurl = new \moodle_url($CFG->wwwroot. '/admin/tool/monitor/edit.php', array('courseid' => $courseid));
return \html_writer::link($addurl, $button);
}
+3
View File
@@ -77,5 +77,8 @@ function xmldb_tool_monitor_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2016052305, 'tool', 'monitor');
}
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -115,7 +115,7 @@ Feature: tool_monitor_subscriptions
And I trigger cron
And I am on site homepage
When I click on ".popover-region-notifications" "css_element"
And I click on "View more" "link" in the ".popover-region-notifications" "css_element"
And I click on "View full notification" "link" in the ".popover-region-notifications" "css_element"
Then I should see "New rule site level"
And I should see "The course was viewed"
@@ -137,7 +137,7 @@ Feature: tool_monitor_subscriptions
And I trigger cron
And I am on site homepage
When I click on ".popover-region-notifications" "css_element"
And I click on "View more" "link" in the ".popover-region-notifications" "css_element"
And I click on "View full notification" "link" in the ".popover-region-notifications" "css_element"
Then I should see "New rule course level"
And I should see "The course was viewed"
+2 -2
View File
@@ -26,6 +26,6 @@
defined('MOODLE_INTERNAL') || die;
$plugin->version = 2016052305; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_monitor'; // Full name of the plugin (used for diagnostics).
+2 -2
View File
@@ -25,7 +25,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_multilangupgrade'; // Full name of the plugin (used for diagnostics)
+2 -2
View File
@@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_phpunit'; // Full name of the plugin (used for diagnostics)
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_profiling'; // Full name of the plugin (used for diagnostics)
@@ -65,6 +65,6 @@ Feature: Backup user data
And I log out
And I log in as "student1"
And I follow "Course 1"
When I click on "Grades" "link" in the "Navigation" "block"
When I navigate to "User report" in the course gradebook
Then "Quiz 1" row "Grade" column of "user-grade" table should contain "5"
And "Quiz 1" row "Percentage" column of "user-grade" table should contain "50"
@@ -49,9 +49,10 @@ Feature: Basic recycle bin functionality
And I should see "Deleting C2"
And I should see "C2 has been completely deleted"
And I press "Continue"
And I go to the courses management page
And I should not see "Course 2" in the "#course-listing" "css_element"
When I navigate to "Recycle bin" node in "Category: Miscellaneous"
And I am on course index
And I should see "Course 1"
And I should not see "Course 2"
When I navigate to "Recycle bin" in current page administration
Then I should see "Course 2"
And I should see "Contents will be permanently deleted after 14 days"
And I click on "Restore" "link" in the "region-main" "region"
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_recyclebin'; // Full name of the plugin (used for diagnostics).
+2 -2
View File
@@ -25,8 +25,8 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_replace'; // Full name of the plugin (used for diagnostics)
$plugin->maturity = MATURITY_ALPHA; // this version's maturity level
+14 -9
View File
@@ -75,7 +75,7 @@ if (!empty($delall) && confirm_sesskey()) {
exit;
}
if (!empty($ignore)) {
if (!empty($ignore) && confirm_sesskey()) {
unset($SESSION->users_result[$id]);
echo json_encode(true);
exit;
@@ -96,12 +96,12 @@ echo $OUTPUT->box_start(); // The forms section at the top
<div class="mdl-align">
<form method="post" action="index.php">
<form method="post" action="index.php" class="form-inline spamcleanerform">
<div>
<label class="accesshide" for="keyword_el"><?php print_string('spamkeyword', 'tool_spamcleaner') ?></label>
<input type="text" name="keyword" id="keyword_el" value="<?php p($keyword) ?>" />
<input type="text" class="form-control" name="keyword" id="keyword_el" value="<?php p($keyword) ?>" />
<input type="hidden" name="sesskey" value="<?php echo sesskey();?>" />
<input type="submit" value="<?php echo get_string('spamsearch', 'tool_spamcleaner')?>" />
<input type="submit" class="btn btn-primary" value="<?php echo get_string('spamsearch', 'tool_spamcleaner')?>" />
</div>
</form>
<p><?php echo get_string('spameg', 'tool_spamcleaner');?></p>
@@ -110,7 +110,8 @@ echo $OUTPUT->box_start(); // The forms section at the top
<form method="post" action="index.php">
<div>
<input type="submit" name="autodetect" value="<?php echo get_string('spamauto', 'tool_spamcleaner');?>" />
<input type="submit" class="btn btn-primary" name="autodetect"
value="<?php echo get_string('spamauto', 'tool_spamcleaner');?>" />
</div>
</form>
@@ -256,7 +257,9 @@ function print_user_list($users_rs, $keywords) {
foreach ($users_rs as $rs){
foreach ($rs as $user) {
if (!$count) {
echo '<table border="1" width="100%" id="data-grid"><tr><th>&nbsp;</th><th>'.get_string('user','admin').'</th><th>'.get_string('spamdesc', 'tool_spamcleaner').'</th><th>'.get_string('spamoperation', 'tool_spamcleaner').'</th></tr>';
echo '<table class="table table-bordered" border="1" width="100%" id="data-grid"><tr><th>&nbsp;</th>
<th>'.get_string('user', 'admin').'</th><th>'.get_string('spamdesc', 'tool_spamcleaner').'</th>
<th>'.get_string('spamoperation', 'tool_spamcleaner').'</th></tr>';
}
$count++;
filter_user($user, $keywords, $count);
@@ -269,7 +272,7 @@ function print_user_list($users_rs, $keywords) {
} else {
echo '</table>';
echo '<div class="mld-align">
<button id="removeall_btn">'.get_string('spamdeleteall', 'tool_spamcleaner').'</button>
<button id="removeall_btn" class="btn btn-secondary">'.get_string('spamdeleteall', 'tool_spamcleaner').'</button>
</div>';
}
}
@@ -357,8 +360,10 @@ function print_user_entry($user, $keywords, $count) {
$html .= '<td align="left">'.format_text($user->description, $user->descriptionformat, array('overflowdiv'=>true)).'</td>';
$html .= '<td width="100px" align="center">';
$html .= '<button onclick="M.tool_spamcleaner.del_user(this,'.$user->id.')">'.get_string('deleteuser', 'admin').'</button><br />';
$html .= '<button onclick="M.tool_spamcleaner.ignore_user(this,'.$user->id.')">'.get_string('ignore', 'admin').'</button>';
$html .= '<button class="btn btn-primary" onclick="M.tool_spamcleaner.del_user(this,'.$user->id.')">'.
get_string('deleteuser', 'admin').'</button><br />';
$html .= '<button class="btn btn-secondary" onclick="M.tool_spamcleaner.ignore_user(this,'.$user->id.')">'.
get_string('ignore', 'admin').'</button>';
$html .= '</td>';
$html .= '</tr>';
return $html;
+2 -2
View File
@@ -25,7 +25,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300;
$plugin->requires = 2016051900;
$plugin->version = 2016120500;
$plugin->requires = 2016112900;
$plugin->component = 'tool_spamcleaner'; // Full name of the plugin (used for diagnostics)
+2 -2
View File
@@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_task'; // Full name of the plugin (used for diagnostics)
@@ -41,6 +41,7 @@ define(['jquery', 'core/ajax', 'core/log', 'core/notification', 'core/templates'
* Get the current values for the form inputs and refresh the list of matching templates.
*
* @method refreshSearch
* @param {String} themename The naeme of the theme.
*/
var refreshSearch = function(themename) {
var componentStr = $('[data-field="component"]').val();
+2 -2
View File
@@ -21,6 +21,6 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_templatelibrary'; // Full name of the plugin (used for diagnostics).
+2 -2
View File
@@ -25,7 +25,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_unsuproles'; // Full name of the plugin (used for diagnostics)
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_uploadcourse'; // Full name of the plugin (used for diagnostics).
+30 -28
View File
@@ -358,38 +358,40 @@ if ($formdata = $mform2->is_cancelled()) {
// add default values for remaining fields
$formdefaults = array();
foreach ($STD_FIELDS as $field) {
if (isset($user->$field)) {
continue;
}
// all validation moved to form2
if (isset($formdata->$field)) {
// process templates
$user->$field = uu_process_template($formdata->$field, $user);
$formdefaults[$field] = true;
if (in_array($field, $upt->columns)) {
$upt->track($field, s($user->$field), 'normal');
if ($updatetype != UU_UPDATE_FILEOVERRIDE && $updatetype != UU_UPDATE_NOCHANGES) {
foreach ($STD_FIELDS as $field) {
if (isset($user->$field)) {
continue;
}
// all validation moved to form2
if (isset($formdata->$field)) {
// process templates
$user->$field = uu_process_template($formdata->$field, $user);
$formdefaults[$field] = true;
if (in_array($field, $upt->columns)) {
$upt->track($field, s($user->$field), 'normal');
}
}
}
}
foreach ($PRF_FIELDS as $field) {
if (isset($user->$field)) {
continue;
}
if (isset($formdata->$field)) {
// process templates
$user->$field = uu_process_template($formdata->$field, $user);
// Form contains key and later code expects value.
// Convert key to value for required profile fields.
require_once($CFG->dirroot.'/user/profile/field/'.$proffields[$field]->datatype.'/field.class.php');
$profilefieldclass = 'profile_field_'.$proffields[$field]->datatype;
$profilefield = new $profilefieldclass($proffields[$field]->id);
if (method_exists($profilefield, 'convert_external_data')) {
$user->$field = $profilefield->edit_save_data_preprocess($user->$field, null);
foreach ($PRF_FIELDS as $field) {
if (isset($user->$field)) {
continue;
}
if (isset($formdata->$field)) {
// process templates
$user->$field = uu_process_template($formdata->$field, $user);
$formdefaults[$field] = true;
// Form contains key and later code expects value.
// Convert key to value for required profile fields.
require_once($CFG->dirroot.'/user/profile/field/'.$proffields[$field]->datatype.'/field.class.php');
$profilefieldclass = 'profile_field_'.$proffields[$field]->datatype;
$profilefield = new $profilefieldclass($proffields[$field]->id);
if (method_exists($profilefield, 'convert_external_data')) {
$user->$field = $profilefield->edit_save_data_preprocess($user->$field, null);
}
$formdefaults[$field] = true;
}
}
}
@@ -33,6 +33,7 @@ $string['deleteerrors'] = 'Delete errors';
$string['encoding'] = 'Encoding';
$string['errormnetadd'] = 'Can not add remote users';
$string['errors'] = 'Errors';
$string['invalidupdatetype'] = 'This option cannot be selected with the chosen upload type.';
$string['invaliduserdata'] = 'Invalid data detected for user {$a} and it has been automatically cleaned.';
$string['nochanges'] = 'No changes';
$string['pluginname'] = 'User upload';
@@ -29,14 +29,13 @@ Feature: Upload users
And I should see "Section 1"
And I press "Upload users"
And I press "Continue"
And I follow "Browse list of users"
And I navigate to "Users > Accounts > Browse list of users" in site administration
And I should see "Tom Jones"
And I should see "Trent Reznor"
And I should see "reznor@example.com"
And I am on site homepage
And I follow "Maths"
And I expand "Users" node
And I follow "Groups"
And I navigate to "Users > Groups" in current page administration
And I set the field "groups" to "Section 1 (1)"
And the "members" select box should contain "Tom Jones"
+7
View File
@@ -350,6 +350,7 @@ class admin_uploaduser_form2 extends moodleform {
$errors = parent::validation($data, $files);
$columns = $this->_customdata['columns'];
$optype = $data['uutype'];
$updatetype = $data['uuupdatetype'];
// detect if password column needed in file
if (!in_array('password', $columns)) {
@@ -382,6 +383,12 @@ class admin_uploaduser_form2 extends moodleform {
}
}
// If the 'Existing user details' value is set we need to ensure that the
// 'Upload type' is not set to something invalid.
if (!empty($updatetype) && ($optype == UU_USER_ADDNEW || $optype == UU_USER_ADDINC)) {
$errors['uuupdatetype'] = get_string('invalidupdatetype', 'tool_uploaduser');
}
// look for other required data
if ($optype != UU_USER_UPDATE) {
$requiredusernames = useredit_get_required_name_fields();
+2 -2
View File
@@ -25,7 +25,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_uploaduser'; // Full name of the plugin (used for diagnostics)
File diff suppressed because one or more lines are too long
+41
View File
@@ -37,6 +37,20 @@ function Tour(config) {
*/
Tour.prototype.tourName;
/**
* The name of the tour storage key.
*
* @property {String} storageKey
*/
Tour.prototype.storageKey;
/**
* The session storage object
*
* @property {Storage} storage
*/
Tour.prototype.storage;
/**
* The original configuration as passed into the constructor.
*
@@ -120,6 +134,14 @@ Tour.prototype.init = function (config) {
// Apply configuration.
this.configure.apply(this, arguments);
try {
this.storage = window.sessionStorage;
this.storageKey = 'tourstate_' + this.tourName;
} catch (e) {
this.storage = false;
this.storageKey = '';
}
return this;
};
@@ -280,6 +302,15 @@ Tour.prototype.getCurrentStepNumber = function () {
*/
Tour.prototype.setCurrentStepNumber = function (stepNumber) {
this.currentStepNumber = stepNumber;
if (this.storage) {
try {
this.storage.setItem(this.storageKey, stepNumber);
} catch (e) {
if (e.code === DOMException.QUOTA_EXCEEDED_ERR) {
this.storage.removeItem(this.storageKey);
}
}
}
};
/**
@@ -957,6 +988,16 @@ Tour.prototype.handleKeyDown = function (e) {
* @chainable
*/
Tour.prototype.startTour = function (startAt) {
if (this.storage && typeof startAt === 'undefined') {
var storageStartValue = this.storage.getItem(this.storageKey);
if (storageStartValue) {
var storageStartAt = parseInt(storageStartValue, 10);
if (storageStartAt <= this.steps.length) {
startAt = storageStartAt;
}
}
}
if (typeof startAt === 'undefined') {
startAt = this.getCurrentStepNumber();
}
+11 -4
View File
@@ -76,15 +76,22 @@ EOF;
/**
* Fetch all enabled tours matching the specified target.
*
* @param string $targetmatch The URL to match.
* @param moodle_url $targetmatch The URL to match.
*/
public static function get_matching_tourdata($targetmatch) {
public static function get_matching_tourdata(\moodle_url $targetmatch) {
$tours = self::get_enabled_tourdata();
return array_filter($tours, function($tour) use ($targetmatch) {
// Attempt to determine whether this is the front page.
// This is a special case because the frontpage uses a shortened page path making it difficult to detect exactly.
$isfrontpage = $targetmatch->compare(new \moodle_url('/'), URL_MATCH_BASE);
$target = $targetmatch->out_as_local_url();
return array_filter($tours, function($tour) use ($isfrontpage, $target) {
if ($isfrontpage && $tour->pathmatch === 'FRONTPAGE') {
return true;
}
$pattern = preg_quote($tour->pathmatch, '@');
$pattern = str_replace('%', '.*', $pattern);
return !!preg_match("@{$pattern}@", $targetmatch);
return !!preg_match("@{$pattern}@", $target);
});
}
+90 -1
View File
@@ -28,6 +28,7 @@ defined('MOODLE_INTERNAL') || die();
use tool_usertours\local\forms;
use tool_usertours\local\table;
use core\notification;
/**
* Tour manager.
@@ -117,6 +118,21 @@ class manager {
*/
const ACTION_RESETFORALL = 'resetforall';
/**
* @var CONFIG_SHIPPED_TOUR
*/
const CONFIG_SHIPPED_TOUR = 'shipped_tour';
/**
* @var CONFIG_SHIPPED_FILENAME
*/
const CONFIG_SHIPPED_FILENAME = 'shipped_filename';
/**
* @var CONFIG_SHIPPED_VERSION
*/
const CONFIG_SHIPPED_VERSION = 'shipped_version';
/**
* This is the entry point for this controller class.
*
@@ -349,6 +365,10 @@ class manager {
if (empty($tour)) {
$this->header('newtour');
} else {
if (!empty($tour->get_config(self::CONFIG_SHIPPED_TOUR))) {
notification::add(get_string('modifyshippedtourwarning', 'tool_usertours'), notification::WARNING);
}
$this->header($tour->get_name());
$data = $tour->prepare_data_for_form();
@@ -559,7 +579,7 @@ class manager {
public static function get_matching_tours(\moodle_url $pageurl) {
global $PAGE;
$tours = cache::get_matching_tourdata($pageurl->out_as_local_url());
$tours = cache::get_matching_tourdata($pageurl);
foreach ($tours as $record) {
$tour = tour::load_from_record($record);
@@ -646,6 +666,11 @@ class manager {
}
$tour = $step->get_tour();
if (!empty($tour->get_config(self::CONFIG_SHIPPED_TOUR))) {
notification::add(get_string('modifyshippedtourwarning', 'tool_usertours'), notification::WARNING);
}
$PAGE->navbar->add($tour->get_name(), $tour->get_view_link());
if (isset($id)) {
$PAGE->navbar->add($step->get_title(), $step->get_edit_link());
@@ -750,4 +775,68 @@ class manager {
$step->remove();
redirect($tour->get_view_link());
}
/**
* Make sure all of the default tours that are shipped with Moodle are created
* and up to date with the latest version.
*/
public static function update_shipped_tours() {
global $DB, $CFG;
// A list of tours that are shipped with Moodle. They are in
// the format filename => version. The version value needs to
// be increased if the tour has been updated.
$shippedtours = [
'boost_administrator.json' => 1,
'boost_course_view.json' => 1,
];
$existingtourrecords = $DB->get_recordset('tool_usertours_tours');
// Get all of the existing shipped tours and check if they need to be
// updated.
foreach ($existingtourrecords as $tourrecord) {
$tour = tour::load_from_record($tourrecord);
if (!empty($tour->get_config(self::CONFIG_SHIPPED_TOUR))) {
$filename = $tour->get_config(self::CONFIG_SHIPPED_FILENAME);
$version = $tour->get_config(self::CONFIG_SHIPPED_VERSION);
// If we know about this tour (otherwise leave it as is).
if (isset($shippedtours[$filename])) {
// And the version in the DB is an older version.
if ($version < $shippedtours[$filename]) {
// Remove the old version because it's been updated
// and needs to be recreated.
$tour->remove();
} else {
// The tour has not been updated so we don't need to
// do anything with it.
unset($shippedtours[$filename]);
}
}
}
}
$existingtourrecords->close();
foreach ($shippedtours as $filename => $version) {
$filepath = $CFG->dirroot . '/admin/tool/usertours/tours/' . $filename;
$tourjson = file_get_contents($filepath);
$tour = self::import_tour_from_json($tourjson);
// Set some additional config data to record that this tour was
// added as a shipped tour.
$tour->set_config(self::CONFIG_SHIPPED_TOUR, true);
$tour->set_config(self::CONFIG_SHIPPED_FILENAME, $filename);
$tour->set_config(self::CONFIG_SHIPPED_VERSION, $version);
if (defined('BEHAT_SITE_RUNNING') || (defined('PHPUNIT_TEST') && PHPUNIT_TEST)) {
// Disable this tour if this is behat or phpunit.
$tour->set_enabled(false);
}
$tour->persist();
}
}
}
+3 -1
View File
@@ -608,6 +608,8 @@ class tour {
* This is used in the session cookie to determine whether the user has seen this tour before.
*/
public function get_tour_key() {
global $USER;
$tourtime = $this->get_config('majorupdatetime', null);
if ($tourtime === null) {
@@ -622,7 +624,7 @@ class tour {
$tourtime = max($tourtime, $userresetdate);
}
return sprintf('tool_usertours_%d_%s', $this->get_id(), $tourtime);
return sprintf('tool_usertours_%d_%d_%s', $USER->id, $this->get_id(), $tourtime);
}
/**
+5
View File
@@ -24,6 +24,8 @@
defined('MOODLE_INTERNAL') || die;
use tool_usertours\manager;
/**
* Perform the post-install procedures.
*/
@@ -71,4 +73,7 @@ function xmldb_tool_usertours_install() {
$DB->delete_records('usertours_steps', null);
$DB->delete_records('usertours_tours', null);
}
// Update the tours shipped with Moodle.
manager::update_shipped_tours();
}
+49
View File
@@ -0,0 +1,49 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Upgrade code for install
*
* @package tool_usertours
* @copyright 2016 Ryan Wyllie <ryan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
use tool_usertours\manager;
/**
* Upgrade the user tours plugin.
*
* @param int $oldversion The old version of the user tours plugin
* @return bool
*/
function xmldb_tool_usertours_upgrade($oldversion) {
global $CFG, $DB;
if ($oldversion < 2016120501) {
// Update the tours shipped with Moodle.
manager::update_shipped_tours();
upgrade_plugin_savepoint(true, 2016120501, 'tool', 'usertours');
}
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -60,6 +60,7 @@ $string['filter_role'] = 'Role';
$string['filter_role_help'] = 'A tour may be restricted to users with selected roles in the context where the tour is shown. For example, restricting a Dashboard tour to users with the role of student won\'t work if users have the role of student in a course (as is generally the case). A Dashboard tour can only be restricted to users with a system role.';
$string['importtour'] = 'Import tour';
$string['left'] = 'Left';
$string['modifyshippedtourwarning'] = 'This is a user tour that has shipped with Moodle. Any modifications you make may be overridden during your next site upgrade.';
$string['movestepdown'] = 'Move step down';
$string['movestepup'] = 'Move step up';
$string['movetourdown'] = 'Move tour down';
@@ -79,7 +80,10 @@ Some example values include:
* /my/% - to match the Dashboard
* /course/view.php?id=2 - to match a specific course
* /mod/forum/view.php% - to match the forum discussion list
* /user/profile.php% - to match the user profile page';
* /user/profile.php% - to match the user profile page
If you wish to display a tour on the Site Home page, you can use the value: "FRONTPAGE".
';
$string['placement'] = 'Placement';
$string['pluginname'] = 'User tours';
$string['resettouronpage'] = 'Reset user tour on this page';
@@ -133,3 +137,35 @@ $string['target_selector_targetvalue_help'] = 'A CSS selector can be used to tar
$string['viewtour_info'] = 'This is the \'{$a->tourname}\' tour. It applies to the path \'{$a->path}\'.';
$string['viewtour_edit'] = 'You can <a href="{$a->editlink}">edit the tour defaults</a> and <a href="{$a->resetlink}">force the tour to be displayed</a> to all users again.';
$string['tour_resetforall'] = 'The state of the tour has been reset. It will be displayed to all users again.';
// Boost - administrator tour.
$string['tour1_title_welcome'] = 'Welcome';
$string['tour1_content_welcome'] = 'Welcome to the Boost theme for Moodle 3.2. If you\'ve used Moodle before you might find some things look a bit different.';
$string['tour1_title_navigation'] = 'Navigation';
$string['tour1_content_navigation'] = 'Major navigation is now through this nav drawer. The contents update depending on where you are in the site. Use the button at the top to hide or show it.';
$string['tour1_title_customisation'] = 'Customisation';
$string['tour1_content_customisation'] = 'To customise the look of your site and the front page, use the settings menu in the corner of this header. Try turning editing on right now.';
$string['tour1_title_blockregion'] = 'Block region';
$string['tour1_content_blockregion'] = 'There is still a block region over here. We recommend removing the Navigation and Administration blocks completely, as all the functionality is elsewhere in the Boost theme.';
$string['tour1_title_addingblocks'] = 'Adding blocks';
$string['tour1_content_addingblocks'] = 'In fact, think carefully about including any blocks on your pages. Blocks are not shown on the Moodle Mobile app, so as a general rule it\'s much better to make sure your site works well without any blocks.';
$string['tour1_title_end'] = 'End of tour';
$string['tour1_content_end'] = 'This has been a user tour, a new feature in Moodle 3.2. It won\'t show again unless you reset it using the link in the footer. As an admin you can also create your own tours like this!';
// Boost - course view tour.
$string['tour2_title_welcome'] = 'Welcome';
$string['tour2_content_welcome'] = 'Welcome to the Boost theme for Moodle 3.2. If you\'ve used Moodle before you might find things look a bit different here on the course page.';
$string['tour2_title_customisation'] = 'Customisation';
$string['tour2_content_customisation'] = 'To change any course settings, use the settings menu in the corner of this header. You will find a similar settings menu on the home page of every activity, too. Try turning editing on right now.';
$string['tour2_title_navigation'] = 'Navigation';
$string['tour2_content_navigation'] = 'Navigation is now through this nav drawer. Use the button at the top to hide or show it. You will see that there are links for sections of your course.';
$string['tour2_title_opendrawer'] = 'Open the nav drawer';
$string['tour2_content_opendrawer'] = 'Try opening the nav drawer now.';
$string['tour2_title_participants'] = 'Course participants';
$string['tour2_content_participants'] = 'View participants here. This is also where you go to add or remove students.';
$string['tour2_title_addblock'] = 'Add a block';
$string['tour2_content_addblock'] = 'If you turn editing on you can add blocks from the nav drawer. However, think carefully about including any blocks on your pages. Blocks are not shown on the Moodle Mobile app, so for the best user experience it is better to make sure your course works well without any blocks.';
$string['tour2_title_addingblocks'] = 'Adding blocks';
$string['tour2_content_addingblocks'] = 'You can add blocks to this page using this button. However, think carefully about including any blocks on your pages. Blocks are not shown on the Moodle Mobile app, so for the best user experience it is better to make sure your course works well without any blocks.';
$string['tour2_title_end'] = 'End of tour';
$string['tour2_content_end'] = 'This has been a user tour, a new feature in Moodle 3.2. It won\'t show again unless you reset it using the link in the footer. The site admin can also create further tours for this site if required.';
@@ -25,7 +25,7 @@ Feature: Add a new user tour
And I add steps to the "First tour" tour:
| targettype | targetvalue_selector | Title | Content |
| Selector | .usermenu | User menu | This is your personal user menu. You'll find your personal preferences and your user profile here. |
When I click on "Dashboard" "link" in the "Navigation" "block"
When I am on homepage
Then I should see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
And I press "Next"
And I should see "This area shows you what's happening in some of your courses"
@@ -38,7 +38,7 @@ Feature: Add a new user tour
And I should see "This area shows you what's happening in some of your courses"
And I press "End tour"
And I should not see "This area shows you what's happening in some of your courses"
And I click on "Dashboard" "link" in the "Navigation" "block"
And I am on homepage
And I should not see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
And I should not see "This area shows you what's happening in some of your courses"
And I follow "Reset user tour on this page"
@@ -58,7 +58,7 @@ Feature: Add a new user tour
And I add steps to the "First tour" tour:
| targettype | Title | Content |
| Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
When I click on "Dashboard" "link" in the "Navigation" "block"
When I am on homepage
Then I should not see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
@javascript
@@ -77,5 +77,5 @@ Feature: Add a new user tour
| Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
And I open the User tour settings page
When I click on "Enable" "link" in the "My first tour" "table_row"
And I click on "Dashboard" "link" in the "Navigation" "block"
And I am on homepage
Then I should see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
@@ -16,7 +16,7 @@ Feature: Apply tour filters to a tour
And I add steps to the "First tour" tour:
| targettype | Title | Content |
| Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
When I click on "Dashboard" "link" in the "Navigation" "block"
When I am on homepage
Then I should not see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
@javascript
+19 -1
View File
@@ -150,6 +150,14 @@ class cache_testcase extends advanced_testcase {
'name' => 'my_glob_2',
'pathmatch' => '/my/%'
],
(object) [
'name' => 'frontpage_only',
'pathmatch' => 'FRONTPAGE'
],
(object) [
'name' => 'frontpage_match',
'pathmatch' => '/?%'
],
];
return [
@@ -163,6 +171,16 @@ class cache_testcase extends advanced_testcase {
'/my/view.php',
['my_exact_1', 'my_glob_1', 'my_glob_2'],
],
'Special constant FRONTPAGE must match front page only' => [
$tourconfigs,
'/',
['frontpage_only'],
],
'Standard frontpage URL matches both the special constant, and a correctly formed pathmatch' => [
$tourconfigs,
'/?redirect=0',
['frontpage_only', 'frontpage_match'],
],
];
}
@@ -181,7 +199,7 @@ class cache_testcase extends advanced_testcase {
$this->helper_create_step((object) ['tourid' => $tour->get_id()]);
}
$matches = \tool_usertours\cache::get_matching_tourdata((new moodle_url($targetmatch))->out_as_local_url());
$matches = \tool_usertours\cache::get_matching_tourdata(new moodle_url($targetmatch));
$this->assertCount(count($expected), $matches);
for ($i = 0; $i < count($matches); $i++) {
+6 -6
View File
@@ -729,7 +729,7 @@ class tour_testcase extends advanced_testcase {
$this->greaterThanOrEqual($time),
true,
null,
sprintf('tool_usertours_%d_%s', $id, $time),
sprintf('tool_usertours_\d_%d_%s', $id, $time),
],
'Initial tour time, no user pref' => [
@@ -738,7 +738,7 @@ class tour_testcase extends advanced_testcase {
null,
false,
null,
sprintf('tool_usertours_%d_%s', $id, $time),
sprintf('tool_usertours_\d_%d_%s', $id, $time),
],
'Initial tour time, with user reset lower' => [
$id,
@@ -746,7 +746,7 @@ class tour_testcase extends advanced_testcase {
null,
false,
$time - DAYSECS,
sprintf('tool_usertours_%d_%s', $id, $time),
sprintf('tool_usertours_\d_%d_%s', $id, $time),
],
'Initial tour time, with user reset higher' => [
$id,
@@ -754,7 +754,7 @@ class tour_testcase extends advanced_testcase {
null,
false,
$time + DAYSECS,
sprintf('tool_usertours_%d_%s', $id, $time + DAYSECS),
sprintf('tool_usertours_\d_%d_%s', $id, $time + DAYSECS),
],
];
}
@@ -823,8 +823,8 @@ class tour_testcase extends advanced_testcase {
set_user_preference(\tool_usertours\tour::TOUR_REQUESTED_BY_USER . $id, $userpref);
}
$this->assertEquals(
$expectation,
$this->assertRegExp(
'/' . $expectation . '/',
$tour->get_tour_key()
);
}
+1 -1
View File
@@ -4,7 +4,7 @@
<location>amd/src/tour.js</location>
<name>Flexitour</name>
<license>GPLv3</license>
<version>0.9.9</version>
<version>0.9.10</version>
<licenseversion>3</licenseversion>
</library>
<library>
@@ -0,0 +1,2 @@
{"name":"Boost - administrator","description":"A tour of some new features in the Boost theme, for administrators","pathmatch":"FRONTPAGE","enabled":"1","sortorder":"0","configdata":"{\"placement\":\"bottom\",\"orphan\":\"0\",\"backdrop\":\"1\",\"reflex\":\"0\",\"filtervalues\":{\"role\":[\"-1\"],\"theme\":[\"boost\"]},\"majorupdatetime\":1479366244,\"default_tour\":true,\"filename\":\"boost_administrator.json\",\"version\":1}","version":"2016102001","steps":[{"title":"tour1_title_welcome,tool_usertours","content":"tour1_content_welcome,tool_usertours","targettype":"2","targetvalue":"","sortorder":"0","configdata":"{}"},{"title":"tour1_title_navigation,tool_usertours","content":"tour1_content_navigation,tool_usertours","targettype":"0","targetvalue":"[data-region=\"drawer-toggle\"] button[data-action=\"toggle-drawer\"]","sortorder":"1","configdata":"{}"},{"title":"tour1_title_customisation,tool_usertours","content":"tour1_content_customisation,tool_usertours","targettype":"0","targetvalue":"body:not(.editing) #page-header .card-block","sortorder":"2","configdata":"{\"placement\":\"bottom\"}"},{"title":"tour1_title_blockregion,tool_usertours","content":"tour1_content_blockregion,tool_usertours","targettype":"0","targetvalue":"body.editing [data-region=\"blocks-column\"]","sortorder":"3","configdata":"{}"},{"title":"tour1_title_addingblocks,tool_usertours","content":"tour1_content_addingblocks,tool_usertours","targettype":"0","targetvalue":"body.editing [data-region=\"blocks-column\"]","sortorder":"4","configdata":"{\"placement\":\"bottom\"}"},{"title":"tour1_title_end,tool_usertours","content":"tour1_content_end,tool_usertours","targettype":"2","targetvalue":"","sortorder":"5","configdata":"{}"}]}
@@ -0,0 +1 @@
{"name":"Boost - course view","description":"A tour for introducing administrators and teachers to courses in the Boost theme","pathmatch":"\/course\/view.php%","enabled":"1","sortorder":"1","configdata":"{\"placement\":\"bottom\",\"orphan\":\"0\",\"backdrop\":\"1\",\"reflex\":\"0\",\"filtervalues\":{\"role\":[\"-1\",\"editingteacher\"],\"theme\":[\"boost\"]},\"majorupdatetime\":1480050104,\"shipped_tour\":true,\"shipped_filename\":\"boost_course_view.json\",\"shipped_version\":1}","version":"2016120501","steps":[{"title":"tour2_title_welcome,tool_usertours","content":"tour2_content_welcome,tool_usertours","targettype":"2","targetvalue":"","sortorder":"0","configdata":"{}"},{"title":"tour2_title_customisation,tool_usertours","content":"tour2_content_customisation,tool_usertours","targettype":"0","targetvalue":"body:not(.editing) #page-header .card-block","sortorder":"1","configdata":"{}"},{"title":"tour2_title_navigation,tool_usertours","content":"tour2_content_navigation,tool_usertours","targettype":"0","targetvalue":"[data-region=\"drawer-toggle\"] button[data-action=\"toggle-drawer\"]","sortorder":"2","configdata":"{}"},{"title":"tour2_title_opendrawer,tool_usertours","content":"tour2_content_opendrawer,tool_usertours","targettype":"0","targetvalue":"body:not(.drawer-open-left) [data-region=\"drawer-toggle\"] button[data-action=\"toggle-drawer\"]","sortorder":"3","configdata":"{}"},{"title":"tour2_title_participants,tool_usertours","content":"tour2_content_participants,tool_usertours","targettype":"0","targetvalue":"body.drawer-open-left [data-region=\"drawer\"] [data-key=\"participants\"]","sortorder":"4","configdata":"{\"placement\":\"bottom\",\"backdrop\":\"0\"}"},{"title":"tour2_title_addblock,tool_usertours","content":"tour2_content_addblock,tool_usertours","targettype":"0","targetvalue":"body.drawer-open-left:not(.editing) [data-region=\"drawer\"]","sortorder":"5","configdata":"{\"placement\":\"right\",\"orphan\":\"0\",\"backdrop\":\"0\",\"reflex\":\"0\"}"},{"title":"tour2_title_addingblocks,tool_usertours","content":"tour2_content_addingblocks,tool_usertours","targettype":"0","targetvalue":"body.drawer-open-left.editing [data-region=\"drawer\"] [data-key=\"addblock\"]","sortorder":"6","configdata":"{\"backdrop\":\"0\",\"placement\":\"top\"}"},{"title":"tour2_title_end,tool_usertours","content":"tour2_content_end,tool_usertours","targettype":"2","targetvalue":"","sortorder":"7","configdata":"{}"}]}
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016102001; // The current module version (Date: YYYYMMDDXX).
$plugin->requires = 2016052300; // Requires this Moodle version.
$plugin->version = 2016120501; // The current module version (Date: YYYYMMDDXX).
$plugin->requires = 2016112900; // Requires this Moodle version.
$plugin->component = 'tool_usertours'; // Full name of the plugin (used for diagnostics).
+2 -2
View File
@@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'tool_xmldb'; // Full name of the plugin (used for diagnostics)
+3
View File
@@ -55,5 +55,8 @@ function xmldb_auth_cas_upgrade($oldversion) {
// Moodle v3.1.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3 -3
View File
@@ -26,8 +26,8 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'auth_cas'; // Full name of the plugin (used for diagnostics)
$plugin->dependencies = array('auth_ldap' => 2016051900);
$plugin->dependencies = array('auth_ldap' => 2016112900);
+1
View File
@@ -151,6 +151,7 @@ class login implements renderable, templatable {
$data->rememberusername = $this->rememberusername;
$data->passwordautocomplete = $this->passwordautocomplete;
$data->signupurl = $this->signupurl->out(false);
$data->username = $this->username;
return $data;
}
+21 -17
View File
@@ -301,18 +301,24 @@ class auth_plugin_db extends auth_plugin_base {
// Find obsolete users.
if (count($userlist)) {
$remove_users = array();
// All the drivers can cope with chunks of 10,000. See line 4491 of lib/dml/tests/dml_est.php
$userlistchunks = array_chunk($userlist , 10000);
foreach($userlistchunks as $userlistchunk) {
list($notin_sql, $params) = $DB->get_in_or_equal($userlistchunk, SQL_PARAMS_NAMED, 'u', false);
$params['authtype'] = $this->authtype;
$sql = "SELECT u.id, u.username
$removeusers = array();
$params['authtype'] = $this->authtype;
$sql = "SELECT u.id, u.username
FROM {user} u
WHERE u.auth=:authtype AND u.deleted=0 AND u.mnethostid=:mnethostid $suspendselect AND u.username $notin_sql";
$params['mnethostid'] = $CFG->mnet_localhost_id;
$remove_users = $remove_users + $DB->get_records_sql($sql, $params);
WHERE u.auth=:authtype
AND u.deleted=0
AND u.mnethostid=:mnethostid
$suspendselect";
$params['mnethostid'] = $CFG->mnet_localhost_id;
$internalusersrs = $DB->get_recordset_sql($sql, $params);
$usernamelist = array_flip($userlist);
foreach ($internalusersrs as $internaluser) {
if (!array_key_exists($internaluser->username, $usernamelist)) {
$removeusers[] = $internaluser;
}
}
$internalusersrs->close();
} else {
$sql = "SELECT u.id, u.username
FROM {user} u
@@ -320,13 +326,13 @@ class auth_plugin_db extends auth_plugin_base {
$params = array();
$params['authtype'] = $this->authtype;
$params['mnethostid'] = $CFG->mnet_localhost_id;
$remove_users = $DB->get_records_sql($sql, $params);
$removeusers = $DB->get_records_sql($sql, $params);
}
if (!empty($remove_users)) {
$trace->output(get_string('auth_dbuserstoremove','auth_db', count($remove_users)));
if (!empty($removeusers)) {
$trace->output(get_string('auth_dbuserstoremove', 'auth_db', count($removeusers)));
foreach ($remove_users as $user) {
foreach ($removeusers as $user) {
if ($this->config->removeuser == AUTH_REMOVEUSER_FULLDELETE) {
delete_user($user);
$trace->output(get_string('auth_dbdeleteuser', 'auth_db', array('name'=>$user->username, 'id'=>$user->id)), 1);
@@ -339,7 +345,7 @@ class auth_plugin_db extends auth_plugin_base {
}
}
}
unset($remove_users);
unset($removeusers);
}
if (!count($userlist)) {
@@ -933,5 +939,3 @@ class auth_plugin_db extends auth_plugin_base {
return core_user::clean_data($user);
}
}
+55
View File
@@ -31,6 +31,9 @@ class auth_db_testcase extends advanced_testcase {
/** @var string Original error log */
protected $oldlog;
/** @var int The amount of users to create for the large user set deletion test */
protected $largedeletionsetsize = 128;
protected function init_auth_database() {
global $DB, $CFG;
require_once("$CFG->dirroot/auth/db/auth.php");
@@ -444,4 +447,56 @@ class auth_db_testcase extends advanced_testcase {
$this->cleanup_auth_database();
}
/**
* Testing the deletion of a user when there are many users in the external DB.
*/
public function test_deleting_with_many_users() {
global $DB;
$this->resetAfterTest(true);
$this->preventResetByRollback();
$this->init_auth_database();
$auth = get_auth_plugin('db');
$auth->db_init();
// Set to delete from moodle when missing from DB.
set_config('removeuser', AUTH_REMOVEUSER_FULLDELETE, 'auth/db');
$auth->config->removeuser = AUTH_REMOVEUSER_FULLDELETE;
// Create users.
$users = [];
for ($i = 0; $i < $this->largedeletionsetsize; $i++) {
$user = (object)array('username' => "u$i", 'name' => "u$i", 'pass' => 'heslo', 'email' => "u$i@example.com");
$user->id = $DB->insert_record('auth_db_users', $user);
$users[] = $user;
}
// Sync to moodle.
$trace = new null_progress_trace();
$auth->sync_users($trace, true);
// Check user is there.
$user = array_shift($users);
$moodleuser = $DB->get_record('user', array('email' => $user->email, 'auth' => 'db'));
$this->assertNotNull($moodleuser);
$this->assertEquals($user->username, $moodleuser->username);
// Delete a user.
$DB->delete_records('auth_db_users', array('id' => $user->id));
// Sync again.
$auth->sync_users($trace, true);
// Check user is no longer there.
$moodleuser = $DB->get_record('user', array('id' => $moodleuser->id));
$this->assertFalse($auth->user_login($user->username, 'heslo'));
$this->assertEquals(1, $moodleuser->deleted);
// Make sure it was the only user deleted.
$numberdeleted = $DB->count_records('user', array('deleted' => 1, 'auth' => 'db'));
$this->assertEquals(1, $numberdeleted);
$this->cleanup_auth_database();
}
}
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016051900; // Requires this Moodle version
$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2016112900; // Requires this Moodle version
$plugin->component = 'auth_db'; // Full name of the plugin (used for diagnostics)

Some files were not shown because too many files have changed in this diff Show More