Compare commits

...

2888 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 5d35d7b884 Moodle release 3.0.2 2016-01-09 00:49:58 +01:00
Dan Poltawski 7817f82c15 weekly release 3.0.1+ 2016-01-07 08:32:46 +00:00
Dan Poltawski cabf0dbd40 Merge branch 'install_30_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_30_STABLE 2016-01-07 08:32:44 +00:00
AMOS bot cd326efb57 Automatically generated installer lang files 2016-01-07 00:04:35 +08:00
Rajesh Taneja 39f2c0f711 MDL-52614 mod_workshop: right align for dir-rtl only 2016-01-06 13:38:15 +08:00
AMOS bot 02dae40716 Automatically generated installer lang files 2016-01-06 00:04:05 +08:00
Dan Poltawski 408beb96d6 Merge branch 'MDL-52503_30' of git://github.com/dmonllao/moodle into MOODLE_30_STABLE 2016-01-05 15:30:55 +00:00
Juan Leyva c4e2c3ba9b MDL-52072 enrol: Fix course visibility checks in external functions 2016-01-05 10:31:26 +00:00
David Monllao 4d59af4afa MDL-52503 mod_assign: Removing session cache
Replaced with a global $SESSION var, deferring cleanup to session
destroy.
2016-01-05 17:50:58 +08:00
Andrew Nicols 695ecfc67d Merge branch 'wip-mdl-51881-m30' of https://github.com/rajeshtaneja/moodle into MOODLE_30_STABLE 2016-01-05 14:09:22 +08:00
Rajesh Taneja e02155048a MDL-51881 behat: updated composer pointing to new tag 2016-01-05 14:02:39 +08:00
Rajesh Taneja 0177319237 MDL-51881 behat: Set navbar to be absolutely positioned
All behat drivers are now replicating human behavior
so when the browser scrolls something into view it doesn't account
for fixed positioned elements that end up obscuring the item thus
leading to errors that could be avoided by scrolling an additional amount.
2016-01-05 14:02:39 +08:00
Andrew Nicols e5f8c4d2e3 Merge branch 'MDL-52078-30' of git://github.com/cameron1729/moodle into MOODLE_30_STABLE 2016-01-05 13:55:29 +08:00
Cameron Ball edbb4f6e53 MDL-52078 gradebook: Behat tests for hidden grade items. 2016-01-05 13:49:28 +08:00
Peter Miller 07b51eebf3 MDL-52078 gradebook: Stop totals including hidden items.
This patch fixes a problem where the course and user reports, when viewed by
a student, were incorrectly including hidden grade items in the course totals,
making the percentages lower than they should be.
2016-01-05 13:49:28 +08:00
Nadav Kavalerchik 5240013d21 MDL-52625 Badges: Right align manage badges table content, in RTL mode. 2016-01-05 08:12:06 +08:00
Nadav Kavalerchik a0984c46a1 MDL-52614 Workshop: Right align user's picture on Assessed submission. 2016-01-04 18:14:00 +00:00
Dan Poltawski f361d3e20f Merge branch 'MDL-52645-30-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_30_STABLE 2016-01-04 15:32:05 +00:00
Dan Poltawski b238a8658f Merge branch 'MDL-52576_user_profile_30' of https://github.com/BenKelada/moodle into MOODLE_30_STABLE 2016-01-04 15:06:18 +00:00
Dan Poltawski 4513906883 Merge branch 'wip-mdl-52605-m30' of https://github.com/rajeshtaneja/moodle into MOODLE_30_STABLE 2016-01-04 13:41:57 +00:00
Dan Poltawski 1052567d7e Merge branch 'MDL-52638_m30v2' of https://github.com/sbourget/moodle into MOODLE_30_STABLE 2016-01-04 11:36:38 +00:00
Helen Foster 1f43996636 MDL-52645 lang: Merge English strings from the en_fix language pack 2016-01-04 11:37:51 +01:00
Andrew Nicols 0d18a2c74d Merge branch 'MDL-49566_m30' of git://github.com/markn86/moodle into MOODLE_30_STABLE 2016-01-04 13:54:18 +08:00
Dan Poltawski 3302964844 MDL-52552 course management: insufficient cleaning of search output 2016-01-04 10:14:16 +08:00
Stephen Bourget 70d71d3af7 MDL-52638 activity_results: Improve Behat tests 2016-01-03 21:02:35 -05:00
Andrew Nicols 0b841c0c72 Merge branch 'MDL-51445_m30v1' of https://github.com/sbourget/moodle into MOODLE_30_STABLE 2016-01-04 09:21:50 +08:00
Ben Kelada bc66f3d7b2 MDL-52576 forum: fix user profile picture in external service 2016-01-04 11:38:15 +11:00
Mark Nielsen f3008d2a08 MDL-52605 phpunit: Improve get_message_processors reset 2016-01-04 07:52:49 +08:00
Mark Nielsen 7de2aa1a95 MDL-52605 phpunit: Prevent querying database metadata 2016-01-04 07:52:49 +08:00
Rajesh Taneja 69b2e68d27 MDL-52605 phpunit: Check file only if needed 2016-01-04 07:52:49 +08:00
Rajesh Taneja b7327c6c19 MDL-52605 phpunit: Keep track of initial reset sequence 2016-01-04 07:52:48 +08:00
AMOS bot f06196976a Automatically generated installer lang files 2016-01-04 00:04:29 +08:00
Stephen Bourget 44f9a36089 MDL-51445 Chat: Fix broken profile links 2015-12-31 11:08:37 -05:00
Dan Poltawski d92624e11f weekly release 3.0.1+ 2015-12-31 08:16:47 +00:00
Dan Poltawski 2264a0454c Merge branch 'install_30_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_30_STABLE 2015-12-31 08:16:45 +00:00
David Monllao 0944647413 MDL-52347 format_social: Replicate wait between new discussions 2015-12-31 13:22:11 +08:00
AMOS bot 8917f657a1 Automatically generated installer lang files 2015-12-31 00:04:00 +08:00
Dan Poltawski 41d53f9bd5 Merge branch 'MDL-50357_30' of git://github.com/markn86/moodle into MOODLE_30_STABLE 2015-12-30 09:19:35 +00:00
AMOS bot 793d034c4a Automatically generated installer lang files 2015-12-30 00:04:07 +08:00
Michael Aherne 45b9bcd9a0 MDL-52439 assign: correct get_user_submission() phpdoc 2015-12-29 10:38:22 +00:00
Dan Poltawski f45a62e469 Merge branch 'MDL-52275_m30' of git://github.com/markn86/moodle into MOODLE_30_STABLE 2015-12-29 10:04:47 +00:00
Mark Nelson 650d4000cb MDL-49566 core: used reflection in unit tests
Also split the tests into multiple functions for each scenario.
2015-12-29 17:44:35 +08:00
Ankit Agarwal a411fd9ad7 MDL-49566 core: Write unittests for MDL-45898 2015-12-29 17:43:51 +08:00
Ankit Agarwal 9c35910821 MDL-49566 myprofile: Fix bugs in myprofilelib 2015-12-29 17:43:02 +08:00
Ankit Agarwal 47e5ed8e30 MDL-49566 notes: Notes link should not show up for guests 2015-12-29 17:43:02 +08:00
David Monllao b2e6bee53e Merge branch 'MDL-51889_m30' of git://github.com/markn86/moodle into MOODLE_30_STABLE 2015-12-29 15:35:38 +08:00
Eugene Venter e217f4914a MDL-52530 unittest: more robust capability assignments for guest
for core_files_file_storage_testcase and core_repositorylib_testcase
2015-12-29 14:06:32 +08:00
David Monllao 1ba350d146 Merge branch 'wip-mdl-52347-m30' of git://github.com/rajeshtaneja/moodle into MOODLE_30_STABLE 2015-12-29 14:03:22 +08:00
David Monllao ec921c9d7b Merge branch 'MDL-52591-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-29 13:47:23 +08:00
Mark Nelson ec3be4584c MDL-51889 enrol_guest: always check password before re-enabling 2015-12-29 13:43:32 +08:00
David Monllao e8f73b9edd MDL-52597 mod_forum: Remove duplicated query 2015-12-29 10:04:10 +08:00
David Monllao e9716eda2f Merge branch 'MDL-52597-30' of git://github.com/andrewnicols/moodle into MOODLE_30_STABLE 2015-12-29 10:01:32 +08:00
AMOS bot df8d12b685 Automatically generated installer lang files 2015-12-29 00:04:08 +08:00
AMOS bot 1c529d9897 Automatically generated installer lang files 2015-12-28 00:04:13 +08:00
AMOS bot 4ac2ded44b Automatically generated installer lang files 2015-12-25 00:04:15 +08:00
Marina Glancy f11ab3b3ed MDL-52347 behat: fix random failures on fast computer 2015-12-24 14:17:52 +08:00
Rajesh Taneja 471b5b73a3 MDL-52606 behat: Added time delay to avoid random fails
If attempts are created at same timestamp, then results are
not same, and lesson module finds that attmpt was in progress.
To avoid this problem, attempts should be created at different
timestamp.
2015-12-24 14:02:16 +08:00
Dan Poltawski ebc7b73150 weekly release 3.0.1+ 2015-12-23 11:36:03 +00:00
Dan Poltawski a06ed7e888 Merge branch 'install_30_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_30_STABLE 2015-12-23 11:36:00 +00:00
Dan Poltawski 92a25cff43 Merge branch 'MDL-52595-30' of git://github.com/andrewnicols/moodle into MOODLE_30_STABLE 2015-12-23 11:29:09 +00:00
Mark Nelson e5549f4f16 MDL-52275 core: fixed grade-to-pass being overwritten
Thanks goes to W.J. Roes for the patch.
2015-12-23 16:51:26 +08:00
Andrew Nicols 0d4fda7843 MDL-52597 mod_forum: Remove sleep from tests 2015-12-23 14:26:57 +08:00
Andrew Nicols f083859e96 MDL-52595 tests: Disable xdebug for travis runs 2015-12-23 13:15:25 +08:00
Andrew Nicols 29d83deae9 Merge branch 'MDL-52355-30' of git://github.com/junpataleta/moodle into MOODLE_30_STABLE 2015-12-23 10:05:20 +08:00
Jun Pataleta 2217e2fea9 MDL-52355 mod_data: Added Gregorian hour and minute values 2015-12-23 09:56:46 +08:00
Shamim Rezaie 68927e83e5 MDL-52355 mod_data: Make date field respect the calendar type in use
Updated the date subplugin to consider that the input date element
values might be for any calendar type and not just the Gregorian
calendar.
2015-12-23 09:56:46 +08:00
Shamim Rezaie 819020ac57 MDL-52354 select_time: Make select_time respect the set calendar type
The select_time method updated to display form elements in accordance
to the calendar type plugin that is in use.
2015-12-23 09:56:46 +08:00
Dan Poltawski 1e5a066247 MDL-52591 grunt: make shifter task respect --no-color 2015-12-22 18:37:48 +00:00
Eloy Lafuente (stronk7) 24a7fc2f07 Merge branch 'MDL-49743-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-22 17:14:36 +01:00
AMOS bot 03f0b4fc14 Automatically generated installer lang files 2015-12-23 00:04:14 +08:00
Dan Poltawski 17af025b52 Merge branch 'm30_MDL-51916' of https://github.com/danmarsden/moodle into MOODLE_30_STABLE 2015-12-22 13:17:54 +00:00
Dan Poltawski ac56855bbc Merge branch 'MDL-52365_30_new' of git://github.com/mkassaei/moodle into MOODLE_30_STABLE 2015-12-22 13:14:48 +00:00
Eloy Lafuente (stronk7) 6f6ef56253 Merge branch 'MDL-51719-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-22 13:13:58 +01:00
M Kassaei 79d202c36d MDL-52365 qtype ddwtos & ddimageortext: 20 drag items IE11/Edge 2015-12-22 12:13:23 +00:00
Dan Poltawski 962aca6ad6 MDL-52017 enrol_self: fix incorrect empty statement
Ironically this was detected by causing a syntax error on php54
2015-12-22 09:52:10 +00:00
David Monllao 7473e54a3d Merge branch 'MDL-52017_m30' of git://github.com/markn86/moodle into MOODLE_30_STABLE 2015-12-22 16:37:03 +08:00
Andrew Nicols 105370c407 Merge branch 'MDL-52250-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-22 15:06:58 +08:00
Andrew Nicols 869ffde772 Merge branch 'MDL-23128-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-22 13:11:46 +08:00
Andrew Nicols 73d2934ba5 Merge branch 'MDL-52363_30' of git://github.com/mkassaei/moodle into MOODLE_30_STABLE 2015-12-22 12:34:21 +08:00
David Monllao 74a51dd48a Merge branch 'wip-mdl-52376-m30' of git://github.com/rajeshtaneja/moodle into MOODLE_30_STABLE 2015-12-22 11:25:01 +08:00
David Monllao 9005a3bb96 Merge branch 'MDL-52558-m30' of git://github.com/sammarshallou/moodle into MOODLE_30_STABLE 2015-12-22 11:16:53 +08:00
Rajesh Taneja 6fccd1fe35 MDL-52427 behat: Fixed question selectors
As class is changed, we need to convert selector
to check if class is contained, rather then checking
selecting with specific class.
2015-12-22 10:43:18 +08:00
Andrew Nicols ea78dbdf50 Merge branch 'MDL-52334_30' of git://github.com/aolley/moodle into MOODLE_30_STABLE 2015-12-22 09:14:34 +08:00
Dan Poltawski db3cdb6d25 Merge branch 'MDL-52380-30' of git://github.com/junpataleta/moodle into MOODLE_30_STABLE 2015-12-21 16:47:21 +00:00
Dan Poltawski ccc297f01a Merge branch 'MDL-52354-30' of git://github.com/junpataleta/moodle into MOODLE_30_STABLE 2015-12-21 16:44:25 +00:00
Dan Poltawski 8dd7e73294 Merge branch 'MDL-52427_30' of git://github.com/timhunt/moodle into MOODLE_30_STABLE 2015-12-21 13:27:40 +00:00
Dan Poltawski f2087a7fcb Merge branch 'MDL-52402_30' of git://github.com/mr-russ/moodle into MOODLE_30_STABLE 2015-12-21 12:46:20 +00:00
Dan Poltawski b1fe9348db Merge branch 'MDL-52455_30' of git://github.com/timhunt/moodle into MOODLE_30_STABLE 2015-12-21 12:43:53 +00:00
Dan Poltawski c3183cb6fe Merge branch 'MDL-52542_30' of git://github.com/timhunt/moodle into MOODLE_30_STABLE 2015-12-21 11:07:23 +00:00
Mark Nelson d47064c4b2 MDL-50357 core_group: tidy up the function groups_delete_group_members 2015-12-21 17:41:12 +08:00
David Monllao 66a28fbaa4 Merge branch 'MDL-51257-30' of git://github.com/cameron1729/moodle into MOODLE_30_STABLE 2015-12-21 17:33:05 +08:00
David Monllao d5d7d57d6d Merge branch 'MDL-52429-30' of git://github.com/jleyva/moodle into MOODLE_30_STABLE 2015-12-21 17:17:10 +08:00
David Monllao db3bcaba14 Merge branch 'MDL-49758-30' of git://github.com/StudiUM/moodle into MOODLE_30_STABLE 2015-12-21 17:06:04 +08:00
David Monllao 145467fadf MDL-52226 tests: Fix behat phpunit naming conflict 2015-12-21 08:32:06 +00:00
David Monllao 07021369d7 Merge branch 'MDL-52226-m30' of git://github.com/sammarshallou/moodle into MOODLE_30_STABLE 2015-12-21 14:42:47 +08:00
Andrew Nicols 836172f366 Merge branch 'm30_MDL-50972' of https://github.com/danmarsden/moodle into MOODLE_30_STABLE 2015-12-21 14:03:47 +08:00
Andrew Nicols 2c3d0c3b6f Merge branch 'MDL-52457-30' of git://github.com/jleyva/moodle into MOODLE_30_STABLE 2015-12-21 12:10:58 +08:00
David Monllao 1388dece19 Merge branch 'MDL-47106_30' of git://github.com/timhunt/moodle into MOODLE_30_STABLE 2015-12-21 11:33:09 +08:00
David Monllao 41ec284720 Merge branch 'MDL-52523_30' of git://github.com/timhunt/moodle into MOODLE_30_STABLE 2015-12-21 10:48:06 +08:00
Eloy Lafuente (stronk7) 62e799ac84 Moodle release 3.0.1 2015-12-19 19:03:16 +01:00
AMOS bot 2945fe403b Automatically generated installer lang files 2015-12-20 00:05:24 +08:00
Dan Poltawski 6af9a4e21c weekly release 3.0+ 2015-12-18 12:27:09 +00:00
Dan Poltawski 86c5e56baf Merge branch 'install_30_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_30_STABLE 2015-12-18 12:27:07 +00:00
sam marshall bde99c5a4b MDL-52558 Data generator: enrol_user should allow shortname 2015-12-18 11:01:30 +00:00
Dan Poltawski abde041907 Merge branch 'MDL-52553_30' of git://github.com/dmonllao/moodle into MOODLE_30_STABLE 2015-12-18 10:56:31 +00:00
David Monllao bba453b9ed MDL-52553 question: Adding missing required constants 2015-12-18 14:43:31 +08:00
Shamim Rezaie 8abf3701a6 MDL-52380 mod_forum: Non-Gregorian dates in forum advance search
Convert the fromdate and todate date parts to Gregorian before passing them to make_timestamp
2015-12-17 18:04:16 -06:00
Shamim Rezaie d607b840b8 MDL-52354 select_time: Make select_time respect the set calendar type
The select_time method updated to display form elements in accordance
to the calendar type plugin that is in use.
2015-12-17 18:04:16 -06:00
Shamim Rezaie c65d2ccb13 MDL-52354 select_time: Make select_time respect the set calendar type
The select_time method updated to display form elements in accordance
to the calendar type plugin that is in use.
2015-12-17 15:49:20 -06:00
Eloy Lafuente (stronk7) 9149eaae18 Merge branch 'wip-mdl-52540-m30' of https://github.com/rajeshtaneja/moodle into MOODLE_30_STABLE 2015-12-17 10:18:58 +01:00
Tim Hunt b35e24e254 MDL-52542 qtype_multianswer: field names must match string placeholders 2015-12-17 08:36:34 +00:00
Rajesh Taneja 8a0c8192c8 MDL-52540 behat: mouse events are not handled well with phantomjs 2015-12-17 12:06:06 +08:00
Dan Marsden f5f86a68ac MDL-51916 mod_scorm: allow html5 scorm content fullscreen 2015-12-16 20:28:06 +13:00
Tim Hunt 57b1d3ea85 MDL-52523 backup of subplugins: add missing global 2015-12-15 16:00:23 +00:00
M Kassaei 9611df0f92 MDL-52363 qtype_ddimageortext: Incorrectly sized drag item 2015-12-15 11:21:29 +00:00
Marina Glancy 74c19577c9 MDL-52286 core: mute erros in adodb destructor 2015-12-15 13:11:45 +08:00
AMOS bot c7231d5235 Automatically generated installer lang files 2015-12-15 00:04:13 +08:00
Dan Poltawski 3cf111c8d3 Merge branch 'MDL-52451-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-14 10:46:33 +00:00
Dan Poltawski e0518a0940 Merge branch 'wip-MDL-52286-m30' of https://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-14 10:24:50 +00:00
Marina Glancy b000642c03 MDL-52286 core: corrected version of adodb to 5.20.1 2015-12-14 18:12:17 +08:00
Marina Glancy aae5800486 MDL-52286 core: several fixes to ADOdb 2015-12-14 18:11:48 +08:00
Dan Poltawski 9ef2475cdd Merge branch 'MDL-52499-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-14 09:44:19 +00:00
Dan Poltawski 8513fdd0ba Merge branch 'MDL-52487_30' of git://github.com/dmonllao/moodle into MOODLE_30_STABLE 2015-12-14 09:23:14 +00:00
David Monllao 19da0bad13 MDL-52487 rss: PHP 7 compatible error supression
PHP5 used to update error_reporting to 0 on functions called with the
suppress errors operator (@). In PHP7 it is not updated.

Credit to Rajesh Taneja
2015-12-14 15:29:34 +08:00
Marina Glancy ff64873ece MDL-52499 core: link to php7 documentation 2015-12-14 12:56:34 +08:00
Marina Glancy 7bd6de4822 MDL-52451 forms: replace deprecated function 2015-12-14 12:43:54 +08:00
Dan Marsden eb127e0b21 MDL-50972 mod_scorm: set autocommit as boolean
var currently passed as string so not evaluated correctly
2015-12-14 14:26:55 +13:00
Matthew Pruett 9797983c6f MDL-47106 quiz 'secure' window: Finish review link did not work 2015-12-13 22:08:53 +00:00
Amanda Doughty 6767a5d631 MDL-52455 quiz: doesn't include all user fields required by messaging 2015-12-13 20:48:52 +00:00
Tim Hunt 1507697d9f MDL-52427 questions: all parts of a Q should be clearfix
Otherwise large floated images may overflow.
2015-12-13 20:32:13 +00:00
Jean-Philippe Gaudreau daf7e2a478 MDL-49758 mod_quiz: Fix require on completionlib.php
Credits: Gordon Bateson
2015-12-11 13:01:56 -05:00
Dan Poltawski 771e49de0c Merge branch 'wip-MDL-52286-m30' of https://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-11 09:16:53 +00:00
David Monllao c19896ff95 Merge branch 'MDL-52472-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-11 16:03:28 +08:00
David Monllao 68494c8ef2 Merge branch 'MDL-52361-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-11 15:20:48 +08:00
David Monllao 0a44e7d8cc MDL-51784 general: Adding missing php4 style constructors
Adding them to maintain backwards compatibility.
2015-12-11 14:56:31 +08:00
Marina Glancy 345f365555 MDL-51784 various: use __construct() for PHP7 compatibility 2015-12-11 13:53:59 +08:00
David Monllao 8079f3343f MDL-52471 setuplib: Removing debugging message from stables 2015-12-11 12:02:00 +08:00
David Monllao 005f7c8b24 Merge branch 'MDL-52471-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-11 11:53:37 +08:00
David Monllao a6f084c9c5 Merge branch 'wip-MDL-52475-m30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-11 11:24:35 +08:00
Tony Levi 0e7a5b346f MDL-52475 core: workaround PHP7 bug #70110 with preg_match 2015-12-11 08:30:37 +08:00
Dan Poltawski 8640c059d8 MDL-52471 tests: simplify setup code
Test code was not using the generator for simple enrollments, couldn't
help to fix when noticed.
2015-12-10 18:00:41 +00:00
Dan Poltawski a3f65f8b5b MDL-52471 completion: fix deprecated use of 'object'
And add a unit test covering completion_can_view_data() without
full course object passed.
2015-12-10 18:00:40 +00:00
Dan Poltawski 88cece4bd7 MDL-52471 quiz: remove broken code question_print_comment_fields() 2015-12-10 18:00:40 +00:00
Dan Poltawski ddfebd633e MDL-52471 setuplib: depreciate class object properly
Previously was marked depricated but not throwwing debugging
2015-12-10 17:57:47 +00:00
Dan Poltawski ac4baac8b9 MDL-52472 travis: remove mongo/memcached testing
At the moment the extensions aren't available in php7 env:
https://github.com/travis-ci/travis-ci/issues/5256

And really its probably not worth the effort/buildtime to
enable them IMO so simpler to just disable.
2015-12-10 17:38:56 +00:00
Dan Poltawski a0ef20cfe4 MDL-52472 travis: enable php7
Relegate 5.6 runs (following the principle of highest and lowest version
only, to conserve travis resources and get faster test completions)
2015-12-10 17:38:55 +00:00
Eloy Lafuente (stronk7) e819a58b6e Merge branch 'MDL-52284-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-10 16:16:09 +01:00
Dan Poltawski 2adbbcac0a Merge branch 'MDL-52333_30' of git://github.com/dmonllao/moodle into MOODLE_30_STABLE 2015-12-10 11:03:57 +00:00
Dan Poltawski 4e5e185f80 MDL-52285 auth: Add constructors for backwards compat
These are very unlikely to be used but just to be safe..
2015-12-10 10:36:20 +00:00
Dan Poltawski 68cbd0599d Merge branch 'MDL-52285-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-10 10:36:14 +00:00
David Monllao 2134746dea Merge branch 'MDL-52336-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-10 17:40:10 +08:00
David Monllao 4d56fe7d60 Merge branch 'MDL-52081-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-10 17:15:54 +08:00
David Monllao 1c4bc77d44 MDL-52333: qtype_calculated: Adding division by zero test 2015-12-10 16:40:16 +08:00
Tony Levi bc91b91ab1 MDL-52333 qtype: PHP7-compatibility in calculate_raw()
Code also modified by Tim Hunt
2015-12-10 16:40:08 +08:00
David Monllao 9887a4cbae Merge branch 'MDL-52335-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-10 15:48:28 +08:00
David Monllao 7d8fb1962e Merge branch 'MDL-52438-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-10 15:32:43 +08:00
David Monllao 07fbf4515c Merge branch 'MDL-52312_m30' of git://github.com/markn86/moodle into MOODLE_30_STABLE 2015-12-10 13:56:43 +08:00
Marina Glancy e81e12cd79 MDL-52285 auth: use __construct() for constructors 2015-12-10 13:51:11 +08:00
Marina Glancy f318ef32bc MDL-52081 forms: indicate usage of grandparent constructor 2015-12-10 13:45:18 +08:00
Marina Glancy 696f3dcc83 MDL-52081 forms: Use __construct() for constructors 2015-12-10 13:45:16 +08:00
Marina Glancy 804a5f59ce MDL-52284 core: PHP7 engine errors have type Throwable 2015-12-10 10:50:12 +08:00
Tony Levi 3f45d8fece MDL-52284 core: compatibility with Exception/Throwable changes in PHP7 2015-12-10 10:50:12 +08:00
AMOS bot dfe989c826 Automatically generated installer lang files 2015-12-10 00:04:26 +08:00
Juan Leyva ed6277f9f7 MDL-52457 mod_scorm: Fix return types definitions in SCORM WS
Incorrect return types definitions in external function
mod_scorm_external::get_scorm_by_courses (hidetoc, displayattemptstatus
and skipview)
2015-12-09 14:07:10 +01:00
sam marshall 48db0e02cd MDL-52226 Forms: max_input_vars problems with advanced checkbox 2015-12-09 12:17:13 +00:00
Dan Poltawski 6ace0f59ae weekly release 3.0+ 2015-12-09 12:09:37 +00:00
Dan Poltawski fbf528eb95 Merge branch 'install_30_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_30_STABLE 2015-12-09 12:09:36 +00:00
Eloy Lafuente (stronk7) 220ea7cd09 Merge branch 'MDL-51483_30' of https://github.com/jinhofer/moodle into MOODLE_30_STABLE 2015-12-09 02:22:39 +01:00
Adam Olley 7f1c642112 MDL-52334 enrol_database: Add missing filter to user_enrolment lookup
Without the user filter, the left join to the user enrolment table
results in a much larger set of data being returned than before
MDL-28420. Which makes login time for users in many busy courses much
worse than before (3x worse on average, observed upto 40x).
2015-12-09 09:26:33 +10:30
Dan Poltawski 6530c22a11 Merge branch 'MDL-51097_m30v1' of https://github.com/sbourget/moodle into MOODLE_30_STABLE 2015-12-08 10:07:46 +00:00
Dan Poltawski ab37a1c815 Merge branch 'MDL-51411_30' of https://github.com/andrewhancox/moodle into MOODLE_30_STABLE 2015-12-08 09:05:47 +00:00
Marina Glancy 75b13bba36 MDL-52438 core: allow Moodle 3.0 to be used with PHP7 2015-12-08 12:54:54 +08:00
Marina Glancy 2cebc825e9 MDL-52361 core: patch Horde library for PHP7 compatibility 2015-12-08 12:48:21 +08:00
Marina Glancy ffe7dd3769 MDL-52336 core: patch PHPExcel for PHP7 compatibility 2015-12-08 12:14:15 +08:00
Marina Glancy f41205a84c MDL-52286 core: update ADODB library to 5.21 2015-12-08 12:04:05 +08:00
Mark Nelson 3046ae85cc MDL-52312 assignfeedback_editpdf: changes to files after FPDI update
1) Change the fpdi_bridge class so that it extends the pdf class,
rather than the TCPDF class.
2) Updated the editpdf/fpdi/readme_moodle.txt file to document the changes.
3) Updated the editpdf/thirdpartylibs.xml to reflect the update to the
FPDI library.
2015-12-08 11:41:22 +08:00
Mark Nelson 536892fd4c MDL-52312 assignfeedback_editpdf: updated the FPDI libary to 1.6.1 2015-12-08 11:41:22 +08:00
Marina Glancy 2cae0d3b15 MDL-52193 questions: add missing require_once 2015-12-07 15:38:02 +00:00
jinhofer bdb1cab348 MDL-51483 lib/moodlelib.php: Added conditional checks to shorten_text 2015-12-07 09:21:26 -06:00
Juan Leyva d08bcc4ded MDL-52429 mod_scorm: Fix SCORM completion checking in nested SCOs 2015-12-07 11:29:43 +01:00
Dan Poltawski 2f1473ac6d Merge branch 'MDL-50258_30' of git://github.com/dmonllao/moodle into MOODLE_30_STABLE 2015-12-07 09:04:39 +00:00
David Monllao 899f21fc26 Merge branch 'MDL-52204-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-07 16:35:09 +08:00
Dan Poltawski c60a3ef656 Merge branch 'MDL-52304_30' of https://github.com/dmonllao/moodle into MOODLE_30_STABLE 2015-12-07 08:21:35 +00:00
Dan Poltawski 8262d6133a MDL-52271 install: don't allow installer to be indexed
Following guidance from:
https://support.google.com/webmasters/answer/93710?hl=en
2015-12-07 15:42:47 +08:00
David Monllao e662941230 Merge branch 'MDL-52370-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-07 15:02:03 +08:00
Russell Smith 89feea07d3 MDL-52402 backup, quiz: Fix attempt token and add missing rule. 2015-12-05 10:11:36 +11:00
Russell Smith 9c2784ca30 MDL-52402 backup: Improve debugging output on failed log restores 2015-12-05 10:11:35 +11:00
Dan Poltawski e18b4b0918 MDL-51582 readme: update less building instructions
I forgot to update this after the changes in 490c5cabb4
2015-12-04 16:41:24 +00:00
Eloy Lafuente (stronk7) 14d8971cd6 Merge branch 'MDL-51582-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-04 17:15:20 +01:00
AMOS bot 7c8149d6af Automatically generated installer lang files 2015-12-05 00:04:37 +08:00
Dan Poltawski 096a908dbe MDL-52250 npm: shrinkwrap to lock down dependencies
We've tried various approaches to lock down our dependencies and they
have been flawed because dependencies in our included packages may not
be locked down and previous attempts to do that have not been correct.

With npm shrinkwrap we lock down versions so that any npm install will
always install the exact same versions for all developers - see:
https://docs.npmjs.com/cli/shrinkwrap

(This is a lot like composer.lock for those more fluent with composer)
2015-12-04 15:35:33 +00:00
Dan Poltawski 68dfa89fea MDL-52250 npm: remove uglify-js dependency/bump grunt-contrib-uglify
A) Remove direct dependency on uglify-js:

This dependency was added in MDL-50277, but it isn't quite correct, the
way npm installs dependencies means that grunt-contrib-uglify *could* use
'our' version if its satisifed. But does not *always* and especially does
not if the grunt-contrib-uglify requirement is higher than ours.

Long story short, in many cases this means that this is used:
 node_modules/grunt-contrib-uglify/node_modules/uglify-js
But this is not:
  node_modules/uglify-js

In MDL-50277 we thought we were making the version sticky, but in
reality we were just fixing previous problems by updating
grunt-contrib-uglify to a version which fixed a bug:

 https://github.com/gruntjs/grunt-contrib-uglify/issues/313

It seems the better solution will come with using npm shrinkwrap to lock
down depdencies.

B) Bump grunt-contrib-uglify to 0.11.0

This moves us to uglify-js ~2.6.0 - which doens't change any output
files.
2015-12-04 15:34:16 +00:00
Dan Poltawski e64751fb8a MDL-52204 grunt: update to grunt-contrib-jshint v0.11.3
This version of grunt-contrib-jshint itself uses a better fixed
requirement on "~2.8.0" rather than "^2.8.0" which was giving variable
results with some people updating to 2.9-rc1.

See also https://github.com/gruntjs/grunt-contrib-jshint/pull/219
2015-12-04 11:40:28 +00:00
Dan Poltawski 490c5cabb4 MDL-51582 grunt: task improvements
* Introduce the 'css' task - this will give us flexibility to do things
  in future rather than relying on the inbuilt 'less' task (e.g. sourcemap
  generating task which doesn't run by default)

* Introduce 'amd' task which runs only amd tasks

* Introduce 'js' task which runs all JS (amd/shifter) tasks

* Tweak the ordering so that slow shifter always runs last (useful for
  people like me who forget to specif the task)
2015-12-04 10:45:24 +00:00
Dan Poltawski 4269cac414 MDL-51582 css: built with new grunt task 2015-12-04 10:45:24 +00:00
Dan Poltawski cd319f3f2f MDL-51582 grunt: add less complilation support
Previously we were using recess to build bootstrap base as it was what
was used by the original project. But recess is no longer maintained.

Now we use grunt for building js, it makes sense to use it for less too.

(If you really don't want to use grunt, you almost certainly can just
use lessc -x as it uses the same less.js on backend).
2015-12-04 10:44:54 +00:00
Michael Aherne da14ce45dd MDL-52304 media: Allow full screen in Flash player 2015-12-04 10:06:52 +08:00
David Monllao 818f90abd3 MDL-50258 themes: Fix CSS source maps 2015-12-04 09:02:57 +08:00
Eloy Lafuente (stronk7) 13ce9a38a2 weekly release 3.0+ 2015-12-03 19:41:23 +01:00
Eloy Lafuente (stronk7) d5699018b0 Merge branch 'install_30_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_30_STABLE 2015-12-03 19:41:17 +01:00
Eloy Lafuente (stronk7) fbb8579c1a MDL-52141 backup: test restore_log_rule don't modify passed log anymore 2015-12-03 19:01:48 +01:00
David Monllao f248c81e5a Merge branch 'MDL-48004-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-03 19:01:47 +01:00
Andrew Nicols 7d05696b12 Merge branch 'wip-mdl-52357-m30' of https://github.com/rajeshtaneja/moodle into MOODLE_30_STABLE 2015-12-03 19:01:46 +01:00
David Monllao 716c7536cb Merge branch 'MDL-50710-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-12-03 19:01:45 +01:00
AMOS bot 4cdf94a602 Automatically generated installer lang files 2015-12-04 00:04:23 +08:00
Mark Nelson c9f2b241e0 MDL-52017 enrol_self: always check password before re-enabling 2015-12-03 19:26:56 +08:00
David Monllao 8dbe8449e0 Merge branch 'MDL-52260-30-2' of git://github.com/xow/moodle into MOODLE_30_STABLE 2015-12-03 11:53:13 +01:00
Eloy Lafuente (stronk7) 4841169211 Merge branch 'MDL-45364-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-12-03 11:53:12 +01:00
Dan Poltawski 3fe4b72c34 MDL-35982 behat: fix incorrectly backported test
Due to alterations with release/freeze, the lang string change
didn't get backported to 3.x, but the behat did.
2015-12-03 11:53:12 +01:00
Dan Poltawski 3c1e7a0759 MDL-52292 testing: block generator fix
Stop errors when no $options supplied
2015-12-03 11:53:11 +01:00
Dan Poltawski 98ad5c6191 Merge branch 'MDL-52292_30' of git://github.com/timhunt/moodle into MOODLE_30_STABLE 2015-12-03 11:53:10 +01:00
Dan Poltawski 0872bf3175 MDL-26935 behat: add coverage for role renaming in course 2015-12-03 11:53:10 +01:00
Russell Smith 6e8ca8a6ce MDL-52141 backup: Ensure we don't alter the log record when parsing it. 2015-12-03 11:53:09 +01:00
Dan Poltawski e2de9c6b6d Merge branch 'MDL-37308-30' of git://github.com/junpataleta/moodle into MOODLE_30_STABLE 2015-12-03 11:53:09 +01:00
Tony Levi 59b25acd22 MDL-51757 mod_scorm: Remove duplicate function param
convert invalid break calls to exceptions for PHP 7
2015-12-03 11:53:08 +01:00
Rajesh Taneja af145cdac1 MDL-52376 behat: Add 1 sec delay to ensure cron works
course completion record should be created at time
which is before the time cron is run. On fast machine
this both might be done at same time. So added 1 sec delay
2015-12-03 13:17:49 +08:00
Cameron Ball bf68d558af MDL-51257 messages: Improve message form.
- Add sudmit button
- Add formchangechecker
- Update behat tests
2015-12-03 10:23:43 +08:00
Marina Glancy f3d159dea1 MDL-52335 tool_uploaduser: php7 compatibility in variable syntax 2015-12-03 09:33:24 +08:00
Marina Glancy 3af4f54efb MDL-52335 mod_data: php7 compatibility in variable syntax 2015-12-03 09:33:24 +08:00
Marina Glancy 6698b06b11 MDL-52335 mod_lti: php7 compatibility in variable syntax 2015-12-03 09:33:24 +08:00
Marina Glancy 545d2c9290 MDL-52335 core: php7 compatibility in XMPP library 2015-12-03 09:33:24 +08:00
Tim Hunt 7cac3f6fe9 MDL-52292 block testing generators: improve the API
* Refactor the block generator base class, to remove the amount
  of duplication required in base classes.

* Change the defaults that are filled in to be a little more natural.

* Make the Behat step 'Given the following "block" exist:' work.
2015-12-01 13:49:24 +00:00
Dan Poltawski db198f615a MDL-52370 role: purge coursecontacts when role is edited
This is perhaps a bit more brutal purge than you'd like, but it only
affects coursecat role edits.
2015-12-01 13:14:55 +00:00
Dan Poltawski bbf7cf2c44 MDL-52370 course: purge contacts cache on role rename
Previously teachers would rename roles and the change would not be
reflected in course listings.
2015-12-01 13:14:54 +00:00
Rajesh Taneja 0f62dd32c7 MDL-52357 behat: add 2 sec delay to ensure window is stable 2015-12-01 15:46:30 +08:00
Ryan Wyllie 67e82ebe0b MDL-52042 autocomplete: close suggestion box
Close the suggestion box when the input loses focus for more
than half a second.
2015-11-30 13:21:07 +00:00
Dan Poltawski ac16eaa936 Merge branch 'MDL-52283-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-11-30 11:27:50 +00:00
Dan Poltawski bfe6b3cdd1 Merge branch 'MDL-52332-30' of git://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-11-30 10:22:52 +00:00
David Monllao f1bf39c2f8 Merge branch 'MDL-35982-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-11-30 15:46:25 +08:00
Marina Glancy 6064114c32 MDL-52332 calendar: load settings using API 2015-11-30 11:47:09 +08:00
Rajesh Taneja e0d74e610a MDL-52279 core_lib: Remove php4 style constructor
filterobject is called from core and as it's
using php4 style constructor, global USER is
not set properly because of deprecation warning
2015-11-30 11:31:33 +08:00
Jun Pataleta 8948d04695 MDL-37308 files: Additional fixes for transparency
Fixed transparency support when resizing and when not resizing.
2015-11-29 20:28:23 -06:00
Jetha Chan 9993c6bcc0 MDL-37308 files: support transparency when not resizing; new unit test 2015-11-29 20:28:23 -06:00
Adrian Greeve 1da82165ef MDL-37308 files: convert_image() now supports transparency. 2015-11-29 20:28:23 -06:00
Marina Glancy cf139e224e MDL-50710 block_glossary_random: more precise sorting 2015-11-30 09:17:03 +08:00
AMOS bot f8bce590ba Automatically generated installer lang files 2015-11-28 00:04:50 +08:00
Dan Poltawski 715eb9438c MDL-51719 atto_rtl: RTL/LTR buttons now indicate state
Previously the RTL buttons did not indiciate wether RTL or LTR was
selected. Thanks to Andrew Nicols for guiding how to do this.
2015-11-27 14:10:18 +00:00
John Okely 9c461eae4e MDL-52260 user: Fix error when saving profile with locked field 2015-11-27 11:02:45 +08:00
Tony Levi fe6a3c0531 MDL-52283 core: password_hash() deprecation in PHP7 2015-11-27 09:13:08 +08:00
Dan Poltawski 793c80165d MDL-45364 ddimageortext: refine naming & docs of new methods 2015-11-26 19:50:03 +00:00
Andrew Nicols a4f457e111 MDL-45364 qtype_ddimageortext: Fix JS Lint issues 2015-11-26 19:50:03 +00:00
Andrew Nicols 4110561f3e MDL-45364 atto_rtl: Fix JS lint 2015-11-26 19:50:03 +00:00
Dan Poltawski b1549e4127 MDL-48004 question: prevent notices on import screen
If query params were not passed the page would previously display debug
notices as setting the $requirecourseid param to question_edit_setup()
was buggy.
2015-11-26 15:03:43 +00:00
Dan Poltawski 724513e5d8 MDL-35982 behat: delete blog entry coverage 2015-11-26 14:12:22 +00:00
Dan Poltawski c14fbe69f5 MDL-35982 blog: reorder blog delete confirmation
Improves accessibility to be ordered logically in page
2015-11-26 14:12:00 +00:00
Dan Poltawski 8b4e2418f6 MDL-35982 blog: prevent index throwing errors with 0 courseid
Regression from MDL-49845 where Dave made the page not handle courseid = 0
and so now some urls will send you back to a db error..
2015-11-26 14:11:59 +00:00
David Monllao 8568798f76 weekly release 3.0+ 2015-11-26 10:54:50 +08:00
David Monllao 66533b249e Merge branch 'install_30_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_30_STABLE 2015-11-26 10:54:48 +08:00
Dan Poltawski e5baddebcd MDL-23128 tex: silence dvips output
This was causing spewwing of lots of messages to the error log..

Thanks to Fred Woolard for the suggestion
2015-11-25 17:07:40 +00:00
AMOS bot 0efd3318b2 Automatically generated installer lang files 2015-11-26 00:04:31 +08:00
Dan Poltawski 16acfc55f4 MDL-49743 singleview: slightly clarify logic
Make it clearer what the 'unset' behaviour is because previously
we've set the default for 'empty' values twice.
2015-11-25 15:12:02 +00:00
Conn 31328e3ede MDL-49743 singleview: Prevent errors when no itemid was selected
Signed-off-by: Conn <conn@cmrwarwicker.com>
2015-11-25 15:12:02 +00:00
Andrew Hancox c83c1ee838 MDL-51411 course: Fixed warning when deleting activity with js disabled 2015-11-25 14:39:59 +00:00
Eloy Lafuente (stronk7) 95f83b70b0 MDL-52291 questions: fix upgrade from 2.5 and earlier
Because of some changes performed to the multichoice qtype
for Moodle 2.6, older sites are not able to upgrade properly.

This commits does introduce DB introspection to decide which
table and column names must be used. Nasty but enough.

Note MDL-52298 has been created about to avoid/minimize the
chances of this happening again.
2015-11-25 11:23:34 +00:00
Frederic Massart 53253aea3a MDL-52160 navigation: Mark category and module settings nodes as branch 2015-11-25 13:13:05 +08:00
AMOS bot c244cd14b7 Automatically generated installer lang files 2015-11-25 00:04:24 +08:00
David Monllao a1b7cd7090 Merge branch 'MDL-44330-m30' of git://github.com/NeillM/moodle into MOODLE_30_STABLE 2015-11-24 17:03:42 +08:00
David Monllao e4ffce07cf Merge branch 'MDL-45934-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-11-24 16:55:56 +08:00
Neill Magill 6b4ce43d1d MDL-44330 Assign: Assignment grading may not display expected student
Before this patch it was possible for the student displayed on the grading page to
not be the student that the user selected to grade. This would occur if:

1) The user had the table ordered by a value that could be modified,
   for example Last modified (submission), Grade, Last modified (grade)
2) Another user performed an action that was recorded in Moodle in the time
   between the user generating the table and clicking on a grade link.

If a user did not notice a different user had been loaded it could result in them giving
a grade to the incorrect user.

This patch ensures that the state of the table is cached every time it is viewed by a user
who has the capability to grade.
2015-11-24 08:41:27 +00:00
Rajesh Taneja 107ab59c29 MDL-50163 behat: wait to ensure elements are placed properly by js. 2015-11-24 12:25:16 +08:00
David Monllao 4cd0bc7ece MDL-52095 themes: Padding to the left on RTL langs 2015-11-23 19:30:56 +01:00
Eloy Lafuente (stronk7) 42952482c9 Merge branch 'MDL-52185-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-11-23 19:27:03 +01:00
AMOS bot 3804a59fb6 Automatically generated installer lang files 2015-11-24 00:04:33 +08:00
Dan Poltawski 174faea612 Merge branch 'wip-mdl-51063-m30' of https://github.com/rajeshtaneja/moodle into MOODLE_30_STABLE 2015-11-23 11:33:51 +00:00
Tim Hunt dec56ff204 MDL-52166 gradebook: overview report fails with separate groups 2015-11-23 09:44:25 +00:00
David Monllao c6d3f0d107 Merge branch 'MDL-52214-30-crawler' of git://github.com/mudrd8mz/moodle into MOODLE_30_STABLE 2015-11-23 17:01:51 +08:00
David Mudrák 8f36db0be5 MDL-52214 core: Fix case sensitivity in user agent comparison
The previous 2.9 implementation of is_web_crawler() used stripos() in
certain cases. The unit tests re-added in the previous commit revealed
that certain crawlers (such as BaiDuSpider) were not correctly detected
in the new refactored implementation.

It seems lesser evil and safe enough to use /i in the regex search even
though it is not 100% same logic as before - as stripos() was used in
some cases only, not always.
2015-11-23 09:43:20 +01:00
David Mudrák f554e04a27 MDL-52214 core: Fix the is_web_crawler() regression
In MDL-50891, the is_web_crawler() was refactored into a core_useragent
method and the function itself was deprecated. However, there were no
unit tests kept to check the backwards compatible behaviour. It turned
out that the deprecated function leads to PHP fatal error due to a typo.

This patch fixes the typo and brings back the previous unit tests. To be
able to explicitly check the raised debugging message, the test case
now must be subclass of advanced_testcase.

Additionally fixes missing info about the function being deprecated.
2015-11-23 09:42:27 +01:00
David Monllao 20c532caf8 Merge branch 'MDL-52180-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-11-23 16:40:38 +08:00
David Monllao a1b0938c16 Merge branch 'MDL-52086-30' of git://github.com/bostelm/moodle into MOODLE_30_STABLE 2015-11-23 16:10:42 +08:00
Vadim Dvorovenko 3e1da76d54 MDL-52029 installer: Unstyled installer if display_errors is on
Error in MDL-43839 solution caused inclusion of unexistent file in
install/css.php.
2015-11-23 15:44:12 +08:00
David Monllao e3dcc260fb Merge branch 'MDL-52160-30' of git://github.com/FMCorz/moodle into MOODLE_30_STABLE 2015-11-23 14:09:36 +08:00
David Monllao ae50bef5e6 Merge branch 'MDL-49490-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-11-23 13:55:48 +08:00
David Monllao 1b1e4d2670 Merge branch 'MDL-43069-30' of git://github.com/danpoltawski/moodle into MOODLE_30_STABLE 2015-11-23 13:32:57 +08:00
Dan Poltawski c31a650aad MDL-37834 assign: avoid newlines in status column of csv
Previously we were generating a CSV file with newlines in it, which
seems to cause problems importing into some versions of MS Excel.

Instead seperate status lines by '-' - this column is only used to
provide context to the teacher in the spreadsheet.
2015-11-20 18:36:49 +00:00
AMOS bot 76943b900c Automatically generated installer lang files 2015-11-21 00:04:19 +08:00
AMOS bot c05a3e254c Automatically generated installer lang files 2015-11-20 00:04:20 +08:00
AMOS bot 63385ff2b5 Merge branch 'MOODLE_30_STABLE' into install_30_STABLE 2015-11-20 00:04:20 +08:00
AMOS bot 42d7bc64f5 Automatically generated installer lang files 2015-11-19 19:14:29 +08:00
Dan Poltawski f0aa5b7e3b weekly release 3.0+ 2015-11-19 09:20:30 +00:00
Marina Glancy 40e33b6e75 MDL-52203 qtype_multianswer: avoid fatal error during upgrade 2015-11-19 09:45:28 +01:00
David Monllao e06768b331 MDL-42571 editpdf: Fix search comments
They are also hidden instead of destroyed.
2015-11-19 07:06:37 +00:00
Dan Poltawski ab58f3ee49 Merge branch 'wip-MDL-52194-m30' of https://github.com/marinaglancy/moodle into MOODLE_30_STABLE 2015-11-19 06:49:52 +00:00
Dan Poltawski 6a30312beb Merge branch 'MDL-52162_30' of git://github.com/dmonllao/moodle into MOODLE_30_STABLE 2015-11-19 06:34:35 +00:00
David Monllao 8c4dbdfd56 MDL-42571 editpdf: Fix comments search and multiple views drawing 2015-11-19 12:56:55 +08:00
Stephen Bourget e9b0443000 MDL-51097 Lesson: allow resume from within a cluster 2015-11-18 23:20:57 -05:00
Henning Bostelmann fab5233096 MDL-52086 output renderers: show subtree only when tab is activated 2015-11-18 16:18:59 +00:00
Pavel Sokolov 2748bf5900 MDL-43069 assign: prevent JS error on grading table
Previously submission comments failed to expand if you hid
the file submissions column.
2015-11-18 15:42:56 +00:00
Dan Poltawski 2adf914723 MDL-45934 backup: do not reset completion enabled flag
The 'completion enabled' flag does not reflect any course data, its a
course setting. Previously when doing a backup deleteting existing
course content this was forced off when it should not have been.
2015-11-18 11:56:30 +00:00
Dan Poltawski 96a2e4086f MDL-49490 assign: can't export to portfolio on non-submission 2015-11-18 09:10:45 +00:00
Marina Glancy a2d94f3d20 MDL-52194 flowplayer: do not check request
$_REQUEST variable may contain cookies in some php configurations. See also MDL-48085
2015-11-18 15:36:48 +08:00
David Monllao 33784bd64b MDL-52162 question: Removing unnecessary dependency
APIs dependencies were correctly removed during MDL-38214 review although
this unnecessary require remained here.

Credit to Marina Glancy.
2015-11-18 13:18:09 +08:00
Rajesh Taneja 4e5efb5c0c MDL-50163 behat: Return subcontext from session
Creating a new context with new mink context
with different session was keeping the session
and was not returning proper session information
2015-11-18 12:19:19 +08:00
rajesh Taneja 5cb434f62b MDL-50163 behat: Restart session after scenario with switch_window
Restart session after a scenario with switch window
is finished. This will close all open browser windows
and open a new browser window
2015-11-18 12:19:15 +08:00
Dan Poltawski 6117291e6b Merge branch 'MDL-52140_30' of git://github.com/stronk7/moodle into MOODLE_30_STABLE 2015-11-17 16:27:52 +00:00
Eloy Lafuente (stronk7) 4e342f5397 MDL-52140 upgrade: add 3.0.0 separation line to all upgrade scripts 2015-11-17 17:11:15 +01:00
Dan Poltawski 6b85e6affd MDL-52185 report: remove ugly bullet points 2015-11-17 15:33:03 +00:00
Dan Poltawski e71116f768 MDL-52180 travis: remove weekly release checker
To prevent false positives
2015-11-17 09:40:30 +00:00
Dan Poltawski a0172a28fc MDL-51988 behat: Add coverage of participation report messaging 2015-11-17 10:23:00 +08:00
Dan Poltawski 60020ccaa9 MDL-51988 behat: select a table by <th> tag 2015-11-17 10:22:59 +08:00
Dan Poltawski 3987e19c3f MDL-51988 report_particiption: do not allow messaging when disabled
Previously the option to send messages when presented regardless of the
site setting.
2015-11-17 10:22:58 +08:00
Russell Smith 2068b31847 MDL-50700 gradereport_overview: Call $PAGE->set_course
To ensure correct blocks are displayed.
2015-11-17 10:02:51 +08:00
Dan Poltawski 9a5f3f7672 MDL-46049 chat: update calendar times on repeating chat sessions
Previously were using the invalid chat id and the calendar entry was not
updated.

Thanks to Andy McGill who worked this out.
2015-11-17 08:55:34 +08:00
Dan Poltawski 75aa0f73db MDL-46049 chat: add missing closing parenthesis 2015-11-17 08:55:32 +08:00
Syam Mohan 2efce29560 MDL-52021 enrollib: Removed repeated capability
'moodle/role:assign' replicated in the permission checking
2015-11-16 16:21:35 +00:00
Frederic Massart a4c6ffd85f MDL-52160 navigation: Really remove module settings empty nodes 2015-11-16 19:44:28 +08:00
Dan Poltawski 184169cd76 MDL-47065 notes: prevent empty spaces added as note
(And updated behat test for this test case)
2015-11-16 15:21:00 +08:00
Jun Pataleta 55d5b4168e MDL-47065 behat: improve verificaton of lack of note 2015-11-16 15:15:25 +08:00
Dan Poltawski 6ccff3ba5d MDL-47065 notes: don't add blank notes
Previously the logic was wrong and was proceeding to add a note
when content was missing.

Also add behat coverage for adding notes to participants (this test is
not perfect, but better than zero coverage we had before).
2015-11-16 15:15:24 +08:00
David Monllao 44f23c7ec1 Merge branch 'MDL-41643-master' of git://github.com/jojoob/moodle into MOODLE_30_STABLE 2015-11-16 14:54:30 +08:00
Dan Poltawski 492b025f5f MDL-50687 phpunit: error early if required locale not installed 2015-11-16 14:26:29 +08:00
Frederic Massart 7f98e36008 MDL-50564 atto: Require atto_menu in atto_plugin 2015-11-16 14:20:41 +08:00
David Monllao f53c016704 Merge branch 'MDL-42571' of git://github.com/blaky/moodle into MOODLE_30_STABLE
Conflicts:
	mod/assign/feedback/editpdf/version.php
2015-11-16 13:41:15 +08:00
Eloy Lafuente (stronk7) 6114fab93b Moodle release 3.0 2015-11-15 18:44:55 +01:00
Eloy Lafuente (stronk7) 8fad9719c6 Change travis.yml to MOODLE_30_STABLE 2015-11-15 18:44:55 +01:00
Eloy Lafuente (stronk7) 9cb902fa34 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-11-15 18:44:47 +01:00
Dan Poltawski 7b0abbb34d Merge branch 'MDL-52126' of git://github.com/stronk7/moodle 2015-11-15 16:05:33 +00:00
AMOS bot dc3e6512e4 Automatically generated installer lang files 2015-11-16 00:04:22 +08:00
Eloy Lafuente (stronk7) 9dbbdcb40a MDL-52126 forum: Verify forum mailout contents
New unit test able to verify mail contents
configured by provider do match all expectations defined.
2015-11-15 13:29:31 +01:00
Eloy Lafuente (stronk7) 593aaa5366 MDL-52126 forum: Correct over-escaping of html-based emails 2015-11-15 13:16:42 +01:00
Andrew Nicols f98345b976 MDL-52126 forum: Correct over-escaping of text-based emails 2015-11-14 22:35:09 +01:00
AMOS bot 5d7bdbd947 Automatically generated installer lang files 2015-11-15 00:04:05 +08:00
Johannes Burk 64b9afa6a5 MDL-41643 datafield_checkbox: Add line breaks behind checkbox options.
Add line a break behind each checkbox option in advanced search.
2015-11-14 13:48:20 +01:00
AMOS bot 43f05bf097 Automatically generated installer lang files 2015-11-14 00:06:20 +08:00
David Monllao 20949f47fe Moodle release 3.0rc4 2015-11-13 15:28:19 +08:00
David Monllao f26ab8306f Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-11-13 15:28:16 +08:00
David Monllao 415c79abcc MDL-52071 webservices: Bump version to update services 2015-11-13 07:49:39 +08:00
David Monllao a0b972ac3c Merge branch 'MDL-52071-master' of git://github.com/jleyva/moodle 2015-11-13 07:47:58 +08:00
Dan Poltawski e763d96122 MDL-51819 theme: style fix for nested dropdowns 2015-11-12 21:54:50 +00:00
Bence Laky da91de7821 MDL-42571 assignfeedback_editpdf: Fixed second PDF view 2015-11-12 14:16:17 +00:00
Juan Leyva b8fbbc44d0 MDL-52071 ws: Add core_enrol_get_course_enrolment_methods to service 2015-11-12 13:21:58 +01:00
Dan Poltawski 5fdbdca9e5 MDL-51819 js: built changes 2015-11-12 09:00:56 +00:00
Dan Poltawski 5318521b17 Merge branch 'wip-MDL-51819-master' of git://github.com/abgreeve/moodle 2015-11-12 08:46:34 +00:00
Simeon Naydenov b6ceafab52 MDL-51819 themes: Nested navigation dropdowns work on small screens. 2015-11-12 13:53:18 +08:00
Eloy Lafuente (stronk7) 9e9754b7aa Merge branch 'MDL-51515-master' of git://github.com/junpataleta/moodle 2015-11-11 23:14:47 +01:00
Damyon Wiese 6c2cfe281f MDL-51515 assign: Fix typo setting url in nav tree.
Thanks to Nelson Moller and Tyler Bannister.
2015-11-11 11:14:03 -06:00
Eloy Lafuente (stronk7) 84f7633f82 Merge branch 'MDL-36109-master' of git://github.com/danpoltawski/moodle 2015-11-11 17:10:11 +01:00
AMOS bot 2622d00bcd Automatically generated installer lang files 2015-11-12 00:04:06 +08:00
Eloy Lafuente (stronk7) fdca1a1dd3 Merge branch 'MDL-51495' of https://github.com/NeillM/moodle 2015-11-11 16:56:27 +01:00
Eloy Lafuente (stronk7) 02c72ecb79 Merge branch 'MDL-50589-master' of git://github.com/jleyva/moodle 2015-11-11 16:53:08 +01:00
Neill Magill f11fdf9c98 MDL-51495 calendar: E_WARNING in core_calendar_get_calendar_events
If a user does not have the 'moodle/calendar:manageentries' capability then an E_WARNING
can be generated by the core_calendar_external::get_calendar_events() method, that an
expected array is null

This patch creates an array that is missing when a user does not have the capability.
2015-11-11 15:24:31 +00:00
Neill Magill 11dc7c1c3d MDL-51495 calendar: Unit test to get an individual course event
If is user requests a single event on a course via the web service they should be able to retrieve it.
2015-11-11 15:18:37 +00:00
David Monllao 169167c186 Merge branch 'MDL-51913_statistics_dup_1st_column' of git://github.com/barrysspace/moodle 2015-11-11 12:38:47 +08:00
David Monllao 23eff2c0ff Merge branch 'MDL-51922-master' of git://github.com/andrewnicols/moodle 2015-11-11 10:24:57 +08:00
David Monllao 82ee9604a2 Merge branch 'MDL-51935-master' of git://github.com/dpalou/moodle 2015-11-11 09:59:36 +08:00
David Monllao 212dc418d4 Merge branch 'MDL-51991-master' of git://github.com/ryanwyllie/moodle 2015-11-11 09:18:52 +08:00
Eloy Lafuente (stronk7) 3c6210a452 Merge branch 'wip-mdl-52077' of https://github.com/rajeshtaneja/moodle 2015-11-10 23:44:28 +01:00
Eloy Lafuente (stronk7) 47a445e442 Merge branch 'wip-mdl-52066' of https://github.com/rajeshtaneja/moodle 2015-11-10 23:27:50 +01:00
Eloy Lafuente (stronk7) 2a8709f6df Merge branch 'MDL-51686-master' of git://github.com/damyon/moodle 2015-11-10 20:19:06 +01:00
Eloy Lafuente (stronk7) f509e2e0a2 Merge branch 'MDL-50781-master' of git://github.com/danpoltawski/moodle 2015-11-10 20:13:21 +01:00
Eloy Lafuente (stronk7) d18a8d716c Merge branch 'MDL-51720-master' of git://github.com/damyon/moodle 2015-11-10 19:28:41 +01:00
Eloy Lafuente (stronk7) 13cad25081 Merge branch 'MDL-51482-lastinvalidation-handling' of https://github.com/mpetrowi/moodle 2015-11-10 18:27:22 +01:00
Dan Poltawski 6ae9762b37 Merge branch 'MDL-52059' of git://github.com/stronk7/moodle 2015-11-10 14:48:27 +00:00
Dan Poltawski 8e4c398b52 Merge branch 'MDL-51314-groupmembership' of https://github.com/dmitriim/moodle 2015-11-10 14:44:22 +00:00
Eloy Lafuente (stronk7) c31f23186e MDL-52059 versions: main version mini-bump 2015-11-10 12:35:17 +01:00
Eloy Lafuente (stronk7) 2e144835bb MDL-52059 versions: bump all versions and requires near release
version = planned 2015111600 release version
requires= current 2015111000 rc3 version
2015-11-10 12:33:52 +01:00
Eloy Lafuente (stronk7) bcf2ea710c Moodle release 3.0rc3 2015-11-10 10:50:56 +01:00
Eloy Lafuente (stronk7) c95d00ac94 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-11-10 10:50:48 +01:00
Dan Poltawski 0880780ee8 MDL-52063 forum: Moved notification is not a problem
The default behaviour of $OUTPUT->notification() is to indiciate a
problem.
2015-11-10 09:39:18 +00:00
Dan Poltawski 022f5b5e50 Merge branch 'MDL-52054-master-option4' of git://github.com/xow/moodle 2015-11-10 09:17:51 +00:00
Dani Palou 487f6471a0 MDL-51935 wiki: Add missing strings in wiki 2015-11-10 10:05:06 +01:00
John Okely 616dd1b594 MDL-52054 forum: Prevent error when clicking move without a destination 2015-11-10 16:43:19 +08:00
Ryan Wyllie d26d0d9b7e MDL-51991 atto_table: simplify settings
Cleaned up the language strings on the Atto table settings page
and reduced the number of settings options for border styling.
2015-11-10 08:15:01 +00:00
John Okely 32b4161a3c MDL-52055 block_online_users: Only show users from current course 2015-11-10 08:13:41 +00:00
Rajesh Taneja 81676e84e6 MDL-52077 unittest: Fixed string typo 2015-11-10 13:53:47 +08:00
Rajesh Taneja 27c99f5007 MDL-52066 unittest: Use ics file from external repo 2015-11-10 13:27:00 +08:00
John Okely d7f95392ac MDL-52054 forum: Revert MDL-46321. Add the "move" button back.
This reverts commit 5a699f25a2.
2015-11-10 10:46:37 +08:00
John Okely cb658a4d04 MDL-52063 forum: Display message when moving forum 2015-11-10 10:24:06 +08:00
Eloy Lafuente (stronk7) f62d6ffa3d Merge branch 'MDL-47979-master-blocks-config' of git://github.com/mudrd8mz/moodle 2015-11-09 23:42:26 +01:00
Eloy Lafuente (stronk7) d1bd327454 Merge branch 'MDL-52045-master-block_tags_settings' of git://github.com/mudrd8mz/moodle 2015-11-09 23:39:33 +01:00
AMOS bot 381fdb96bf Automatically generated installer lang files 2015-11-10 00:04:06 +08:00
David Mudrák 8159f23e76 MDL-47979 blocks: Do not display link to legacy file admin/block.php
The deprecated file admin/block.php was removed in Moodle 2.6. Since
then, all blocks that declare has_config() must provide a settings.php
file.
2015-11-09 13:30:40 +01:00
Dan Poltawski 2f3e84c132 Merge branch 'MDL-51837-master' of git://github.com/junpataleta/moodle 2015-11-09 11:33:00 +00:00
Dan Poltawski f46aa6bc42 Merge branch 'MDL-51628-master' of git://github.com/damyon/moodle 2015-11-09 11:01:21 +00:00
Dan Poltawski f808f8f553 Merge branch 'wip-MDL-52039-master' of https://github.com/marinaglancy/moodle 2015-11-09 08:48:49 +00:00
David Mudrák afb52b6f31 MDL-52045 block_tags: Fix invalid has_config() declaration
As the settings.php has been removed in MDL-51132, the block should no
longer declare it has global configuration.
2015-11-09 09:34:53 +01:00
David Monllao 0f1b3c69d8 Merge branch 'MDL-40245_master' of git://github.com/SWiT/moodle 2015-11-09 16:12:44 +08:00
David Monllao a2bb9b8751 Merge branch 'MDL-49473-master' of git://github.com/danpoltawski/moodle 2015-11-09 15:12:30 +08:00
David Monllao 814809d59e Merge branch 'wip-MDL-52008-master' of git://github.com/abgreeve/moodle 2015-11-09 13:16:06 +08:00
AMOS bot 323e38c4a1 Automatically generated installer lang files 2015-11-08 00:04:45 +08:00
Marina Glancy 9390d02099 MDL-52039 block_tags: remove unused setting 2015-11-07 12:45:35 +08:00
Dan Poltawski 82467e580b MDL-50426 behat: Update non-contacts feature naming 2015-11-06 19:47:38 +01:00
Dan Poltawski 1533fca4b5 Moodle release 3.0rc2 2015-11-06 11:57:10 +00:00
Rajesh Taneja 7b4933db3a MDL-51685 unittest: Test functionality individually 2015-11-06 11:14:17 +01:00
Dan Poltawski 5208168e0c Merge branch 'MDL-51861' of https://github.com/stronk7/moodle 2015-11-06 10:04:02 +00:00
Eloy Lafuente (stronk7) ed4e707577 MDL-51861 enrol: added missing external cleanup for formal compliance 2015-11-06 10:58:28 +01:00
Dan Poltawski 265ddbf30c MDL-51569 mod_choice: Fix use of hardcoded ids
(Previous approach of making up ids longer works now we are validating
them..)
2015-11-06 08:09:47 +00:00
Dani Palou b036215acc MDL-51861 enrol: Don't get all parts in get_enrolled_users with groups 2015-11-06 15:07:24 +08:00
Andrew Nicols af8472a91f Merge branch 'MDL-51861' of git://github.com/stronk7/moodle 2015-11-06 15:01:20 +08:00
John Okely 531bcb13f6 MDL-51569 mod_choice: Prevent users from updating choices with curl
And fix unit tests.
2015-11-06 14:52:26 +08:00
Dmitrii Metelkin 6d6e297b13 MDL-51314 mod_assign: cache group membership in can_edit_submission 2015-11-06 15:21:01 +11:00
Andrew Nicols 1d1f08a045 MDL-51685-master Fix unit tests following change
These unit tests were modifying the PAGE and other globals in the middle of
tests and were failing as a result.

Broke the tests up into separate tests where the functionality is now
tested individually.
2015-11-06 10:36:06 +08:00
Adrian Greeve 9e8d0842ba MDL-52008 accessibility: Skip link works with chrome vox. 2015-11-06 09:47:51 +08:00
Eloy Lafuente (stronk7) f076ce2834 MDL-51861 enrol: new unit test to verify all conditions and filters
This unit test does not verify contents, details, but only
that the returned users for every group mode, for every
filtering (active, groupid and withcapability) together
with permissions are correct.
2015-11-06 02:26:02 +01:00
Damyon Wiese 0bca129775 MDL-51569 mod_choice: Validate the submitted optionid
Make sure any submitted choice options actually belong to the current choice
module.
2015-11-05 10:48:40 +00:00
Dan Poltawski 2759c1218d Merge branch 'MDL-52036-master-resettable' of git://github.com/mudrd8mz/moodle 2015-11-05 09:03:20 +00:00
Juan Leyva a7d13ecf2b MDL-50589 gradereport_user: Force regrade in external function 2015-11-05 09:40:38 +01:00
Ryan Wyllie ceb689b9fc MDL-50426 message: post_message capability tests
Behat and unit tests to confirm the behaviour of the
messaging lib after the capability checks were added
to the post message function.
2015-11-05 08:20:39 +00:00
Ryan Wyllie cd0c9ac87d MDL-50426 message: optional permission check on message
Changed the messaging API to allow you to provide a parameter
that will cause the code to check if the sender of the message
has the correct permissions before the message is sent.

The ajax messaging (message button on profile page) has been
updated to perform these permission checks. This brings it
inline with the existing private message page.
2015-11-05 08:20:39 +00:00
Ryan Wyllie e24188c881 MDL-50426 behat: fix behat field manager
Thanks to Raj for the patch.
2015-11-05 08:20:39 +00:00
Damyon Wiese 85d0696dfa MDL-51720 assign: Always fallback on userid as a default sort
Even when the table has no userid column (this is normally the edit column).
2015-11-05 15:33:19 +08:00
Andrew Nicols 19f14de362 Merge branch 'MDL-51395-master' of git://github.com/junpataleta/moodle 2015-11-05 13:57:22 +08:00
Jun Pataleta cefa583e71 MDL-51395 blog: Fix output of strings for blog comments 2015-11-04 23:46:31 -06:00
Andrew Nicols c73acaa7ef Merge branch 'MDL-26429-master' of git://github.com/cameron1729/moodle 2015-11-05 12:12:43 +08:00
Andrew Nicols 8acf1ccd22 MDL-51899 mod_forum: Add test for allowing 0 grades 2015-11-05 12:07:27 +08:00
Cameron Ball 7062e7c6b3 MDL-26429 usability: Add course completion icons.
This patch adds a method to the course completion criteria classes
which allows them to specify an icon for display in the course
completion report table.

There is a default implementation which simply looks for an icon
in pix/i with a name matching the completion criteria type.
2015-11-05 11:40:58 +08:00
Andrew Nicols da737c7201 Merge branch 'MDL-51899_master' of git://github.com/jacac/moodle 2015-11-05 11:24:43 +08:00
Andrew Nicols f8e685af44 Merge branch 'MDL-51685-master' of git://github.com/dpalou/moodle 2015-11-05 10:41:43 +08:00
rajesh Taneja 03b1f63d40 MDL-50837 mod_scorm: include locallib to access function 2015-11-05 10:23:31 +08:00
rajesh Taneja 0db240c1dd MDL-51918 behat: Key press should be down-press-up
As we simulate real user key press event, the
event should down followed by press and then up key
2015-11-05 09:15:41 +08:00
Matt Switlik 08334e0692 MDL-40245 assignment: download all submissions raise time limit 2015-11-04 16:32:37 -05:00
Jakob 90e815390a MDL-51899 mod/assign: Allow 0.00 grades while editing a grade.
The function unformat_float can return 0 and false.
We need to do strict comparison for the return value on line 92 to accept grades 0.00.
2015-11-04 11:11:42 -08:00
David Mudrák 19168d0934 MDL-52036 tablelib: Fix the behaviour of resetting table preferences
The problem with the previous implementation was that the table's
$this->prefs can contain valid non-empty value in its default state -
the default column to sort by. On resetting, we must not throw away
these default prefs.

This patch simplifies the TABLE_VAR_RESET interpretation. If such an
HTTP parameter is passed via the request, the table simply behaves as if
there were no previously stored preferences (does not matter if coming
from the current session, or from the persistent cross-session storage).

The logic that decides on whether or not the reset widget should be
displayed is put into a new method can_be_reset() with unit tests
attached.

Finally, the previously private method render_reset_button() is now
protected and the reset widget is given a new semantic CSS class.
2015-11-04 15:07:17 +01:00
David Monllao 47d5c29202 MDL-51684 badges: Make sure 'moodle/badges:viewbadges' is respected 2015-11-04 13:01:11 +00:00
Yuliya Bozhko 4bd4d4eee8 MDL-51684 badges: Make sure 'moodle/badges:viewbadges' is respected
Signed-off-by: Yuliya Bozhko <yuliya.bozhko@totaralms.com>
2015-11-04 13:01:11 +00:00
Juan Leyva 02c256c941 MDL-50837 mod_scorm: Fix availability checks 2015-11-04 12:54:55 +01:00
Juan Leyva 3dd0ac559f MDL-51569 mod_choice: Check choice availability prior to do any action 2015-11-04 11:08:32 +00:00
Cameron Ball 4bb9e1ad8a MDL-51091 core_registration: session key check in registration. 2015-11-04 18:46:27 +08:00
Simey Lameze 31d0bf81af MDL-49940 mod_survey: Fix XSS on survey module 2015-11-04 18:46:27 +08:00
Hugh Davenport 45ae1da263 MDL-49940 mod_survey: Escape user comments
This patch fixes a XSS vulnerability with surveys where a student user
    could inject arbitrary HTML in a comment on the survey. The fix is to
    escape the comment before displaying it to the teacher.
2015-11-04 18:46:27 +08:00
David Monllao 3f08e9b98a MDL-51000 editor_atto: No autosave for guests 2015-11-04 18:46:27 +08:00
Simey Lameze 541c5b8552 MDL-48109 mod_lesson: prevent CSRF on password protected lesson
This commit add a new session key hidden field on the lesson password form
and confirm if the session key is valid on related pages to prevent CSRF on
password protected lessons.
2015-11-04 18:46:27 +08:00
Petr Skoda c73f6d03e5 MDL-48085 flowplayer: prevent flash parameters via url 2015-11-04 10:31:12 +00:00
Damyon Wiese 861c1dea98 MDL-51970 autocomplete: Fix for a regression in MDL-51964
This was causing the suggestions list to never open.
Picked up in testing for MDL-51970.
2015-11-04 16:29:47 +08:00
Dani Palou 1f7273af6a MDL-51685 user: Support gravatar images in user_get_user_details 2015-11-04 08:40:19 +01:00
Andrew Nicols 9fe1cb0421 Merge branch 'MDL-51983-master' of git://github.com/ryanwyllie/moodle 2015-11-04 15:21:37 +08:00
Ryan Wyllie 77b0811021 MDL-51983 actionmenu: behat tests 2015-11-04 06:36:32 +00:00
Andrew Nicols 6da79391ca Merge branch 'MDL-45814-master' of git://github.com/danpoltawski/moodle 2015-11-04 14:05:01 +08:00
Andrew Nicols 6c57f48034 Merge branch 'MDL-52012-master' of https://github.com/lucisgit/moodle 2015-11-04 13:49:01 +08:00
Andrew Nicols 01451bbc5a Merge branch 'MDL-52004-master' of git://github.com/damyon/moodle 2015-11-04 13:38:07 +08:00
Ryan Wyllie 5d2c5ba3e4 MDL-51983 actionmenu: fix hideIfOutside
The hideIfOutside function was being too restrictive with the
selector for checking if the event occurred within a menu child
(anchor tag) rather than the menu itself.
2015-11-04 03:42:09 +00:00
Ryan Wyllie 4456c306df MDL-51983 actionmenu: stop event propagation
Stop event propagation on keyboard events that have been
successfully handled by the action menu code.
2015-11-04 03:41:34 +00:00
Andrew Nicols 99b9751f0d Merge branch 'wip-MDL-51486-master' of git://github.com/abgreeve/moodle 2015-11-04 11:35:38 +08:00
Andrew Nicols 4d95d3f0e5 Merge branch 'MDL-51918-master-navigable' of https://github.com/pauln/moodle 2015-11-04 11:25:34 +08:00
Adrian Greeve 4a9a9bad73 MDL-51486 mod_data: Unit test update for item ratings.
Additional checks that access is available for item ratings
on records that have a group id of zero (all participants).
2015-11-04 10:12:39 +08:00
Adrian Greeve ca3e8022d1 MDL-51486 mod_data: Can view rating information.
When students are given the appropriate permissions
to view ratings, in the situation where there are
separate groups. The students can view the ratings
of an entry that is in the all participants group.
2015-11-04 10:12:39 +08:00
Andrew Nicols 36e323645a Merge branch 'MDL-51970-master' of git://github.com/damyon/moodle 2015-11-04 08:28:57 +08:00
Paul Nicholls 245f45f4d6 MDL-51918 gradereport: Fix AJAX mode keyboard navigation
Keyboard navigation (ctrl+up/down/left/right) with AJAX enabled ceased
functioning with editing mode enabled after MDL-36606, as it was looking
for cells with a "clickable" class - but was only applying that class when
editing mode is NOT enabled.  This patch uses a new "gbnavigable" class to
control keyboard navigation, whether editing mode is on or not.  It also
addresses some browser compatibility and minor behavioural issues.
2015-11-04 11:27:35 +13:00
Eloy Lafuente (stronk7) 4cef723c22 Moodle release 3.0rc1 2015-11-03 19:00:58 +01:00
Eloy Lafuente (stronk7) 561413695d Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-11-03 19:00:41 +01:00
Eloy Lafuente (stronk7) 217c3e0fc9 Merge branch 'wip-mdl-52007' of https://github.com/rajeshtaneja/moodle 2015-11-03 17:56:23 +01:00
Eloy Lafuente (stronk7) 836c6d7883 Merge branch 'wip-mdl-52020' of https://github.com/rajeshtaneja/moodle 2015-11-03 17:56:22 +01:00
Dan Poltawski 728754de6b Merge branch 'MDL-52018-master-enfix' of git://github.com/mudrd8mz/moodle 2015-11-03 17:56:21 +01:00
Andrew Nicols 40a44cdd52 Merge branch 'MDL-51993-master' of git://github.com/cameron1729/moodle 2015-11-03 17:56:21 +01:00
AMOS bot 52617af3c9 Automatically generated installer lang files 2015-11-04 00:04:21 +08:00
Dan Poltawski 7a89772cfb MDL-45814 login: don't prompt guest user to change password 2015-11-03 14:48:58 +00:00
Dan Poltawski 72ae4ec8d4 MDL-49473 logs: ensure exported logs contain year 2015-11-03 11:37:24 +00:00
Dan Poltawski 24c3db91a4 MDL-50781 user: do not print useless table cell
Thanks to Maurício Severo da Silva for the patch
2015-11-03 10:51:49 +00:00
rajesh Taneja 180fdb2f7c MDL-52007 behat: Use extended timeout for site admin expansion 2015-11-03 16:08:27 +08:00
Barbara Ramiro 08dc6b095e MDL-26429 Course completion icons for self, duration, and role. 2015-11-03 14:54:15 +08:00
Cameron Ball c47b6f97d7 MDL-51993 course: Set valid default for section_edit_control_menu
Thank you to Gareth Barnard for originally providing this patch.
2015-11-03 10:29:38 +08:00
Andrew Nicols 80ad34e720 Merge branch 'MDL-51914' of git://github.com/timhunt/moodle 2015-11-03 09:42:04 +08:00
rajesh Taneja f497fdcc21 MDL-52020 behat: Removed text checking to ensure window switch
Comment question window closes after 2 sec.
which crashes win-FF as it's slow to check for
"Changes saved" text. As after switching it is
checked the changes are saved, this step can be
avoided to ensure robustness of the scenario
2015-11-03 09:40:33 +08:00
Tim Hunt 0b4b0a7eea MDL-51914 qtype_ddmarker: fix checking points on the boundary
All points on the boundary are now considered in the shape, on the
grounds that it is better to grade someone right for an edge case.
2015-11-02 22:06:23 +00:00
David Mudrák e8b75e6292 MDL-52018 lang: Fix behat tests to use the new strings 2015-11-02 22:30:46 +01:00
Helen Foster da6ecfd8c1 MDL-52018 lang: Merge English strings from the en_fix language pack 2015-11-02 22:12:06 +01:00
Eloy Lafuente (stronk7) 2cc040c6c0 Merge branch 'MDL-52014-master' of git://github.com/danpoltawski/moodle 2015-11-02 20:02:16 +01:00
Eloy Lafuente (stronk7) e88100f673 Merge branch 'wip-MDL-51999-master' of https://github.com/marinaglancy/moodle 2015-11-02 19:59:01 +01:00
Eloy Lafuente (stronk7) 373748277a Merge branch 'MDL-51829-master' of git://github.com/dpalou/moodle 2015-11-02 19:40:16 +01:00
Dan Poltawski 5294052875 MDL-52014 quiz: do not log preview attempt deletions
This happens automatically by the system.
2015-11-02 16:17:22 +00:00
Dan Poltawski 28aadc2b12 Merge branch 'MDL-51128-master' of git://github.com/junpataleta/moodle 2015-11-02 14:07:10 +00:00
Dan Poltawski 2088c22e41 Merge branch 'wip-MDL-50633-master2' of https://github.com/marinaglancy/moodle 2015-11-02 14:04:44 +00:00
Marina Glancy 57ee89569a MDL-50633 dml: deprecated var replaced in mysql 5.7
Thanks to Charles Verge for providing a patch
2015-11-02 21:05:20 +08:00
Tony Butler d3069afd27 MDL-52012 core_lib: Add namespace to $OUTPUT->notify_message definition 2015-11-02 11:12:47 +00:00
Dan Poltawski deec056650 Merge branch 'MDL-51854-master' of https://github.com/pauln/moodle 2015-11-02 09:08:01 +00:00
Damyon Wiese cfca338d7a MDL-52004 assign: Set unique urls when grading so autosaves work
The Atto autosave feature uses the $PAGE->url to generate unique hashes for
each page. Assignment uses a MUC cache to persist ordering of lists - the result
is that the urls are not unique (they depend on the cached filter).

The fix is to spoof a unique url that will grade only that student with no
active grading list (no next/prev buttons).
2015-11-02 16:41:55 +08:00
Andrew Nicols 693ed49c10 Merge branch 'MDL-51707-m' of https://github.com/micaherne/moodle 2015-11-02 14:36:10 +08:00
Andrew Nicols df8095156e Merge branch 'MDL-47073-master' of git://github.com/junpataleta/moodle 2015-11-02 11:54:21 +08:00
Marina Glancy bb0ac1fdc2 MDL-51999 user: remove unnecessary continue 2015-11-02 10:53:43 +08:00
Andrew Nicols 117dc470bc Merge branch 'MDL-51964-master' of git://github.com/damyon/moodle 2015-11-02 10:52:37 +08:00
Marina Glancy 9dfe870449 MDL-51888 mod_resource: cache file details for performance
If file details (size, type, date) are configured to be displayed we cache them
in course cache raw and build the display string in user language/timezone when
displaying. Also changed behat test not to fail in 2016
2015-11-02 10:38:26 +08:00
Damyon Wiese 273b255673 MDL-51970 autocomplete: Small refactor because too many options
Each function was taking 8-10 args - combine them all in state and options
objects and pass those around instead.
2015-11-02 10:22:53 +08:00
Damyon Wiese 97d2ea7f87 MDL-51970 autocomplete: Add an option to hide the suggestions
This is used by tags when official tags are disabled.
2015-11-02 10:21:57 +08:00
Damyon Wiese be9b036a33 MDL-51964 autocomplete: IE11 fires spurious "input" events
We need to check for "real" changes to the input value because
ie11 is just firing events willy nilly.
2015-11-02 10:11:13 +08:00
AMOS bot e0b2ad1f35 Automatically generated installer lang files 2015-11-01 00:07:45 +08:00
Jun Pataleta bbbdfc8610 MDL-47073 lib: Replace backslashes with slashes in jquery plugin urls
This patch replaces backslash characters in the generated jQuery
plugin URL to forward slashes when slasharguments is disabled and
 the Moodle server is running on IIS.
Thanks to Ryan Panning <Ryan.Panning@district196.org> for
reporting this issue and for suggesting a fix.
2015-10-30 17:05:23 -05:00
Dan Poltawski 821ab27c19 on-demand release 3.0beta+ 2015-10-30 21:09:21 +00:00
Dan Poltawski 999aa8ca45 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-10-30 21:09:20 +00:00
Dan Poltawski 3a723033e8 MDL-36109 accesibility: use proper words for logo alt text 2015-10-30 16:55:03 +00:00
Eloy Lafuente (stronk7) d708bf59e4 Merge branch 'wip-mdl-51981' of https://github.com/rajeshtaneja/moodle 2015-10-30 10:23:52 +01:00
rajesh Taneja 4b274a10c2 MDL-51981 behat: No need for JS tag
This scenario crashes win-chrome and probably
other comninations. Looking at this, it seems
js tag is not needed, so removing js tag to make
it pass on all OS
2015-10-30 11:29:52 +08:00
Andrew Nicols ee0546291a Merge branch 'wip-MDL-51552-master' of git://github.com/abgreeve/moodle 2015-10-30 11:01:00 +08:00
Adrian Greeve 42b3a58c47 MDL-51552 gradebook: Update to singleview behat test. 2015-10-30 10:08:02 +08:00
Andrew Nicols 22d0a8f11e MDL-51966 forms: Typo correction 2015-10-30 07:56:25 +08:00
Andrew Nicols 63a03a8b05 Merge branch 'wip-MDL-51966-master' of https://github.com/marinaglancy/moodle 2015-10-30 07:31:28 +08:00
AMOS bot 1a9d1593e4 Automatically generated installer lang files 2015-10-30 00:04:09 +08:00
Dan Poltawski ca9daf0fb0 Merge branch 'MDL-51955' of git://github.com/stronk7/moodle 2015-10-29 14:22:28 +00:00
Dan Poltawski 02315eb2bb Merge branch 'MDL-51939-master' of git://github.com/andrewnicols/moodle 2015-10-29 13:54:56 +00:00
Eloy Lafuente (stronk7) 1f0f002e1d MDL-51939 mod_forum: all participants discussions are viewed by students
Added scenario to verify that "all participants" discussions, under
separate-groups mode are, by default, visible for students.
2015-10-29 21:10:20 +08:00
Andrew Nicols 7774cf96f8 MDL-51939 mod_forum: Fix groupid data on upgrade
This upgrade step addresses issues identified in MDL-51939 where the
groupid was incorrectly set. The issue itself is not present in 2.9, but
this upgrade step is required to correct any incorrect data.
2015-10-29 21:10:11 +08:00
Eloy Lafuente (stronk7) aa4a2716ef MDL-51955 testing: Exported files may be smaller than expected
Open a bit the allowed size expectation to accomodate oracle
producing smaller files when outputing decimal numbers.
2015-10-29 13:19:36 +01:00
Dan Poltawski 3adcb91d55 Merge branch 'MDL-50811-master' of git://github.com/cameron1729/moodle 2015-10-29 10:53:40 +00:00
Dan Poltawski ab0ad70a83 Merge branch 'MDL-51921-master' of git://github.com/junpataleta/moodle 2015-10-29 10:35:03 +00:00
Adrian Greeve 81e3251512 MDL-51552 gradebook: Single view bulk insert fix.
Single view now doesn't overwrite non-empty grades.

A thank you to Sam Anderson and Robert Russo for providing a patch.
2015-10-29 16:00:46 +08:00
Marina Glancy ecbc2a2f25 MDL-51966 forms: case-insensitive search in autocomplete 2015-10-29 15:10:20 +08:00
Andrew Nicols b5df2c1db0 Merge branch 'MDL-51923-master-2' of git://github.com/xow/moodle 2015-10-29 14:48:25 +08:00
Andrew Nicols 37d0021369 Merge branch 'MDL-51915' of git://github.com/timhunt/moodle 2015-10-29 14:41:45 +08:00
Andrew Nicols a72f3add06 Merge branch 'MDL-51799-master' of git://github.com/ryanwyllie/moodle 2015-10-29 13:16:15 +08:00
Ryan Wyllie f8f477ece5 MDL-51799 javascript: dialogue accessibility
Moved setting the aria visiblity of the dialogues from the show
and hide functions into the visibility change handler to stop
multiple calls.

Also made the visibility checker just continue to buffer the elements
it hides, rather than clearning them, on multiple calls.
2015-10-29 05:10:10 +00:00
Andrew Nicols 68881fb620 Merge branch 'MDL-51956-master' of git://github.com/ryanwyllie/moodle 2015-10-29 11:06:18 +08:00
Ryan Wyllie 1c53bc813e MDL-51956 atto_table: fix bg colour bug
The table editor will now set the backgorund colour on the
table in Firefox version 34 and below.

Also expanded the dialogue slightly because the colour choices
were wrapping and I added some styling to put a gap in for the
metric markers for border width and table width.
2015-10-29 02:51:06 +00:00
Dan Poltawski de342562cc Merge branch 'wip-MDL-51919-master' of git://github.com/abgreeve/moodle 2015-10-28 12:48:18 +00:00
Dan Poltawski bb63c18443 Merge branch 'MDL-51924-master' of git://github.com/barbararamiro/moodle 2015-10-28 12:04:20 +00:00
Dan Poltawski b2aaab60f3 Merge branch 'MDL-51838-master' of git://github.com/damyon/moodle 2015-10-28 11:53:53 +00:00
Dan Poltawski 413c321a18 Merge branch 'MDL-51914' of git://github.com/timhunt/moodle 2015-10-28 11:52:03 +00:00
Tim Hunt 2d391d1b10 MDL-51914 qtype_ddmarker: precise grading round the edges of zones
There was a previous change to the CSS (7px -> 3px) to make things
look prettier, which acutally broke the grading by a few pixes.
I fixed this by:

* Changing the offset of the cross hairs back to the correct value,
  and adding a comment to point out the imporance of not changing
  that CSS.

* Achieved the nice layout of the label relative to the cross-hairs
  in a different way.

* Added a similar clafirying comment in the JavaScript.

* Improved how the grid on the editing form is aligned with the
  background image.

* Added rounding to the grading code, to cope better now that
  browsers do sub-pixel positioning.
2015-10-28 10:53:00 +00:00
Jun Pataleta 9f555a7e77 MDL-51921 files: Fixes for file manager issues
Fixed the issue where the file path select box goes beyond the
container with very long folder names. Instead of setting to
"width: auto", I set it the select box's "width: 100%" so that it will
just fill up its container's width.
Fixed the issue where markups are being shown on file aliases.
2015-10-28 04:48:25 -05:00
Rajneel Totaram 494fec0071 MDL-51923 enrol: Enrolment list filter 'No Group' shows incorrect count
With contributions from John Okely
2015-10-28 17:34:16 +08:00
Adrian Greeve 527bde6e0f MDL-51919 forms lib: Autocomplete doesn't hide prematurely.
Quickly navigating via the keyboard to an autocomplete
element and hitting down would result in the selections
being displayed and then quickly removed. This has now
been fixed.
2015-10-28 14:15:26 +08:00
Andrew Nicols d412f8552d on-demand release 3.0beta+ 2015-10-28 12:59:31 +08:00
Andrew Nicols 6fb6859945 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-10-28 12:59:25 +08:00
Andrew Nicols af39ce0f8d MDL-51880 atto_table: Coding style fix 2015-10-28 11:39:17 +08:00
Andrew Nicols 7dea2c1707 Merge branch 'MDL-51880-master' of git://github.com/ryanwyllie/moodle 2015-10-28 11:37:17 +08:00
Ryan Wyllie f45937e17d MDL-51880 atto/plugins/table: improve table borders
* Removed the "No borders" option from general borders setting
  since it's a style choice.
* Added inherit, initial and unset as border style options.
* Made the border settings disabled if "Theme default" is selected.
* Changed the transparent colour to be "Theme default" which means
  apply no colour at all.
2015-10-28 03:28:36 +00:00
Dan Poltawski e360ff5db6 Merge branch 'MDL-51893' of git://github.com/stronk7/moodle 2015-10-27 14:43:00 +00:00
Dan Poltawski 61257ae417 Merge branch 'MDL-51863' of git://github.com/stronk7/moodle 2015-10-27 11:57:20 +00:00
Dan Poltawski 101df9a634 Merge branch 'MDL-51906-master-fixes' of git://github.com/andrewnicols/moodle 2015-10-27 10:49:10 +00:00
Andrew Nicols 68b35af353 MDL-51906 testing: Hardcode branch name 2015-10-27 18:31:23 +08:00
Eloy Lafuente (stronk7) 7c549a17f4 MDL-51893 core_date: Stop using Pacific/Norfolk as 11.5 replacement
Norfolk Island's standard time (NFT) was on UTC+11:30 until 4 October
2015, when it was changed to UTC+11:00. So it's not suitable for 11.5
bad mapping replacement anymore.

It seems that there isn't any other location using such 11.5 timezone
so completely getting rid of it for conversions.
2015-10-27 10:17:05 +01:00
Barbara Ramiro 39f360ae38 MDL-51924 Using box-sizing mixin to prevent blocks overlap on profile page 2015-10-27 16:13:43 +08:00
Corey Wallis 346ba4f443 MDL-50811 mod_forum: Add completion tracking for emailed replies 2015-10-27 15:53:42 +08:00
Andrew Nicols 10a8d040dc Merge branch 'MDL-51905-master' of git://github.com/xow/moodle 2015-10-27 14:50:55 +08:00
Andrew Nicols 03f2797b09 MDL-51922 testing: Add memcached + mongodb testing to Travis matrix 2015-10-27 14:29:21 +08:00
John Okely 161ffc5605 MDL-51905 block_activity_results: Default to the current activity
Due to an incorrect condition, the activity results block would
incorrectly identify some blocks as not being gradeable.
This meant that edit form could not determine what activity the block
was added to. This commit fixes the condition, allowing the current
block to be determined correctly
2015-10-27 13:47:58 +08:00
Andrew Nicols 53759a0c91 Merge branch 'wip-MDL-51840-master' of git://github.com/abgreeve/moodle 2015-10-27 11:13:44 +08:00
Andrew Nicols f5e587c1db Merge branch 'wip-MDL-51841-master' of git://github.com/abgreeve/moodle 2015-10-27 11:03:43 +08:00
Andrew Nicols 4727a4a207 Merge branch 'MDL-51864-master' of git://github.com/junpataleta/moodle 2015-10-27 10:57:45 +08:00
Andrew Nicols d891a6dcb7 Merge branch 'MDL-51127-master' of git://github.com/lazydaisy/moodle 2015-10-27 10:47:48 +08:00
Eloy Lafuente (stronk7) 70ae75674d MDL-51863 packer: ensure empty zip files behavior remains consistent
With PHP bug #70322 fixed, ZipArchive::close() did start returning false
and throwing PHP Warnings with recent PHP versions (5.6.14 and up).
Previously (5.6.13 verified) it was returning true, and false in older
versions (5.4.x verified).

This change does silent the 2 "hacky" calls to close() that we perform
in core leaving the 3rd one (used for files having files) unmodified.

A new unit test has been created to cover the close() behavior, ideally
supporting both old and new PHP versions without harcoding any PHP
version.

Note that we don't use to rely much on results coming from close(), and
that's a good thing given the buggy behavior commented above. This just
keeps empty zips working like they were before.
2015-10-26 21:16:54 +01:00
Tim Hunt 42406bc413 MDL-51915 lib tests: Extra unit test for html_to_text. 2015-10-26 18:30:21 +00:00
Barry Oosthuizen 3e90d870bc MDL-51913 report_stats: Make first column unique 2015-10-26 17:22:31 +00:00
Dan Poltawski d3cd5f1f8f Merge branch 'wip-MDL-51834-master' of https://github.com/kwiliarty/moodle 2015-10-26 13:54:41 +00:00
Dan Poltawski 3ec49c6de3 Merge branch 'MDL-51906-master' of git://github.com/andrewnicols/moodle 2015-10-26 13:49:32 +00:00
Dan Poltawski ff1543e0df Merge branch 'MDL-51894-master' of git://github.com/andrewnicols/moodle 2015-10-26 12:40:15 +00:00
Dan Poltawski eb154d9c14 Merge branch 'MDL-51855-master' of git://github.com/lameze/moodle 2015-10-26 10:20:02 +00:00
Eloy Lafuente (stronk7) f7d8c61ae7 Merge branch 'MDL-51824-master' of git://github.com/lameze/moodle 2015-10-26 09:59:21 +01:00
Simey Lameze 0bc41cfcec MDL-51824 auth: include required CLI library 2015-10-26 15:52:11 +08:00
Adrian Greeve d304952b43 MDL-51840 forms lib: keyboard navigation with ajax works.
Ajax autocomplete forms can now be navigated properly with
the keyboard.
2015-10-26 15:03:42 +08:00
Adrian Greeve adebc069bd MDL-51841 forms lib: Autocomplete fields work with spaces. 2015-10-26 15:02:52 +08:00
Adrian Greeve abfaf50217 MDL-51841 forms lib: Autocomplete fields work with spaces. 2015-10-26 14:55:19 +08:00
Damyon Wiese 81c471e2a9 MDL-51821 forms: Be more explicit in autocomplete if no suggestions 2015-10-26 14:20:25 +08:00
Damyon Wiese bdd60287e5 MDL-51821 forms: Better handling for deselecting items in autocomplete
Fixes 3 problems with deselecting items in an autocomplete field:

1. Keep track of whether items were in the offical suggestion list, or are newly created
   tags and remove the "newly created tags" from the suggestion list when they are
   deselected
2. Change the aria-role for the selected items list when items cannot be deselected (and
   do not treat it like a multiselect list).
3. When leaving and returning focus to the selected items list, remember the last
   active-descendant.
2015-10-26 14:20:25 +08:00
Andrew Nicols 3365244fda Merge branch 'MDL-51824-master' of git://github.com/lameze/moodle 2015-10-26 13:56:49 +08:00
Simey Lameze 37e51a5daa MDL-51824 core: initial deprecation of auth sync CLI scripts
This commit does the initial deprecation of the CLI scripts of CAS and LDAP authentication plugins.
2015-10-26 13:36:27 +08:00
Damyon Wiese 32f3de567f MDL-51838 autocomplete: Scroll the suggestions list
Keep the active item "visible" when using keyboard nav on a long list of suggestions.
2015-10-26 12:20:33 +08:00
Andrew Nicols fd424b99f2 MDL-51894 inboundmessage: Ensure that all mailboxes exist 2015-10-26 12:17:15 +08:00
Andrew Nicols 5459e754c6 MDL-51906 testing: Fix travis builds for beta/rc
These were previously checking the release string for presence of the 'dev'
string. On friday we moved to beta, and will shortly move to RC.

We should be checking the version maturity instead.

This change switches to checking for MATURITY_STABLE in the maturity
string. If it is found, the branch behaviour follows the $branch version.
If it is not found, we use master.

This also adds a check to ensure that if the branch is not found, we exit
early instead of performing CI Tests over the entirety of Moodle.
2015-10-26 12:03:51 +08:00
Simey Lameze abc2491211 MDL-51855 mod_question: fix offset error during upgrade 2015-10-26 11:51:18 +08:00
Andrew Nicols 3953d0b7a7 Merge branch 'MDL-51842-master' of git://github.com/xow/moodle 2015-10-26 11:29:02 +08:00
John Okely 0fc2bccd60 MDL-51842 theme_bootstrapbase: Fix alignment of parallel buttons 2015-10-26 10:49:26 +08:00
Andrew Nicols 3363cbe55b Merge branch 'MDL-51779_master' of https://github.com/Syxton/moodle 2015-10-26 09:46:38 +08:00
Eloy Lafuente (stronk7) 8b3090c13b MDL-51903 behat: move guest enrolment to new UI
With MDL-30674 we missed to change this use from the
old (course edition) UI to the new (enrolment methods) one.
2015-10-25 21:13:08 +01:00
Jun Pataleta 3dbdeb5ccb MDL-51864 blocks: Fixed title display for block_course_summary 2015-10-24 00:03:39 -05:00
lazydaisy b395f7b599 MDL-51127 theme_bootstrapbase: Re-aligned RTL context header button. 2015-10-23 18:28:20 +01:00
AMOS bot 1bc3f19a5b Automatically generated installer lang files 2015-10-24 00:04:00 +08:00
Syxton 626d833543 MDL-51779 assign: PDF annotate quality
Fixes the quality of pdf content when annotating.
2015-10-23 09:22:38 -04:00
Dan Poltawski 9382ac38d6 Moodle release 3.0beta 2015-10-23 13:47:50 +01:00
Dan Poltawski efad76904c Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-10-23 13:47:49 +01:00
Dan Poltawski ec2e5c4151 NOBUG: correcting pre-beta version name 2015-10-23 13:46:59 +01:00
Eloy Lafuente (stronk7) e326fbeea2 MDL-30674 enrol_guest: version bump in case it's needed for something 2015-10-23 13:31:59 +02:00
Eloy Lafuente (stronk7) 2ee8636553 Merge branch 'MDL-30674-master-wip' of https://github.com/andrewnicols/moodle 2015-10-23 12:46:53 +02:00
Dan Poltawski 8c976328c1 MDL-40863 mod_resource: bump version
(not technically necessary - but I prefrer to make it explicit against
stable)
2015-10-23 11:34:52 +01:00
Dan Poltawski 94b8c29248 MDL-40863 mod_resource: add missing behat tag 2015-10-23 11:27:57 +01:00
Marina Glancy 9a58434601 MDL-40863 mod_resource: do not cache user-specific info 2015-10-23 11:25:51 +01:00
Andrew Hancox ba8b641dce MDL-40863 mod_resource: Add option to show modified date 2015-10-23 11:25:07 +01:00
Eloy Lafuente (stronk7) d9b60d6f25 Merge branch 'MDL-51739-master-individual-locking' of git://github.com/ryanwyllie/moodle 2015-10-23 10:42:17 +02:00
Ryan Wyllie f1ecad609a MDL-51739 theme: allow config to lock theme selector
If any of the devices have their theme set in config.php
it will lock the theme selector UI from being able to change
the theme.
2015-10-23 05:06:21 +00:00
Kevin Wiliarty b71890687a MDL-51834 auth,profile: locks custom fields based on auth settings 2015-10-22 23:39:49 -04:00
Andrew Nicols 0b7dc6e8cd Merge branch 'MDL-45515-master' of git://github.com/ryanwyllie/moodle 2015-10-23 10:59:34 +08:00
jinhofer f067581828 MDL-45515 lib/editor/atto/plugins/table: added behat 2015-10-23 02:57:51 +00:00
jinhofer b87e11c849 MDL-45515 atto/plugins: Added border style and BG colour to table
This commit adds the option for borders to be added and
styled, background colours to be set, and width to be set for tables
in the Atto HTML Editor. For those that desire to restrict
use of this, the plugin settings allow the admins to restrict
how much freedom their users have with borders.
2015-10-23 02:57:50 +00:00
Andrew Nicols 5164b76e75 MDL-30674 enrol_guest: Respect 2015-10-23 10:40:42 +08:00
AMOS bot 32440787d4 Automatically generated installer lang files 2015-10-23 00:04:16 +08:00
Dan Poltawski 0a05907873 Merge branch 'MDL-51737-master-3' of git://github.com/andrewnicols/moodle 2015-10-22 14:43:20 +01:00
Dan Poltawski cf84a5d2dd MDL-51458 travis: note the purpose of config 2015-10-22 12:14:04 +01:00
Dan Poltawski c7ec75d670 Merge branch 'MDL-51458-master' of git://github.com/andrewnicols/moodle 2015-10-22 12:13:39 +01:00
Andrew Hancox 0c93dda8af MDL-30674 enrol_guest: Moved settings from course to enrol form
Added proper enrol settings form with status (enabled or disabled)
and password option in line with other core enrol plugins.
Removed enrol_guest settings from course settings page.
When adding a guest enrol plugin you now get presented with the
edit form as with other core enrol plugins.
2015-10-22 11:52:18 +01:00
Andrew Nicols 3ba7bf006e Merge branch 'wip-MDL-46623-master' of git://github.com/marinaglancy/moodle 2015-10-22 13:26:32 +08:00
Vadim Dvorovenko e96ac9156d MDL-46623 auth: Sheduled tasks for users sync
Sheduled tasks for syncing users with external sources for auth_ldap
and auth_cas. Using task is simplier than setting separate cron
job for running cli script. Task are disabled by default.
2015-10-22 12:45:57 +08:00
Andrew Nicols 39a731efb4 MDL-51737 core: Add Edge UserAgent support 2015-10-22 08:37:27 +08:00
Paul Nicholls ca50279d4e MDL-51854 atto_image: Allow other plugins to handle drop events
The drop handler should only return false if it has actually handled the
drop event (i.e. it was an image) - otherwise, Atto plugins loaded after
this one don't get an opportunity to handle other drop events.
2015-10-22 11:58:57 +13:00
Andrew Nicols ab17b4f7ee MDL-51458 testing: Disable Travis notifications entirely
The Travis-CI service currently over-notifies the upstream repository
owner which can mean that committers without access to a fork of the
repository are notified of failures, and success changes.

Until this issue is addressed, and we are happy with the stability of our
build, we have disabled notification support.

The Travis-CI service problem has been raised in
https://github.com/travis-ci/travis-ci/issues/4976
2015-10-21 08:13:12 +08:00
Andrew Nicols 88ec08605b MDL-51458 Testing: Support for Travis-CI.org
This commit adds support for community use of travis-ci.org and allows
developers to get free testing of their changes in multiple PHP
environments, and multiple database servers.

Use of this feature requires setup on travis-ci.org, and is not supported
by Moodle HQ.

Results supplied by travis-ci.org are for your convenience only, and tests
will still be applied separately by the HQ integration servers during
integration.
2015-10-21 08:13:12 +08:00
Dan Poltawski de2a3b7423 Merge branch 'MDL-50217' of git://github.com/timhunt/moodle 2015-10-20 14:56:33 +01:00
Dan Poltawski 91aaa240f5 on-demand release 3.0dev+ 2015-10-20 09:57:22 +01:00
Dan Poltawski 0e74fa11cd Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-10-20 09:57:21 +01:00
Dani Palou dbcade703b MDL-51829 admin: Set userquota setting as PARAM_INT 2015-10-20 10:01:11 +02:00
Mark Nelson e7be37b1c2 MDL-51782 mod_forum: fixed unit test failing on certain DBs 2015-10-20 14:44:58 +08:00
Andrew Nicols 579b72a227 Merge branch 'MDL-51782_master' of git://github.com/markn86/moodle 2015-10-20 11:50:57 +08:00
Andrew Nicols dc2091c87f Merge branch 'MDL-51162-master' of git://github.com/lameze/moodle 2015-10-20 10:48:14 +08:00
Simey Lameze 4d16a2749f MDL-51162 core: replace all HTTP_RAW_POST_DATA usages
This patch replace all usages of HTTP_RAW_POST_DATA that was deprecated on PHP 5.6 by
file_get_contents('php://input'). Only the TinyMCE library has not been updated.
2015-10-20 10:27:26 +08:00
Jun Pataleta b47454f6b7 MDL-51837 user: Check if user email is set on validation
Add a check if the user's email is set before performing validation on
the user's email address. This is to prevent the warning messages to
be shown in the case of a pending email change which causes the user's
email field to be not included in the Edit profile form.
2015-10-19 16:50:01 -05:00
Eloy Lafuente (stronk7) d6ed5f8230 MDL-51836 mod_forum: Fix CASE statement breaking mssql & oracle. 2015-10-19 23:14:35 +02:00
Eloy Lafuente (stronk7) 9062fa25ae Merge branch 'MDL-49329-master-multiplug' of git://github.com/mudrd8mz/moodle 2015-10-19 18:10:40 +02:00
David Mudrák c8a6d162a0 MDL-51832 tests: Fix failing code manager unit tests on Windows 2015-10-19 18:08:59 +02:00
Dan Poltawski 319310a57c MDL-51792 js: grunt built 2015-10-19 16:48:33 +01:00
Eloy Lafuente (stronk7) a180068e74 Merge branch 'wip-mdl-48117' of https://github.com/rajeshtaneja/moodle 2015-10-19 16:59:05 +02:00
Dan Poltawski a7dacbc77d Merge branch 'm30_MDL-51554_Apache_PHP-FPM_Broken_File_Serving' of https://github.com/scara/moodle 2015-10-19 15:19:41 +01:00
David Monllao 7d45554019 Merge branch 'MDL-50724' of git://github.com/andrewhancox/moodle 2015-10-19 17:21:58 +08:00
David Monllao d80d38a936 Merge branch 'MDL-50483-master' of git://github.com/lameze/moodle 2015-10-19 17:06:03 +08:00
Eloy Lafuente (stronk7) 6d04e5511e MDL-48117 behat: Use form field to check checkbox
On Mac-Chrome click checkbox is not generating
proper events and hence failing. Use behat_form_checkbox
to ensure checkbox is checked
2015-10-19 17:00:24 +08:00
Ryan Wyllie 563fe0a569 MDL-51792 forms: stop deletion of select options
Stopped the keyboard navigation from completely deleting
list options when being deselected using keyboard navigation.
They are now returned to the list of available options to be
reselected.

Also remove the cross from the selected element when it is
a single select box.
2015-10-19 09:39:06 +01:00
David Monllao e54193ed3e Merge branch 'MDL-51771' of git://github.com/timhunt/moodle 2015-10-19 16:27:41 +08:00
Tim Hunt 9872f0a8b8 MDL-50217 questions: sensible default order for add new qtype
This default will only affect new installs.
2015-10-19 08:43:13 +01:00
David Monllao 96a6b6b20b Merge branch 'MDL-51712-master' of git://github.com/xow/moodle 2015-10-19 15:42:55 +08:00
Andrew Nicols 1b69ba3dd7 Merge branch 'MDL-51673-master' of git://github.com/junpataleta/moodle 2015-10-19 13:38:53 +08:00
David Monllao 1ed96351aa Merge branch 'MDL-51759-master-2' of git://github.com/andrewnicols/moodle 2015-10-19 13:30:17 +08:00
Andrew Nicols c95ba7faa8 Merge branch 'MDL-50993-master' of git://github.com/ryanwyllie/moodle 2015-10-19 12:43:40 +08:00
Adam Olley 1e36665719 MDL-50993 forum: Display timed posts/discussions in a logical order
Users that don't have permission to view timed posts outside of the release
time frame will have discussions that have entered the visible frame appear
in an odd order from their point of view on the discussion list.

Example:
Discussion 1, modified 2015-01-01, hidden till 2015-01-03
Discussion 2, modified 2015-01-02, not hidden

The standard 'modified descending' order means that D2 is listed at the top
even after D1 becomes visible. When scanning the list of discussions for new
posts, the user could be tricked into thinking they'd already read it.

This fix instead takes into account the release time of the discussion when
timed forum posts are enabled.

I opted to use CASE statements to handle this instead of GREATEST as the
latter is not supported by MSSQL.
2015-10-19 04:04:58 +00:00
Simey Lameze e2ec4f3a12 MDL-50483 gradereport_user: fix overlapping on the error message 2015-10-19 08:58:34 +08:00
Jinu Abraham f712aa2877 MDL-50483 gradereport_user: fix the fatal error of no enrolled users 2015-10-19 08:58:34 +08:00
Andrew Nicols 84d5eef4ad Merge branch 'MDL-50412-master' of git://github.com/danpoltawski/moodle 2015-10-19 07:56:51 +08:00
Tim Hunt e5acdcb942 MDL-51771 question engine: fix typo in SQL
Thanks to Pete at learningpool.com for finding thsi bug.
2015-10-18 16:03:29 +01:00
Jun Pataleta e8c5a98bd4 MDL-51673 messages: Added codes for the unit tests 2015-10-16 16:05:30 -05:00
Matteo Scaramuccia 3b1a3abcf9 MDL-51554 Files: Fix broken file serving under Apache + PHP-FPM 2015-10-16 21:55:20 +02:00
Ben Kelada 42c0b0473c MDL-51673 messages: remove strict type check of int vs string 2015-10-16 12:33:18 -05:00
AMOS bot fc8f8bb6f4 Automatically generated installer lang files 2015-10-17 00:04:00 +08:00
Dan Poltawski e926ee8cf1 MDL-49329 fixtures: remove trailing whitespace 2015-10-16 15:22:37 +01:00
Dan Poltawski 293197afb3 Merge branch 'MDL-49329-master-multiplug' of git://github.com/mudrd8mz/moodle 2015-10-16 14:53:26 +01:00
Eloy Lafuente (stronk7) 1b7bf43562 on-demand release 3.0dev+ 2015-10-16 12:51:49 +02:00
John Okely 8290c31cbe MDL-51712 myprofile: Fix capability checks 2015-10-16 14:38:07 +08:00
Andrew Nicols 5a3fdd3337 MDL-50647 profile: Styling fix 2015-10-16 12:01:31 +08:00
Andrew Nicols c2c369bf02 Merge branch 'MDL-49984-master' of git://github.com/barbararamiro/moodle 2015-10-16 11:48:04 +08:00
Andrew Nicols aba3f4f3ba MDL-50647 groups: Documentation fix 2015-10-16 11:28:06 +08:00
Andrew Nicols 8b1eea3bae Merge branch 'wip-mdl-50647' of https://github.com/rajeshtaneja/moodle 2015-10-16 11:16:36 +08:00
Andrew Nicols d8bf49f81e MDL-51629 mod_survey: Coding style violation fix 2015-10-16 11:10:38 +08:00
rajesh Taneja 260f133178 MDL-50647 behat: Expanded behat to not use example
Reason for not using scenario example is:
1. Lot of options, hence hard to read and match
2. Example will run whole scenario (created db for each row),
   Which is not needed.
2015-10-16 11:01:39 +08:00
Andrew Nicols 5762c92fcf Merge branch 'MDL-51629-master' of git://github.com/jleyva/moodle 2015-10-16 10:56:19 +08:00
Andrew Nicols 62029ba7f4 Merge branch 'MDL-51565-master' of git://github.com/jleyva/moodle 2015-10-16 09:35:23 +08:00
Andrew Nicols 690e23e69d Merge branch 'MDL-51651-master' of git://github.com/danpoltawski/moodle 2015-10-16 09:21:45 +08:00
Davo Smith 294c4bb0db MDL-50647 group: add 'not in group' section to groups overview
Also adds 'No group' and 'No grouping' filters to the top of the page
2015-10-16 08:53:44 +08:00
Andrew Nicols 62bf94655e Merge branch 'MDL-50182' of git://github.com/stronk7/moodle 2015-10-16 08:07:04 +08:00
Andrew Nicols 7108d08dd1 MDL-51759 theme: Ensure that non-svg images are cached and returned 2015-10-16 07:53:17 +08:00
Juan Leyva 55dca60f45 MDL-51629 mod_survey: New WS mod_survey_submit_answers 2015-10-15 16:17:23 +02:00
Juan Leyva f772b5159c MDL-51629 mod_survey: New WS mod_survey_get_questions 2015-10-15 16:17:22 +02:00
Juan Leyva 75516809d2 MDL-51629 mod_survey: New Web Service mod_survey_view_survey 2015-10-15 16:05:05 +02:00
Juan Leyva a2926eb3e6 MDL-51629 mod_survey: New WS mod_survey_get_surveys_by_courses 2015-10-15 16:05:05 +02:00
Juan Leyva 66a582d0b3 MDL-51703 mod_survey: Trigger response_submitted event in correct place 2015-10-15 13:59:15 +01:00
Dan Poltawski df8afc6305 Merge branch 'MDL-51500-master' of git://github.com/merrill-oakland/moodle 2015-10-15 13:52:46 +01:00
Dan Poltawski 52fa3d09d7 Merge branch 'MDL-51563-master' of git://github.com/jleyva/moodle 2015-10-15 13:50:10 +01:00
Dan Poltawski 6bafde62f5 Merge branch 'MDL-51652-master' of https://github.com/sammarshallou/moodle 2015-10-15 13:45:10 +01:00
Dan Poltawski 4f5d5628d1 Merge branch 'MDL-51679-groupmode-ajax' of https://github.com/Dagefoerde/moodle 2015-10-15 11:41:26 +01:00
Dan Poltawski 6660fbb3d3 Merge branch 'MDL-51781_master' of git://github.com/markn86/moodle 2015-10-15 11:08:26 +01:00
Dan Poltawski f655414669 MDL-51651 lang: add consitency for application of firstdayofweek
1) Set the site-wide default based on language pack
2) Use the site/user preference for js popups, like we do in /calendar/
2015-10-15 10:15:05 +01:00
Dan Poltawski 316f8231f8 MDL-51651 lang: the first day of the week is Monday 2015-10-15 10:15:05 +01:00
Mark Nelson f74fe5ba52 MDL-51781 tool_log: marked log values as NOT_MAPPED if mapping not found 2015-10-15 01:25:43 -07:00
David Monllao a97cde7a6e Merge branch 'wip-MDL-51604-master' of git://github.com/marinaglancy/moodle 2015-10-15 16:21:07 +08:00
Andrew Nicols 055c5bc02a Merge branch 'MDL-51790-master' of git://github.com/damyon/moodle 2015-10-15 16:04:55 +08:00
Dan Poltawski 05ed945e61 Merge branch 'wip-mdl-50940' of https://github.com/rajeshtaneja/moodle 2015-10-15 08:58:23 +01:00
Andrew Nicols 56bd244634 Merge branch 'MDL-51756-master' of git://github.com/damyon/moodle 2015-10-15 15:22:37 +08:00
Andrew Nicols 8413376088 MDL-51756 tests: Refactor test to use data-provider
The benefit is that this becomes one test per external function instead of one
test testing them all - so more information is shown on failure and we get lots
more dots (we love dots!).
2015-10-15 15:17:02 +08:00
Damyon Wiese 390b833ada MDL-51790 block_community: xmlrpc expects correct types
This is defined as an int on the hub site, so it must be sent as an int.
2015-10-15 15:08:51 +08:00
Andrew Nicols a308dc15c9 Merge branch 'MDL-51594-master' of git://github.com/jleyva/moodle 2015-10-15 14:19:10 +08:00
Damyon Wiese 1dc4dc989d MDL-51756 externallib: Show debugging when optional params are wrong
Optional params are not allowed as the top level value for external_function_parameters.
This is because stricter protocols (xmlrpc and soap) cannot handle optional parameters, only
optional properties in a structure.
2015-10-15 14:19:07 +08:00
Barbara Ramiro 1da2e3a623 MDL-49984 Profile: Decluttering, grouping and adding white space to easily find info 2015-10-15 12:36:43 +08:00
Marina Glancy a27c42ee9a MDL-51260 core_tag: Use new tag autocomplete for related tags 2015-10-15 12:03:52 +08:00
Damyon Wiese bb6ca6f360 MDL-51260 tags: Update the tags form element to use the autocomplete field
AMOS BEGIN
    REM [interestslist_help,moodle] Commas are no longer required
    REM [entertags,tag] Commas are no longer required
    REM [othertags,tag] Commas are no longer required
AMOS END
2015-10-15 12:03:35 +08:00
David Monllao 25de6f3ec0 Merge branch 'MDL-49545-master' of git://github.com/ryanwyllie/moodle 2015-10-15 11:54:53 +08:00
Ryan Wyllie cfe12ff033 MDL-49545 backup: Restore does not respect some capabilities
Thanks to Daniel Neis for the original patch that formed the
basis of these changes.
2015-10-15 02:45:27 +00:00
Andrew Nicols 176cf1ca91 Merge branch 'MDL-51610-master' of git://github.com/merrill-oakland/moodle 2015-10-15 10:22:18 +08:00
Mark Nelson fcb30f64f9 MDL-51782 mod_forum: altered unit tests for the post_deleted event
This was done to ensure we are actually testing the API, and not
just creating and triggering the event manually.
2015-10-14 18:54:29 -07:00
Mark Nelson 9f468b1b31 MDL-51782 mod_forum: moved post_deleted event into function 2015-10-14 18:21:28 -07:00
Damyon Wiese 60a1ea56d9 MDL-51247 forms: All new aria-pimped autocomplete mform element.
Supports static list of options - or options fetched via ajax.
Has options for single,multi and tags support.
2015-10-14 16:22:44 +01:00
Dan Poltawski cd83fae089 Merge branch 'MDL-51399' of https://github.com/andrewhancox/moodle 2015-10-14 15:02:50 +01:00
Dan Poltawski 4f8641be36 Merge branch 'MDL-38214_wipd' of git://github.com/ppichet/moodle 2015-10-14 14:15:14 +01:00
Dan Poltawski cd644dab5b Merge branch 'MDL-51467-master' of https://github.com/sammarshallou/moodle 2015-10-14 13:40:19 +01:00
Jan C. Dageförde ee20bdcb8a MDL-51679 course: Update groupmode CSS class
Changing groupmode of an activity via AJAX did not change the button's CSS class accordingly.
2015-10-14 14:33:20 +02:00
Juan Leyva bb3500c6d4 MDL-51594 webservice: Fix typos in choice and SCORM documentation 2015-10-14 14:29:12 +02:00
Dan Poltawski b117fac04b weekly release 3.0dev 2015-10-14 10:49:01 +01:00
Dan Poltawski 8780d80e80 NOBUG: Fixed file access permissions 2015-10-14 10:49:01 +01:00
Dan Poltawski cfa945308d NOBUG: Fixed SVG browser compatibility 2015-10-14 10:49:00 +01:00
Dan Poltawski 4d9edf1b15 MDL-51536 webservices: fix invalid param definitions 2015-10-13 19:01:42 +01:00
Dan Poltawski 6333b018ad Merge branch 'MDL-40710-master' of git://github.com/barbararamiro/moodle 2015-10-13 15:44:31 +01:00
Dan Poltawski 3975c5bc2e Merge branch 'MDL-51435' of https://github.com/NeillM/moodle 2015-10-13 11:39:52 +01:00
Dan Poltawski e3b03886d0 MDL-47494 copyright: missed fixes from last commit
With thanks to Tim!
2015-10-13 09:55:28 +01:00
Dan Poltawski bf47ddbdf3 MDL-47494 copyright: fix incorrect statement
(From copy/paste error, blame Tim :P)
2015-10-13 09:39:28 +01:00
Dan Poltawski 08d93936f4 Merge branch 'MDL-51576-master-2' of git://github.com/ryanwyllie/moodle 2015-10-13 09:23:31 +01:00
Damyon Wiese ab848fea81 MDL-48861 assign: Make the requires grading filter consistent
Consistently include submissions with a null grade (see MDL-47694).
2015-10-13 14:52:50 +08:00
Damyon Wiese fb6bae3eae MDL-48861 assign: Fix unit tests and behat tests
The tests were not working with the change to the needs grading filter.
2015-10-13 12:59:13 +08:00
David Monllao ee58df52da Merge branch 'MDL-46455-master-20151012' of git://github.com/damyon/moodle 2015-10-13 11:42:40 +08:00
Andrew Nicols 5e2547612f Merge branch 'MDL-51302-master' of git://github.com/danpoltawski/moodle 2015-10-13 11:33:23 +08:00
Andrew Nicols a6c0702884 Merge branch 'wip-MDL-49515-master' of git://github.com/abgreeve/moodle 2015-10-13 11:05:05 +08:00
Jun Pataleta cef93f97ae MDL-51128 course: Add startdate for generated course
Added course start date for the course generated by the course
generator in order to prevent incorrect date calculations
(i.e. in assignment due dates) when the generated course is reset.
2015-10-12 21:48:27 -05:00
Andrew Nicols da113979bd Merge branch 'MDL-51517_master' of git://github.com/lazydaisy/moodle 2015-10-13 10:33:32 +08:00
Andrew Nicols 3648d7963a Merge branch 'MDL-51427-master' of git://github.com/marinaglancy/moodle 2015-10-13 10:13:43 +08:00
David Monllao 09d62af419 Merge branch 'MDL-51568-master' of git://github.com/jleyva/moodle 2015-10-13 10:11:55 +08:00
Ryan Wyllie 4b596728e7 MDL-51576 navigation: stop course nav duplication
The course navigation was getting duplicate nodes because
it was loading the nav tree plugin functions twice. Once
specifically for the reports and then a second time more generally.

The code will now explicitly skip loading the report plugin
functions on the second load.
2015-10-13 01:46:25 +00:00
Andrew Nicols ac1f81a187 Merge branch 'MDL-40442-master' of git://github.com/danpoltawski/moodle 2015-10-13 09:45:41 +08:00
Adrian Greeve 59d20e706a MDL-49515 libraries: Update to editpdf/classes/pdf.php
This updates fpdi_bridge to extend our Moodle pdf class
as was done before.
2015-10-13 09:28:16 +08:00
Andrew Nicols 8775bc4d40 Merge branch 'MDL-50079-master' of git://github.com/danpoltawski/moodle 2015-10-13 09:24:31 +08:00
Andrew Nicols 29caaeff9e Merge branch 'MDL-50788-master' of git://github.com/danpoltawski/moodle 2015-10-13 08:08:51 +08:00
Eloy Lafuente (stronk7) ca09f076f8 MDL-50182 core: add 3.0 environmental requirements
Only change from 2.9 is the modification of the slasharguments
admin setting string to recommend always to keep the setting enabled
and fix the problem in the server, warning about the drawbacks
of disabling it.

Also, there is a little phpdoc note added to one custom check
to have clearly specified when we can get rid of it.
2015-10-13 00:33:41 +02:00
sam marshall fc830670a2 MDL-51467 Availability: Course reset should change restrict dates 2015-10-12 17:33:51 +01:00
Dan Poltawski 576a0cc3ab Merge branch 'MDL-51375' of git://github.com/timhunt/moodle 2015-10-12 17:01:41 +01:00
Eric Merrill d76acdbc17 MDL-51610 course: Change section menu to "Edit" and order buttons 2015-10-12 11:53:33 -04:00
Dan Poltawski 37029775f9 Merge branch 'MDL-48861-master' of git://github.com/damyon/moodle 2015-10-12 16:53:18 +01:00
Juan Leyva d1b30757bd MDL-51563 core_user: Fix invalid passed parameteres in get_user 2015-10-12 13:53:57 +02:00
Dan Poltawski 45f2e27c4d Merge branch 'MDL-36606-master' of git://github.com/merrill-oakland/moodle 2015-10-12 12:41:03 +01:00
Juan Leyva 5b587c7570 MDL-51565 webservice: Fix return types definitions
This commit also format the activity name via external_format_string in
some cases
2015-10-12 13:24:49 +02:00
Andrew Hancox ce449f6307 MDL-50724 mod_assign: show issues with groups in grading table
Where a user is in multiple or no groups show and group membership
is required show an appropriate error in the gradding table rather
than 'Default Group'
2015-10-12 12:04:28 +01:00
Dan Poltawski 668980be3e Merge branch 'MDL-51536-master' of git://github.com/damyon/moodle 2015-10-12 11:47:45 +01:00
Dan Poltawski 0015ec87d6 Merge branch 'MDL-51586-master' of git://github.com/xow/moodle 2015-10-12 10:47:13 +01:00
sam marshall 07bb79b451 MDL-51652 Availability: OR conditions fail when filtering user lists
When filtering a user list, if there is an OR tree where one of the
conditions does not restrict user lists such as a date condition,
then the overall result should include all users (not be filtered).
This was not working correctly.
2015-10-12 10:23:54 +01:00
David Monllao fd47ef44bd Merge branch 'MDL-51637-master' of git://github.com/jleyva/moodle 2015-10-12 17:08:27 +08:00
David Monllao fb7b835cdd Merge branch 'MDL-51083-master' of git://github.com/xow/moodle 2015-10-12 16:57:06 +08:00
Dan Poltawski 30b86ccb68 Merge branch 'MDL-51605-master' of git://github.com/damyon/moodle 2015-10-12 09:46:00 +01:00
Damyon Wiese ac82a9a8b4 MDL-46455 Events: Add db mapping info even if not part of backup
We can return db mapping info even for objects that are not included
in backup/restore and it may be useful in future (no use in core yet).
2015-10-12 16:41:02 +08:00
Juan Leyva 4f3a2d2103 MDL-51637 forum: Make forum_get_discussions_paginated return group post 2015-10-12 10:08:17 +02:00
Juan Leyva e8ad99ab91 MDL-51568 self_enrol: New Web Service enrol_self_enrol_user 2015-10-12 09:13:51 +02:00
Andrew Nicols fe26df5ec9 MDL-49682 mod_forum: Correct arguments to format_message_text
This feeds straight into context_module::instance() and I was inadvertantly
using the forum->id, rather than the cm->id.
2015-10-12 14:54:34 +08:00
Andrew Nicols 34ab6b314f Merge branch 'MDL-51528-int-fix-1' of https://github.com/ryanwyllie/moodle 2015-10-12 14:15:14 +08:00
David Monllao 1c94483300 MDL-49682 mod_forum: Bump version for caches 2015-10-12 14:07:55 +08:00
David Monllao 66116cf5c4 Merge branch 'MDL-49682-master' of git://github.com/andrewnicols/moodle 2015-10-12 14:05:02 +08:00
Ryan Wyllie 106bbb8592 MDL-51528 themes: bootstrap v2.3.2 in thirdpartylibs
Increase the bootstrap version from v2.3.0 to v2.3.2
in the thirdpartylibs.xml file.
2015-10-12 05:45:13 +00:00
Andrew Nicols 99690e0fa8 MDL-46497 atto: Whitespace/coding style fix 2015-10-12 13:37:29 +08:00
Andrew Nicols 56b62992fa Merge branch 'MDL-46497_master' of https://github.com/nadavkav/moodle 2015-10-12 13:35:24 +08:00
Andrew Nicols 317938393c MDL-49682 mod_forum: Build forum email templates 2015-10-12 13:26:29 +08:00
Andrew Nicols 8a64346270 Merge branch 'MDL-51528-master' of git://github.com/ryanwyllie/moodle 2015-10-12 10:42:15 +08:00
David Monllao b60abb8486 Merge branch 'MDL-51524-master' of git://github.com/andrewnicols/moodle 2015-10-12 10:36:05 +08:00
Andrew Nicols c0ea3a71fc Merge branch 'MDL-51451-master' of https://github.com/sammarshallou/moodle 2015-10-12 10:10:51 +08:00
Mark Nelson 607021c14b MDL-46455 events: added more mapping
Also fixed a few bugs.
2015-10-11 18:52:36 -07:00
Andrew Nicols 44250050dc MDL-51524 tests: Fix broken tests
The upgraded version of HTML2Text highlighted some bugs in our unit tests.

In the IOS test, the HTML content includes a couple of patches of &nbsp;
In the previous version of HTML2Text, these were being converted to
breaking spaces. In one of these cases, it was then removed due to a trim.
The expected texts have been converted to use the correct non-breaking spaces.
In the case of the trimmed one, it is no longer trimmed as non-breaking
spaces are not trimmed.
This gives a truer reflection of the actual text.

In the case of the Outlook test, this trailing whitespace is not present in
the source. It was likely caused by a bug in the previous version of
HTML2Text.

In the case of the weblib change, the test was just wrong. Both of the
actual characters are encodings for an HTML bullet (decimal and hex) and
should both be converted to the relevant UTF8 representation of this
bullet.
2015-10-12 09:35:59 +08:00
Andrew Nicols ec2d33dfcd MDL-51524 libraries: Update to latest version of html2text
We were previously using an ancient version of html2text from RoundCube
with many customisations.

This patchset moves to the version included in the latest version of
HTML2Text, and wraps the library in a moodle-provided class. This
moves all previous hacks away from that class.

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

- TODO: Decide about these 2 pending issues:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

However, it never happened and there is no real demand for that. So now
there is no need to have and maintain a completely parallel solution for
common things like fetching and unzipping plugin ZIPs.

Additional reasoning for mdeploy.php was that the core is not very
reliable during the core upgrade and we could run into various troubles.
This does not seem to be that bad. We rely on a lot of core
functionality (such as output rendering, DB access etc) and plugins
deployment seems to work well (and better) with common core libraries.

So long mdeploy, and thanks for all the hard work you did for us.
2015-10-08 23:32:04 +02:00
David Mudrák 228cbda3ea MDL-49329 admin: Fix plugins check page if no plugins require attention
A legacy undefined variable was used here and there was no way to get to
the full list mode view.
2015-10-08 23:32:04 +02:00
David Mudrák d22835216f MDL-49329 admin: Clean up core_plugin unit tests
As a first step for removing the \core\update\deployer and mdeploy.php,
this patch fixes existing tests.
2015-10-08 23:32:04 +02:00
David Mudrák 36977a6d08 MDL-49329 admin: If unable to install a plugin, display the reason 2015-10-08 23:32:04 +02:00
David Mudrák f65d337089 MDL-49329 admin: Highlight missing/downgrading plugins 2015-10-08 23:32:04 +02:00
David Mudrák 4441d5e5fb MDL-49329 admin: Fix report on required core version in missing plugins
If the plugin was missing from disk, the required core version was
displayed as "Moodle {$a}" because the core dependency resolver always
returns an object.
2015-10-08 23:32:04 +02:00
David Mudrák 35f2b67442 MDL-49329 admin: Fix the API for getting remote plugin info
The previous version of the plugin manager's method
get_remote_plugin_info() was suitable for installing missing
dependencies only. To make use of for installing new plugins and/or
available updates, it must be clear that we are requesting information
for the particular plugin version only, not "given or higher" version.
2015-10-08 23:32:04 +02:00
David Mudrák d6e38c2a9d MDL-49329 admin: Validate pluginfo service response
The new client's method makes sure that the returned data structure has
expected format so that the plugin manager can safely rely on it.
2015-10-08 23:32:04 +02:00
David Mudrák 0ec7d10128 MDL-49329 admin: Improve Plugins check page
Better inform about the number of plugins requiring attention vs total
plugins. Clean up the renderer.
2015-10-08 23:32:03 +02:00
David Mudrák 9137a89a1a MDL-49329 admin: Improve the UI for installing dependencies 2015-10-08 23:32:03 +02:00
David Mudrák 2f29cf6e63 MDL-49329 admin: Add ability to cancel installation of a new plugin
The plugins check screen now provides buttons to cancel installation of
a plugin. Available only for new installations (not upgrades) and for
additional plugins (not standard), given that the web server process has
write access to the plugin folder.

This has also been reported as MDL-48535.

As a part of the patch, there is improved processing of page URLs during
the upgrade. All this dancing around $reload URL is not needed once the
$PAGE->url is properly set to guide the admin on the correct page during
the upgrade process.
2015-10-08 23:32:03 +02:00
David Mudrák f2d8ed45e3 MDL-49329 admin: Introduce new \core\update\validator class
This is not really new class. Originally, the validator was implemented
in the scope of the tool_installaddon plugin. But we need its features
in other parts at the core level (e.g. during the upgrade to validate
available missing dependencies or available updates). Looking back, it
was a mistake to have it implemented at the plugin level rather than the
core level.

So this patch moves the tool_installaddon_validator class to
\core\update\validator class, together with associated unit tests,
fixture files and strings. There were changes made in the
tool_installaddon to make use of this new class instead of the old one.

This is a great step towards the bright future, hopefully there won't be
many regressions.

AMOS BEGIN
 MOV [validationmsg_componentmatch,tool_installaddon],[validationmsg_componentmatch,core_plugin]
 MOV [validationmsg_componentmismatchname,tool_installaddon],[validationmsg_componentmismatchname,core_plugin]
 MOV [validationmsg_componentmismatchname_help,tool_installaddon],[validationmsg_componentmismatchname_help,core_plugin]
 MOV [validationmsg_componentmismatchname_info,tool_installaddon],[validationmsg_componentmismatchname_info,core_plugin]
 MOV [validationmsg_componentmismatchtype,tool_installaddon],[validationmsg_componentmismatchtype,core_plugin]
 MOV [validationmsg_componentmismatchtype_info,tool_installaddon],[validationmsg_componentmismatchtype_info,core_plugin]
 MOV [validationmsg_filenotexists,tool_installaddon],[validationmsg_filenotexists,core_plugin]
 MOV [validationmsg_filesnumber,tool_installaddon],[validationmsg_filesnumber,core_plugin]
 MOV [validationmsg_filestatus,tool_installaddon],[validationmsg_filestatus,core_plugin]
 MOV [validationmsg_filestatus_info,tool_installaddon],[validationmsg_filestatus_info,core_plugin]
 MOV [validationmsg_foundlangfile,tool_installaddon],[validationmsg_foundlangfile,core_plugin]
 MOV [validationmsg_maturity,tool_installaddon],[validationmsg_maturity,core_plugin]
 MOV [validationmsg_maturity_help,tool_installaddon],[validationmsg_maturity_help,core_plugin]
 MOV [validationmsg_missingcomponent,tool_installaddon],[validationmsg_missingcomponent,core_plugin]
 MOV [validationmsg_missingcomponent_help,tool_installaddon],[validationmsg_missingcomponent_help,core_plugin]
 MOV [validationmsg_missingcomponent_link,tool_installaddon],[validationmsg_missingcomponent_link,core_plugin]
 MOV [validationmsg_missingexpectedlangenfile,tool_installaddon],[validationmsg_missingexpectedlangenfile,core_plugin]
 MOV [validationmsg_missingexpectedlangenfile_info,tool_installaddon],[validationmsg_missingexpectedlangenfile_info,core_plugin]
 MOV [validationmsg_missinglangenfile,tool_installaddon],[validationmsg_missinglangenfile,core_plugin]
 MOV [validationmsg_missinglangenfolder,tool_installaddon],[validationmsg_missinglangenfolder,core_plugin]
 MOV [validationmsg_missingversion,tool_installaddon],[validationmsg_missingversion,core_plugin]
 MOV [validationmsg_missingversionphp,tool_installaddon],[validationmsg_missingversionphp,core_plugin]
 MOV [validationmsg_multiplelangenfiles,tool_installaddon],[validationmsg_multiplelangenfiles,core_plugin]
 MOV [validationmsg_onedir,tool_installaddon],[validationmsg_onedir,core_plugin]
 MOV [validationmsg_onedir_help,tool_installaddon],[validationmsg_onedir_help,core_plugin]
 MOV [validationmsg_pathwritable,tool_installaddon],[validationmsg_pathwritable,core_plugin]
 MOV [validationmsg_pluginversion,tool_installaddon],[validationmsg_pluginversion,core_plugin]
 MOV [validationmsg_release,tool_installaddon],[validationmsg_release,core_plugin]
 MOV [validationmsg_requiresmoodle,tool_installaddon],[validationmsg_requiresmoodle,core_plugin]
 MOV [validationmsg_rootdir,tool_installaddon],[validationmsg_rootdir,core_plugin]
 MOV [validationmsg_rootdir_help,tool_installaddon],[validationmsg_rootdir_help,core_plugin]
 MOV [validationmsg_rootdirinvalid,tool_installaddon],[validationmsg_rootdirinvalid,core_plugin]
 MOV [validationmsg_rootdirinvalid_help,tool_installaddon],[validationmsg_rootdirinvalid_help,core_plugin]
 MOV [validationmsg_targetexists,tool_installaddon],[validationmsg_targetexists,core_plugin]
 MOV [validationmsg_targetexists_help,tool_installaddon],[validationmsg_targetexists_help,core_plugin]
 MOV [validationmsg_unknowntype,tool_installaddon],[validationmsg_unknowntype,core_plugin]
 MOV [validationmsg_versionphpsyntax,tool_installaddon],[validationmsg_versionphpsyntax,core_plugin]
 MOV [validationmsglevel_debug,tool_installaddon],[validationmsglevel_debug,core_plugin]
 MOV [validationmsglevel_error,tool_installaddon],[validationmsglevel_error,core_plugin]
 MOV [validationmsglevel_info,tool_installaddon],[validationmsglevel_info,core_plugin]
 MOV [validationmsglevel_warning,tool_installaddon],[validationmsglevel_warning,core_plugin]
AMOS END
2015-10-08 23:32:03 +02:00
David Mudrák 0e442ee776 MDL-49329 admin: Introduce new \core\update\core_manager tool
The plan is to have a single tool looking after all operations with
plugin ZIP packages (downloading, unzipping, moving to the dirroot and
back). For legacy reasons, we have that logic currently duplicated in
mdeploy and tool_installaddon. I would like to unify and simplify the
whole machinery to use the same code for available updates, manual
installation and plugin dependencies.
2015-10-08 23:32:03 +02:00
David Mudrák 5a92cd0b8d MDL-49329 admin: Display missing dependencies on plugins check screen
The patch improves the dependencies resolution in the plugin manager so
that the information about availability of the missing dependency is
included and can be displayed at the Plugins check screen during the
upgrade.
2015-10-08 23:32:03 +02:00
David Mudrák 48900324b3 MDL-49329 admin: Introduce new \core\update\api client class
The purpose of this class is to provide a general client for all APIs
available at https://download.moodle.org/api/ (e.g. available updates,
plugin info, plugins list etc). Currently, fetching data from this API
is done separately at several places. This leads to code duplication and
harder maintenance (I know it well).

Additionally, the existing client was implemented as
tool_installaddon_pluginfo_client in the admin/tool/installaddon/ scope.
I will soon need to use the same functionality in the
core_plugin_manager and it would hurt my karma if the core was depending
on a class provided by a admin tool plugin (even if it is standard one).

So, there is new \core\update\api client implementing the version 1.3 of
the pluginfo API. There is a TODO note left for remaining services.
2015-10-08 23:32:03 +02:00
David Mudrák 7eb87eff65 MDL-49329 admin: Move requirements resolving to the plugin manager
The patch moves the resolving logic from the renderer (where it should
not really be) to the plugin manager (controller). This is needed
because we will need the very same logic to be used at other places.
2015-10-08 23:32:02 +02:00
David Mudrák c44bbe35bf MDL-49329 admin: Improve loading of available updates info
The actual loading of available updates info objects is moved back to
the plugin manager class. As we can now mockup the manager in unit
tests, this allows us to bypass the real \core\update\checker and have
unit tests for \core\plugininfo\base::available_updates().
2015-10-08 23:32:02 +02:00
David Mudrák 2d488c8f01 MDL-49329 admin: Keep reference to plugin manager in plugininfo objects
Plugin info objects are owned by the plugin manager (composition
pattern). Even if the plugin manager is a singleton, we need to keep
explicit reference to the plugin manager that owns the plugin info so
that we can mock up things in unit tests.

Therefore this patch introduces a new property of plugin info objects
that holds the reference to the instance of the plugin manager that made
(and hence owns) the given info instance.

The only trouble here is with static methods of plugin info classes such
as \core\plugininfo\base::get_enabled_plugins(). In these cases, the
code keeps using the core_plugin_manager singleton. The solution would
be to pass the plugin manager instance as a parameter but that is not
worth of change for now, IMHO.
2015-10-08 23:32:02 +02:00
David Mudrák 361feecdcf MDL-49329 admin: Make core_plugin_manager better suited for unit testing
We can now override the plugin manager's methods in the testable
subclass while still keeping the singleton behaviour of it. The change
makes use of late static binding.
2015-10-08 23:32:02 +02:00
David Mudrák 30d8bc5f66 MDL-49329 admin: Do not always load info about available updates
Before this patch, whenever core_plugin_manager::get_plugins() was
called, it always attached info about available updates. But this is
needed only in quite rare cases, such as when the admin is looking at
the Plugins overview and Plugins check screens. There is no need to load
this on other places and for non-admin users.

The patch removes the loading from the method
core_plugin_manager::get_plugins_of_type() and implements lazy loading
directly in the plugininfo classes so that it is loaded only when
\core\plugininfo\base::available_updates() is actually called.
2015-10-08 23:32:02 +02:00
David Mudrák e9d3c21228 MDL-49329 admin: Fix \core\update\checker::enabled() logic
The method should check against $CFG->disableupdatenotifications and not
$CFG->disableupdateautodeploy. This had to be a copy&paste mistake from
the \core\update\deployer::enabled().

While looking at it, I also fixed couple of places where this method
should and could be used.
2015-10-08 23:32:02 +02:00
David Mudrák fd17898c0c MDL-49329 admin: Improve the styling of the Plugins check screen
The intention here is to make the table a little bit more compact (using
less columns) and to make use of the bootstrap based label elements if
available.
2015-10-08 23:32:02 +02:00
Eric Merrill 12f946d999 MDL-36606 gradereport: Update AJAX grader to understand gradeless cells 2015-10-08 12:33:08 -04:00
Matt Petro 2351ed55e8 MDL-51482 caching: Fix unnecessary updates to lastinvalidation time 2015-10-08 11:48:17 -04:00
Pierre Pichet bd15685352 MDL-38214 Questions: Add MCS, MCVS, MCHS Cloze subquestion types
Daniel Seemuth add MCO,MCVS,MCHS new multianswer subquestion types
qtype_multianswer_initialise_multichoice_subquestion.
Pierre Pichet MCO to MCS, add shuffling display in decode and verify edit_multianswer_form.php
add test_questiontext_extraction.

Signed-off-by: Pierre Pichet <pichet.pierre@uqam.ca>
2015-10-08 10:02:25 -05:00
Pierre Pichet 48b5b28ff4 MDL-38214 Questions: Add MCS, MCVS, MCHS Cloze subquestion types
qtype_multianswer: fix codechecker issues.

Signed-off-by: Pierre Pichet <pichet.pierre@uqam.ca>
2015-10-08 10:02:24 -05:00
Andrew Robert Nicols df65120a75 MDL-36606 gradereport: Correctly handle ungraded assessment ajax grading 2015-10-08 09:51:22 -04:00
Michael Aherne 1dc462baa5 MDL-51707 cron: Prevent finished tasks being returned 2015-10-08 14:43:56 +01:00
Barbara Ramiro 0381520262 MDL-40442 Icon: Improved svg download icon and png version 2015-10-08 13:31:03 +01:00
Dan Poltawski 74fad2ce3d weekly release 3.0dev 2015-10-08 11:36:35 +01:00
Dan Poltawski 8dd00c98f2 NOBUG: Fixed file access permissions 2015-10-08 11:36:35 +01:00
Dan Poltawski e58ca6b640 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-10-08 11:36:33 +01:00
Dan Poltawski 21dcd2daf3 Merge branch 'MDL-51523_master' of git://github.com/markn86/moodle 2015-10-08 11:30:54 +01:00
David Monllao dc9afaba4f MDL-51623 core_event: Updating error messages 2015-10-08 15:57:46 +08:00
David Monllao 02c85f9934 Merge branch 'MDL-51623_parent_event' of git://github.com/moodlerooms/moodle 2015-10-08 15:53:00 +08:00
Adam Olley a7d95e4e65 MDL-51285 mod_forum: Posts all need to have different stamps 2015-10-08 12:21:36 +08:00
Andrew Nicols cfd3b94544 Merge branch 'MDL-51341_enrolled_users_filter' of git://github.com/davosmith/moodle 2015-10-08 09:17:29 +08:00
Andrew Nicols e62c0c02c4 Merge branch 'wip-mdl-51660' of https://github.com/rajeshtaneja/moodle 2015-10-08 09:12:12 +08:00
Eloy Lafuente (stronk7) b82a60d1a7 Merge branch 'MDL-51624-master' of git://github.com/jleyva/moodle 2015-10-08 01:18:39 +02:00
Eloy Lafuente (stronk7) 11e2efe941 Merge branch 'MDL-51566-master' of git://github.com/jleyva/moodle 2015-10-08 00:24:06 +02:00
Davo Smith bf8f915abc MDL-51341 enrolment: fix 'No group' enrolled user filter 2015-10-07 17:09:15 +01:00
Dan Poltawski 99133d0c47 Merge branch 'MDL-51531-master' of git://github.com/damyon/moodle 2015-10-07 16:39:13 +01:00
Eric Merrill ea9431eb7b MDL-51500 navigation: Compute links with destination context
We should calculate the links based on the destination context,
not the current course. Could show links that are not accessible.
2015-10-07 10:00:59 -04:00
Juan Leyva 4bed1682bb MDL-51624 mod_lti: New Web Service mod_lti_view_lti 2015-10-07 14:54:18 +02:00
Juan Leyva c4c838ae82 MDL-51624 mod_lti: Rename function lti_view to lti_launch_tool 2015-10-07 14:53:00 +02:00
Juan Leyva 4b93c3e342 MDL-51566 mod_choice: New WS mod_choice_delete_choice_responses 2015-10-07 13:58:51 +02:00
Dan Poltawski 4a06e40908 Merge branch 'MDL-50142_master' of https://github.com/dmonllao/moodle 2015-10-07 12:19:13 +01:00
Dan Poltawski 69783d15da Merge branch 'MDL-50945-master' of git://github.com/xow/moodle 2015-10-07 12:14:47 +01:00
Dan Poltawski cae31eccfd Merge branch 'MDL-50543-master' of git://github.com/jleyva/moodle 2015-10-07 11:36:21 +01:00
sam marshall a0ef17628a MDL-51451 Moodle dialogues: Lock scroll causes background jump
When you add a module or otherwise cause a Moodle dialogue to appear, this
enables the 'lock scroll' feature (the scrollbar disappears).

On some browsers this causes the width of the viewport to change, which can
cause centered/right-aligned theme elements to move distractingly.

This change temporarily sets body max-width while lock scroll is active.
2015-10-07 10:24:25 +01:00
David Monllao 6be0240df5 Merge branch 'MDL-51567-master' of git://github.com/jleyva/moodle 2015-10-07 15:34:23 +08:00
David Monllao 5307265d0d Merge branch 'MDL-51632_echo_url' of git://github.com/moodlerooms/moodle 2015-10-07 15:24:36 +08:00
Dan Poltawski b225215069 Merge branch 'wip-mdl-50524' of https://github.com/rajeshtaneja/moodle 2015-10-07 07:59:31 +01:00
rajesh Taneja ac40984241 MDL-50524 behat: Fixed multiple when then and use of generator 2015-10-07 14:47:01 +08:00
David Monllao 68c3db8f5f Merge branch 'MDL-51537-master' of git://github.com/lameze/moodle
Conflicts:
	lib/upgrade.txt
2015-10-07 14:14:21 +08:00
David Monllao ff93a2a6f3 Merge branch 'MDL-51526-master' of git://github.com/cameron1729/moodle 2015-10-07 13:46:40 +08:00
Cameron Ball ec9e2d0414 MDL-51526 mail: Import PHPMailer 5.2.13 2015-10-07 13:42:40 +08:00
David Monllao 73c359572e MDL-51579 course: Bump version to update mobile service 2015-10-07 12:56:03 +08:00
David Monllao d30255a08d Merge branch 'MDL-51579-master' of git://github.com/jleyva/moodle
Conflicts:
	version.php
2015-10-07 12:48:03 +08:00
David Monllao de27cf6a3f Merge branch 'wip-mdl-51285' of git://github.com/rajeshtaneja/moodle 2015-10-07 11:22:56 +08:00
David Monllao c20c16c154 Merge branch 'MDL-51250-master-3' of git://github.com/junpataleta/moodle 2015-10-07 11:15:26 +08:00
Jakub Kania 9a3ef3893b MDL-50945 course: Add form-submit class to course edit buttons.
With contributions from Mary Evans.
2015-10-07 10:42:45 +08:00
Jun Pataleta d264cbbb8a MDL-51250 course: Add validation for section name 2015-10-06 21:39:54 -05:00
Andrew Nicols bbad52793b Merge branch 'wip-MDL-41042-master' of git://github.com/marinaglancy/moodle 2015-10-07 10:25:56 +08:00
Marina Glancy 5667e60249 MDL-41042 coursecat: reset course contacts cache more often 2015-10-07 10:23:03 +08:00
Marina Glancy a6d4a36388 MDL-41042 coursecat: better handle changes in coursecontact 2015-10-07 10:15:19 +08:00
Adrian Greeve 33a2512acd MDL-49028 mod_wiki: Fix for reseting pages and tags
This will ensure that both pages and tags will be
removed when all the reset options for the wiki are
selected.
2015-10-07 10:03:02 +08:00
David Monllao 0646f596f5 Merge branch 'MDL-51521-master' of git://github.com/cameron1729/moodle 2015-10-07 09:32:13 +08:00
David Monllao 7f9e70beaf Merge branch 'MDL-51525-master' of git://github.com/ryanwyllie/moodle 2015-10-07 09:22:31 +08:00
David Monllao af17e8d9dd Merge branch 'wip-MDL-51315-master' of git://github.com/abgreeve/moodle 2015-10-07 09:20:13 +08:00
Andrew Nicols dabb53c525 Merge branch 'MDL-45981-master' of git://github.com/lameze/moodle 2015-10-07 08:18:10 +08:00
Eloy Lafuente (stronk7) b8e0dcbb7e Merge branch 'MDL-48438' of https://github.com/andrewhancox/moodle 2015-10-07 01:12:17 +02:00
Eloy Lafuente (stronk7) cb171682ff Merge branch 'MDL-49823-master' of git://github.com/jleyva/moodle 2015-10-07 01:08:52 +02:00
AMOS bot 61d1a262e5 Automatically generated installer lang files 2015-10-07 00:04:00 +08:00
Andrew Hancox 08a54173d8 MDL-50526 mod_assign: Highlight error message when user has no group
If I set the "Require group to make submission" setting in an assignment
activity to yes, students who are not in any group are prevented from submitting
their assignment and are presented a warning instead that they should contact
their teacher. This message is now presented in an alert box.
2015-10-06 16:41:25 +01:00
Dan Poltawski a059ef2e9f MDL-50524 assign: improve method visibility and upgrade.txt 2015-10-06 16:32:57 +01:00
Dan Poltawski 1a5f8df5c0 Merge branch 'MDL-50524' of https://github.com/andrewhancox/moodle 2015-10-06 16:32:57 +01:00
Dan Poltawski f5e68c2892 Merge branch 'MDL-51564-master' of git://github.com/jleyva/moodle 2015-10-06 16:32:55 +01:00
Dan Poltawski 67f2463f34 Merge branch 'MDL-51529-master' of git://github.com/damyon/moodle 2015-10-06 16:32:38 +01:00
Dan Poltawski a6c6294091 Merge branch 'MDL-51250_master-empty-return-fix' of git://github.com/dmonllao/moodle 2015-10-06 16:32:38 +01:00
David Monllao d1583d8e9c MDL-51250 course: No function returns in empty() 2015-10-06 16:32:38 +01:00
Dan Poltawski 13371605ed Merge branch 'MDL-51530-master' of git://github.com/ryanwyllie/moodle 2015-10-06 16:32:35 +01:00
Dan Poltawski 4ed45a18d1 Merge branch 'MDL-51532-master' of git://github.com/damyon/moodle 2015-10-06 16:32:23 +01:00
Dan Poltawski 828d23646a Merge branch 'MDL-51676-master-ltiservice_memberships' of git://github.com/mudrd8mz/moodle 2015-10-06 16:32:04 +01:00
Dan Poltawski 3228365b12 Merge branch 'MDL-51533-master' of git://github.com/damyon/moodle 2015-10-06 16:32:04 +01:00
Dan Poltawski 615c7f1923 Merge branch 'MDL-51534-master' of git://github.com/junpataleta/moodle 2015-10-06 16:32:03 +01:00
Dan Poltawski a5bde1f85f Merge branch 'MDL-51535-master' of git://github.com/junpataleta/moodle 2015-10-06 16:32:02 +01:00
Dan Poltawski 6b58b264db Merge branch 'MDL-51538-master' of git://github.com/damyon/moodle 2015-10-06 16:32:02 +01:00
Dan Poltawski 8d49ad2613 Merge branch 'MDL-51539-master' of git://github.com/damyon/moodle 2015-10-06 16:32:02 +01:00
Dan Poltawski d540aa8c70 Merge branch 'MDL-51615-master' of git://github.com/jleyva/moodle 2015-10-06 16:32:00 +01:00
Dan Poltawski c1604af966 Merge branch 'MDL-51588-master' of git://github.com/FMCorz/moodle 2015-10-06 16:31:36 +01:00
Dan Poltawski 4d49a32f9e Merge branch 'MDL-51578' of git://github.com/blaky/moodle 2015-10-06 16:31:35 +01:00
Dan Poltawski 2af6345a6f Merge branch 'MDL-51434_master-fix-unit-test' of git://github.com/dmonllao/moodle 2015-10-06 16:31:35 +01:00
David Monllao 115ef5f91c MDL-51434 mod_scorm: Including protectpackagedownloads in unit tests 2015-10-06 16:31:35 +01:00
David Monllao 358827f0b3 Merge branch 'MDL-51656_master' of git://github.com/markn86/moodle 2015-10-06 16:31:34 +01:00
Andrew Nicols ed845fa7fe Merge branch 'MDL-51228-master' of https://github.com/dthies/moodle 2015-10-06 16:31:34 +01:00
Andrew Nicols 0e30fbd1c8 MDL-51461 javascript: Fix whitespace issue 2015-10-06 16:31:33 +01:00
Andrew Nicols 7a191981b6 Merge branch 'MDL-51461' of https://github.com/andrewhancox/moodle 2015-10-06 16:31:32 +01:00
Andrew Nicols 2dcbd2a27d Merge branch 'MDL-44707-master' of git://github.com/marinaglancy/moodle 2015-10-06 16:31:32 +01:00
Andrew Nicols 05e6215c48 Merge branch 'MDL-50805_master' of https://github.com/crazyserver/moodle 2015-10-06 16:29:14 +01:00
David Monllao d50b4a6e16 Merge branch 'MDL-51250-master' of git://github.com/junpataleta/moodle 2015-10-06 16:26:55 +01:00
David Monllao 889a9fbba1 MDL-49811 mod_choice: Removing skipresultgraph link
The target of the link is not available after MDL-30816.
2015-10-06 16:26:54 +01:00
David Monllao 7da61f95ce Merge branch 'MDL-49811_master' of git://github.com/jinhofer/moodle 2015-10-06 16:26:54 +01:00
David Monllao 86c48d177e Merge branch 'master-MDL-49750' of git://github.com/jojoob/moodle 2015-10-06 16:26:53 +01:00
David Monllao c6ce30bb3f Merge branch 'MDL-51434-master' of git://github.com/jleyva/moodle 2015-10-06 16:26:53 +01:00
David Mudrák 3562c426b5 MDL-51676 mod_lti: Mark LTI Memberships service as a standard plugin 2015-10-06 14:13:39 +02:00
Juan Leyva 9748791ba8 MDL-51564 webservice: Review the use of external format_string 2015-10-06 14:00:45 +02:00
Bence Laky 933f0d966e MDL-51578 enrol_self: Improved error message on late/early enrolments 2015-10-06 09:16:18 +01:00
Simey Lameze ac9d9646d4 MDL-45981 auth_cas: add cURL SSL versions dropdown 2015-10-06 14:59:14 +08:00
Tim Hunt 55656b0c7d MDL-51375 excel output: more work to avoid invalid sheet names 2015-10-06 05:44:50 +01:00
rajesh Taneja a6bd22b08c MDL-51660 behat: Upgarde behat and phpunit
1. Behat upgrade to 2.5.5
2. phpunit upgrade to 4.8.*
2015-10-06 10:53:01 +08:00
Marina Glancy 2542cb5468 MDL-51604 course: trigger course created event earlier 2015-10-06 09:44:55 +08:00
Jun Pataleta f1bfc8971f MDL-51250 course: Display the default section name
This patch makes the default section name appear in brackets
beside the 'Use default section name' checkbox.
2015-10-05 14:03:07 -05:00
Dan Poltawski 8b6ceab953 Merge branch 'wip-MDL-49189-master' of https://github.com/kwiliarty/moodle 2015-10-05 15:02:58 +01:00
Dan Poltawski 7c88aa7bec Merge branch 'wip-MDL-51636-master' of https://github.com/marinaglancy/moodle 2015-10-05 14:59:16 +01:00
jinhofer 0b7856efbe MDL-49811 lib: Added js to skiplinks
I have added a JS module to handle skiplinks to send
the focus to the end of the block. This improves the function
and allows the user to better tab through the page.
2015-10-05 06:17:58 -05:00
Dan Poltawski 93ca67d637 Merge branch 'MDL-51501-master' of git://github.com/merrill-oakland/moodle 2015-10-05 11:47:52 +01:00
Dan Poltawski 61c257e7ee Merge branch 'wip-MDL-49028-master' of git://github.com/abgreeve/moodle 2015-10-05 10:44:37 +01:00
Johannes Burk 8c3b27d4b2 MDL-49750 mod_data: fix updating file/picture fields breaks references
Use file_save_draft_area_files on file/picture update and
set content to null if file was removed.
2015-10-05 11:42:53 +02:00
David Monllao cc69a29b4b Merge branch 'MDL-51514_master' of git://github.com/markn86/moodle 2015-10-05 15:59:43 +08:00
David Monllao fe73503248 Merge branch 'MDL-51408-master' of git://github.com/marinaglancy/moodle 2015-10-05 13:49:00 +08:00
David Monllao b0fca9208b Merge branch 'MDL-51478-master' of git://github.com/jleyva/moodle 2015-10-05 13:38:43 +08:00
David Monllao 6ee188b162 MDL-50613 webservices: Upgrade info about riskbitmask 2015-10-05 12:19:29 +08:00
David Monllao 117fb5a21e Merge branch 'MDL-50613-master' of git://github.com/jleyva/moodle 2015-10-05 12:10:40 +08:00
Jun Pataleta 1340ed8efa MDL-51534 libraries: Update TCPDF library to 6.2.12 2015-10-04 22:02:00 -05:00
Jun Pataleta d463b9c178 MDL-51535 libraries: Update Jquery to 1.11.3 2015-10-04 21:54:49 -05:00
Simey Lameze f77cd37160 MDL-51537 libraries: update horde library to 5.2.7 2015-10-05 09:58:44 +08:00
Adrian Greeve 30836b17da MDL-49028 mod_wiki: Fully reset wiki pages.
All the wiki pages as well as comments and tags
can now be reset.

A thank you to Daniel Kosinski and Pascal Maury for
providing patches for this improvement.
2015-10-05 09:48:38 +08:00
David Monllao 4d37d462ca MDL-50142 editor: Refining editor preference help
All credit goes to Helen Foster.
2015-10-05 09:32:32 +08:00
Ben Tindell f611319ed4 MDL-50142 user: context sensitive help
Added context sensitive help to
Edit Profile > Text Editor
2015-10-05 09:32:32 +08:00
Mark Nelson 112117c00e MDL-51523 core: upgraded Auth_RADIUS to 1.1.0 2015-10-04 13:53:17 -07:00
Juan Leyva dfcdec1254 MDL-50543 mod_lti: New WS mod_lti_get_ltis_by_courses 2015-10-04 21:19:18 +02:00
Juan Leyva d5ded9e72d MDL-51615 mod_lti: New Web Service mod_lti_get_tool_launch_data 2015-10-04 21:19:06 +02:00
Juan Leyva 77496aa556 MDL-51567 mod_scorm: Return warnings for invalid attempt numbers
In the external function get_scorm_sco_tracks
2015-10-04 21:15:21 +02:00
Juan Leyva 13bb68199e MDL-51579 core_course: New Web Service get_course_module_by_instance 2015-10-04 21:11:01 +02:00
AMOS bot eac57bbd86 Automatically generated installer lang files 2015-10-05 00:04:37 +08:00
Marina Glancy 810805da9e MDL-51636 core_tag: allow setting tags in generators 2015-10-04 22:25:37 +08:00
AMOS bot 6727489cae Automatically generated installer lang files 2015-10-04 00:04:00 +08:00
Kevin Wiliarty c85aa9d606 MDL-49189 auth: Map data to profile fields with uppercase shortnames 2015-10-03 06:58:46 -04:00
Juan Leyva ae67efa883 MDL-51615 mod_lti: New Web Service mod_lti_get_tool_launch_data 2015-10-03 08:25:28 +02:00
Mark Nelson e84b1eba3d MDL-51656 auth_radius: fixed colon location 2015-10-02 16:34:14 -07:00
Sam Chaffee 84ab39cf77 MDL-51514 gradebook: Optimize set_usedinaggregation query for MySQL 2015-10-02 11:28:15 -06:00
AMOS bot e55bb42ce5 Automatically generated installer lang files 2015-10-03 00:04:05 +08:00
Mark Nielsen 2df73956b8 MDL-51623 core_event: Allow observation of parent events 2015-10-02 08:45:31 -07:00
Dan Poltawski 35d3e8b00b weekly release 3.0dev 2015-10-02 10:57:29 +01:00
Dan Poltawski dd52e20b72 NOBUG: Fixed SVG browser compatibility 2015-10-02 10:57:28 +01:00
Dan Poltawski 04d4ca7f61 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-10-02 10:57:27 +01:00
Dan Poltawski 381c55b906 Merge branch 'MDL-48947_master-dnd-span' of git://github.com/dmonllao/moodle 2015-10-02 08:05:13 +01:00
Damyon Wiese df09876082 MDL-51530 libraries: Upgrade less.php to 1.7.0.9 2015-10-02 05:03:40 +00:00
David Monllao 5b9718928a MDL-48947 course: Adding the new extra span after dropping a section 2015-10-02 11:12:24 +08:00
Mark Nielsen aff1db055f MDL-51632 tool_generator: Print URL of the generated course 2015-10-01 11:03:12 -07:00
Juan Leyva 8b06acf76c MDL-51434 mod_scorm: New global setting for enabling package downloads 2015-10-01 18:16:01 +02:00
Eloy Lafuente (stronk7) 3883191436 MDL-51555 behat: Added @_file_upload missing tags
So phantomjs can perform complete runs without breakage.
2015-10-01 17:41:48 +02:00
Dan Poltawski e976a02cef MDL-48947 css: compile less 2015-10-01 16:12:13 +01:00
Dan Poltawski 331315a4c1 Merge branch 'MDL-48947_v3_patch' of https://github.com/Syxton/moodle 2015-10-01 16:12:09 +01:00
Syxton c73fd11e86 MDL-48947 patch - fix unclickable menu issues
remove z-index fix and instead keep the header from gaining the opacity
change on hide
2015-10-01 10:54:23 -04:00
Andrew Hancox 81295fc40e MDL-48438 core: Add fullname where known to failed login notifications. 2015-10-01 12:44:11 +01:00
Andrew Hancox fb57f15170 MDL-51399 report_outline: Hide blog column if blogs are disabled. 2015-10-01 10:46:58 +01:00
Pau Ferrer Ocaña 60b69e4d2f MDL-50805 Messages: Add index to message_read to speed up message crons 2015-10-01 10:34:30 +02:00
Juan Leyva d85bedf796 MDL-49823 webservice: Support gravatar profile images 2015-10-01 09:36:31 +02:00
Simey Lameze 9b3ae641e4 MDL-45981 auth_cas: coding style fixing 2015-10-01 15:08:05 +08:00
John Gasper 6d4cae04b6 MDL-45981 auth_cas: add suport to SSL3 on CAS.
This patch gives the user the option of specifying which SSL version PHPCAS/cURL should use.
2015-10-01 14:49:13 +08:00
David Monllao 6dbb46ec0f MDL-46710 mod_lti: Removing duplicated generated events
Event generation and completion should be generated only once.
2015-10-01 11:55:38 +08:00
Eloy Lafuente (stronk7) c75b891ba7 Merge branch 'MDL-49821-master-master' of git://github.com/jleyva/moodle 2015-10-01 01:26:58 +02:00
Eloy Lafuente (stronk7) 6a0deee441 Merge branch 'MDL-51227-master' of https://github.com/dthies/moodle 2015-10-01 00:25:31 +02:00
Eloy Lafuente (stronk7) 9fb434a618 Merge branch 'wip-mdl-51266' of https://github.com/rajeshtaneja/moodle 2015-09-30 20:34:33 +02:00
Eloy Lafuente (stronk7) 880eb93d3f Merge branch 'MDL-51292-master' of git://github.com/cameron1729/moodle 2015-09-30 17:32:57 +02:00
Andrew Hancox e56e7c164d MDL-51461 core: Fix issue with client side mustache templates 2015-09-30 10:38:05 +01:00
Juan Leyva fca9e67c25 MDL-50613 webservice: Remove risk bit masks for Web Service protocols
This will prevent to show a 'Critical' status in security overview
report when mobile services are enabled
2015-09-30 09:34:23 +02:00
David Monllao 161649644d Merge branch 'MDL-51415-master' of git://github.com/jleyva/moodle 2015-09-30 14:15:29 +08:00
Damyon Wiese 80af92f0fe MDL-51531 libraries: Upgrade google libraries to 1.1.5 2015-09-30 13:28:19 +08:00
Damyon Wiese fc07d950ea MDL-51605 Rangy: Patch out AMD support (we can't use it from YUI). 2015-09-30 13:17:28 +08:00
Damyon Wiese 0fde7efad1 MDL-51605 atto: Update rangy to 1.3.0 2015-09-30 13:08:15 +08:00
Damyon Wiese bd738ddf5f MDL-51529 libraries: Upgrade html5shiv to 3.7.3 2015-09-30 12:59:30 +08:00
David Monllao 7f64df4131 Merge branch 'wip-MDL-44640-fix' of git://github.com/marinaglancy/moodle 2015-09-30 12:43:55 +08:00
Adam Olley dba0fdc2bc MDL-9070 forum: Add margin in rtl mode to timed post icon
As the icon has a float on it to move it to the right, a margin-top
needs to be applied to keep it aligned the same as in ltr.
2015-09-30 12:27:12 +08:00
Damyon Wiese 7fa6b58762 MDL-51532 libraries: Update htmlpurifier to 4.7.0 2015-09-30 11:55:03 +08:00
Damyon Wiese 4eeea2cbdc MDL-51533 minify: Update to 2.2.1 2015-09-30 11:41:08 +08:00
Marina Glancy e7b161f0b2 MDL-44640 course: account for multiple events in course actions 2015-09-30 11:35:40 +08:00
David Monllao ad704e2c49 Merge branch 'mdl51440-master' of git://github.com/tlock/moodle 2015-09-30 10:48:25 +08:00
David Monllao 8e31c017f2 MDL-9070 mod_forum: Reducing it to a single scenario 2015-09-30 10:09:03 +08:00
David Monllao 15791dffac Merge branch 'MDL-9070' of git://github.com/aolley/moodle 2015-09-30 09:29:55 +08:00
Eloy Lafuente (stronk7) d4e65df215 Merge branch 'MDL-49143-master' of git://github.com/cameron1729/moodle
Note: Fixed small bug in unit test.
2015-09-30 03:22:26 +02:00
Adam Olley 05f1455b35 MDL-9070 forum: Show timed post display period
This adds the following changes when viewing a list of discussions and
forum_enabletimedposts is turned on.

* Discussions a student wouldnt see right now are dimmed (timestart in
  future or timeend in the past).
* A icon appears next to the discussion subject, the tooltip for this
  icon displays the display start and/or end time. This only appears for
  the user that made the discussion or has permission to
  viewhiddentimedposts.

These two changes achieve a couple of important things, namely, teachers
will not mistakenly think their students can see a discussion when
viewing the list if they've later forgot that they set a time limit on
it (or indeed if someone else put it on their discussion without them
realising). Additionally it makes it easy to see from the list when
different discussions are set to be released without having to go in and
edit them to find out.

Change-Id: Ia1818b33c00adae0dad72df8e170a078fb66cd76
2015-09-30 09:18:31 +09:30
Dan Poltawski 5fc9fdd54e Merge branch 'MDL-51402' of git://github.com/timhunt/moodle 2015-09-29 20:54:45 +01:00
Dan Poltawski 2764d7a597 Merge branch 'wip-mdl-51424' of https://github.com/dthies/moodle 2015-09-29 20:33:28 +01:00
Dan Poltawski 747554d335 Merge branch 'MDL-50658' of https://github.com/spvickers/moodle 2015-09-29 16:50:45 +01:00
Dan Poltawski a3b1172dcb Merge branch 'MDL-50602-master' of https://github.com/StudiUM/moodle 2015-09-29 16:03:52 +01:00
Dan Poltawski df15a71836 MDL-51261 config-dist: clarify setting description a little 2015-09-29 13:25:18 +01:00
Dan Poltawski 0dd7bb78d6 Merge branch 'MDL-51261-master-upgradekey' of git://github.com/mudrd8mz/moodle 2015-09-29 12:33:14 +01:00
Dan Poltawski 092455e4d4 Merge branch 'MDL-42639_master' of git://github.com/dmonllao/moodle 2015-09-29 10:20:13 +01:00
Dan Poltawski b33662e4d7 Merge branch 'wip-MDL-44640-master' of https://github.com/marinaglancy/moodle 2015-09-29 10:13:19 +01:00
Damyon Wiese 89c1dcde52 MDL-51536 libraries: Upgrade zend to 1.12.16 2015-09-29 17:06:36 +08:00
David Monllao 07d370849b MDL-42639 user: user:viewalldetails enough to view some fields
The fields are:
- username
- idnumber
- institution
- department
2015-09-29 16:55:14 +08:00
Adrian Greeve b5987836fc MDL-51315 tablelib: Only display table preferences if necessary.
A thank you to Tony Butler for a solution to this issue.
2015-09-29 14:57:19 +08:00
Frederic Massart 3665f8036c MDL-51588 webservice: Allow CORS in webservice/pluginfile.php 2015-09-29 14:40:44 +08:00
Damyon Wiese a36208614c MDL-51538 javascript: Update requirejs to 2.1.20 2015-09-29 14:36:53 +08:00
Damyon Wiese ee5192614a MDL-51539 javascript: Update loglevel library to 1.4 2015-09-29 14:09:31 +08:00
Ryan Wyllie 9f0bb8fe6c MDL-51525 libraries: added graphlib to thirdpartylibs.xml 2015-09-29 06:05:23 +00:00
Andrew Nicols eb89f7cb40 Merge branch 'MDL-43594-master' of git://github.com/junpataleta/moodle 2015-09-29 13:49:30 +08:00
Jun Pataleta 418a0d0465 MDL-43594 mod_assign: Fix calendar update on course reset
This patch fixes the updating of calendar events when the course
is reset and its start date is changed.
2015-09-29 13:46:27 +08:00
Andrew Nicols 853555f9a7 Merge branch 'MDL-35918-master' of git://github.com/ryanwyllie/moodle 2015-09-29 13:42:24 +08:00
Eloy Lafuente (stronk7) 07842a3861 MDL-49143 LTI: Test resource_link_id in lti_build_request() 2015-09-29 13:42:02 +08:00
Cameron Ball 219f956acc MDL-49143 LTI: Fix missing resource id 2015-09-29 13:41:55 +08:00
Cameron Ball c9fd90d4a2 MDL-51521 lib: Import latest PHPExcel 1.8.1 2015-09-29 13:23:52 +08:00
Ryan Wyllie f56ae5a7ac MDL-35918 javascript: dialogues screen reader support
The YUI notification dialogues will now set the appropriate
aria attributes when they are shown/hidden to allow screen
readers to navigate them correctly.

When the dialogue is shown all background elements will be marked
as hidden while the dialogue is marked as visible to a screen reader.

When the dialogue is closed the modified elements will be reverted
to their previous state and the dialogue will be marked as hidden to
a screen reader.
2015-09-29 04:48:57 +00:00
Andrew Nicols c9830ddbb7 Merge branch 'wip-MDL-51241-master' of git://github.com/abgreeve/moodle 2015-09-29 12:22:20 +08:00
Andrew Nicols 2aac262f69 Merge branch 'MDL-51476' of git://github.com/timhunt/moodle 2015-09-29 11:40:40 +08:00
Dan Poltawski 23e1a54f57 Merge branch 'MDL-51305_master_too_many_gradeitem_fetches' of https://github.com/colin-umn/moodle 2015-09-28 16:25:54 +01:00
Dan Poltawski 51e0adf664 MDL-48947 version: bump 2015-09-28 15:45:11 +01:00
Dan Poltawski ebadc15c1f Merge branch 'MDL-48947_v3' of https://github.com/Syxton/moodle 2015-09-28 15:06:21 +01:00
Dan Poltawski 5a068364cb Merge branch 'mdl46710-master' of https://github.com/tlock/moodle 2015-09-28 14:56:52 +01:00
Dan Poltawski 411dea9523 Merge branch 'MDL-51390_master' of https://github.com/totara/openbadges 2015-09-28 13:27:12 +01:00
Dan Poltawski 1b7caf12dc Merge branch 'MDL-51312_master' of git://github.com/markn86/moodle 2015-09-28 11:51:36 +01:00
Dan Poltawski 233ab7ee47 Merge branch 'MDL-51498_regrade_perf' of https://github.com/moodlerooms/moodle 2015-09-28 11:09:12 +01:00
Dan Poltawski 158cc03737 Merge branch 'MDL-50109-master-blogsort' of https://github.com/mudrd8mz/moodle 2015-09-28 10:44:47 +01:00
Yuliya Bozhko 4d0ebdebc5 MDL-51390 badges: Switch backpack URL to use HTTPS
Signed-off-by: Yuliya Bozhko <yuliya.bozhko@totaralms.com>
2015-09-28 10:37:03 +01:00
Dan Poltawski 52f4e19bbd Merge branch 'MDL-49482-master' of https://github.com/blckct/moodle 2015-09-28 10:31:48 +01:00
AMOS bot 6f5edd3158 Automatically generated installer lang files 2015-09-28 00:04:04 +08:00
Marina Glancy 7fdc469048 MDL-44640 enrol_meta: sync when enrol method is updated 2015-09-27 17:52:20 +08:00
Marina Glancy 080c7d471d MDL-44640 enrol: trigger events on instances actions 2015-09-27 17:52:20 +08:00
Daniel Thies 7bb2069bfa MDL-51227 editor_atto: Stop Chrome losing selection when formating 2015-09-25 09:32:46 -05:00
Tim Hunt ddc016830d MDL-51476 questions: manual grading validation for ungraded Qs
The change in MDL-51090 broke manually commenting on questions for which
no mark is given (max mark == 0). This fixes it, with unit tests.

Thanks to Nick Phillips for the original suggestion of the fix.
2015-09-25 14:01:33 +01:00
Juan Leyva 4485f7c549 MDL-49821 webservice: Add active user checks in external functions 2015-09-25 11:33:13 +02:00
Juan Leyva 3961ebfbc0 MDL-49821 core_user: New function for checking if a user is active 2015-09-25 11:33:13 +02:00
Eloy Lafuente (stronk7) a9ed308f74 Merge branch 'wip-mdl-51555' of https://github.com/rajeshtaneja/moodle 2015-09-25 11:31:14 +02:00
rajesh Taneja 0f2aad5908 MDL-51555 behat: Increase question preview window
As question preview window is small, chrome driver
fails to select drag and drop element
2015-09-25 16:53:14 +08:00
Juan Leyva 6b6deb8e74 MDL-51478 webservice: Enable the Mobile service by default 2015-09-25 10:05:04 +02:00
rajesh Taneja 8d892b1d40 MDL-51555 behat: Added @_switch_window tag
DND question types use switch window and the tag
was not added, so it was failing for phantomjs
Added tag to avoid phantomjs failures
2015-09-25 11:53:03 +08:00
Mark Nelson 6fff51d675 MDL-51312 core_message: added unit test for the message_deleted event 2015-09-24 15:13:42 -07:00
Mark Nelson b5e617e245 MDL-51312 core: added message_deleted event 2015-09-24 15:13:42 -07:00
Tim Lock 86b314c7b0 MDL-46710 mod_lti: fix logging and completion tracking in new windows 2015-09-25 06:27:18 +09:30
David Mudrák 6ef02f8479 MDL-51261 admin: Add option to define upgradekey via cli installer 2015-09-24 21:02:33 +02:00
David Mudrák 98b32c9e7e MDL-51261 admin: Support upgrade key requirement on the site upgrade
The upgrade key can be defined in the main config.php as
$CFG->upgradekey.  If it is defined there, then its value must be
provided every time the site is being upgraded, regardless the
administrator is logged in or not.
2015-09-24 21:02:33 +02:00
David Mudrák a277654f7f MDL-51261 admin: Fix the heading when displaying all plugins
Not directly related to the issue but spotted while developing it and it
is not worth of submitting in a separate issue.

At the Plugins check page, when the "Display the full list of installed
plugins" link was followed, the heading at the next page read something
like "Number of plugins requiring your attention: 357". That is
misleading as this is actually not the number of displayed plugins, not
the number of plugins requiring attention.
2015-09-24 21:02:33 +02:00
Jean-Philippe Gaudreau e10c9acc19 MDL-50602 - Automated backup: Add constants for storage types
Improve the code readability significantly by adding constants for storage types.
2015-09-24 14:08:18 -04:00
Jean-Philippe Gaudreau 2b7c85da17 MDL-50602 - Automated backup: Remove old backups associated to courses
Refactoring and renaming of settings.
2015-09-24 14:08:17 -04:00
Eloy Lafuente (stronk7) ec3aa5be7d MDL-49482 sqlsrv: Implement support of Offset/Fetch in SQL Server 2012+ 2015-09-24 20:07:51 +02:00
Jakub Kania 918187a062 MDL-49482 mssql: Implement support of Offset/Fetch in SQL Server 2012+. 2015-09-24 20:07:51 +02:00
Serge Gauthier 694f195da0 MDL-50602 - Automated backup: Remove old backups associated to courses 2015-09-24 14:02:19 -04:00
spvickers 591b3128eb MDL-50658 mod_lti: Add LTI Memberships service
Implementation of the LTI Memberships service.
2015-09-24 17:44:00 +01:00
Eloy Lafuente (stronk7) fd57d685c7 weekly release 3.0dev 2015-09-24 16:06:53 +02:00
Eloy Lafuente (stronk7) caac3c50a1 NOBUG: Fixed file access permissions 2015-09-24 16:06:53 +02:00
rajesh Taneja 4cfaf27c08 MDL-49973 behat: Fixed string change from Continue to Delete 2015-09-24 15:38:20 +02:00
Eloy Lafuente (stronk7) 02be8a0427 Merge branch 'MDL-50207-master' of git://github.com/lameze/moodle 2015-09-24 15:38:19 +02:00
Eloy Lafuente (stronk7) e99b197e97 MDL-51371 course: fix core_course_get_course_module assertion
A recent bugfix before integration left this failing. They are 22.
2015-09-24 15:38:18 +02:00
Eloy Lafuente (stronk7) f95452b84f Merge branch 'MDL-51371-master' of git://github.com/jleyva/moodle 2015-09-24 15:38:14 +02:00
Eloy Lafuente (stronk7) 46e92173fd Merge branch 'wip-MDL-51259-master' of git://github.com/abgreeve/moodle 2015-09-24 15:37:12 +02:00
Andrew Nicols dcfae879e9 MDL-51172 core: Adjust WS help strings 2015-09-24 15:37:12 +02:00
Andrew Nicols fff882dd8a Merge branch 'MDL-51182' of https://github.com/danielneis/moodle 2015-09-24 15:37:11 +02:00
rajesh Taneja 267033a979 MDL-50940 behat: Added support for field matching with xpath 2015-09-24 13:00:15 +08:00
Cameron Ball 584dd1b35d MDL-51292 core_message: Notify when leaving page or closing modal.
- Add reset_dirty_state method to formchangechecker. This is useful when used in combination with a modal.
- Modify hide method of sendmessage to reset formchangechecker dirty state on modal close.
2015-09-24 12:35:20 +08:00
Juan Leyva c515849937 MDL-51371 course: New Web Service core_course_get_course_module 2015-09-23 15:32:15 +02:00
rajesh Taneja 5ecf8e8f21 MDL-51266 unittest: replaced low level phpunit_util calls 2015-09-23 15:42:48 +08:00
Andrew Nicols 32cc0de4f3 MDL-50349 mod_scorm: Bump version for new WS 2015-09-23 13:40:29 +08:00
Andrew Hancox d9fddb0bc6 MDL-50940 behat: Added ability to check field value by xpath 2015-09-23 12:45:00 +08:00
Andrew Nicols d26b770814 Merge branch 'MDL-50332_master-form-fix' of git://github.com/dmonllao/moodle 2015-09-23 11:50:29 +08:00
Andrew Nicols 3678dd00c2 Merge branch 'MDL-51222-master-fix' of https://github.com/andrewnicols/moodle 2015-09-23 11:43:15 +08:00
Andrew Nicols 57884502bc MDL-51222 Javascript: Reapply YUI config after adding modules 2015-09-23 10:49:59 +08:00
David Monllao 012d14e892 MDL-50332 enrol_self: Setting form url for guests
Credit to Andrew Nicols.
2015-09-23 09:52:04 +08:00
Andrew Nicols b8ceed62d2 Merge branch 'MDL-51423-master-cliout' of git://github.com/mudrd8mz/moodle 2015-09-23 09:42:29 +08:00
Andrew Nicols be09ca85ef MDL-50664 mod_data: Fix for unit test failure 2015-09-23 09:27:30 +08:00
Eric Merrill 0e55333a86 MDL-51501 themes: pix_icon should not include empty alt tags 2015-09-22 17:20:37 -04:00
Mark Nielsen 5f6e2fc9d3 MDL-51498 core_grades: Prevent unnecessary grade record fetching
All of these changes make use of already
fetched grade data.  Without these changes,
the gradebook regrade process does not scale
well with very large courses because it fetches
many grade records, one at a time.
2015-09-22 12:04:28 -07:00
Eloy Lafuente (stronk7) 201a26bbaa Merge branch 'MDL-47494' of git://github.com/timhunt/moodle
Note: Fixed some minor grunt and EOF whitespace issues while merging.
2015-09-22 18:38:27 +02:00
Dan Poltawski 5c7c9ea99a Merge branch 'MDL-51107-master' of git://github.com/FMCorz/moodle 2015-09-22 15:11:10 +01:00
Frederic Massart 61ce548a71 MDL-51107 navigationlib: Plugins can extend navigation category settings 2015-09-22 21:58:50 +08:00
Dan Poltawski b7a87899c5 Merge branch 'MDL-50541-master' of git://github.com/jleyva/moodle 2015-09-22 14:37:22 +01:00
Juan Leyva 48a90a215b MDL-51415 webservice: Check course access using can_access_course()
This function check both user enrolled and course:view capabilities
2015-09-22 15:29:49 +02:00
Dan Poltawski f43194ab36 Merge branch 'MDL-50349-master' of git://github.com/jleyva/moodle 2015-09-22 13:17:03 +01:00
Dan Poltawski df44776afd Merge branch 'MDL-50536-master' of git://github.com/jleyva/moodle 2015-09-22 12:55:46 +01:00
Dan Poltawski 79eb3afa9b Merge branch 'MDL-50132-master' of git://github.com/jleyva/moodle 2015-09-22 12:46:39 +01:00
Dan Poltawski abd3fdc977 Merge branch 'wip-MDL-51108-master' of git://github.com/abgreeve/moodle 2015-09-22 11:48:49 +01:00
Dan Poltawski 0730ddc2ad Merge branch 'MDL-50664-master' of git://github.com/ryanwyllie/moodle 2015-09-22 10:39:33 +01:00
Dan Poltawski 11a83dbb1e Merge branch 'MDL-49973-master' of git://github.com/cameron1729/moodle 2015-09-22 09:44:44 +01:00
Dan Poltawski 2e3b61fc4a MDL-50917 navigation: fix incorrect @since 2015-09-22 09:36:06 +01:00
Dan Poltawski b3e959497e Merge branch 'wip-MDL-50917-master' of git://github.com/abgreeve/moodle 2015-09-22 09:15:57 +01:00
Dan Poltawski 16d08d465b Merge branch 'MDL-51412_qtype_index' of git://github.com/davosmith/moodle 2015-09-22 09:00:00 +01:00
Damyon Wiese 4e8afd56d5 MDL-51222 javascript: Merge all the YUI instances
We previously had a global Y (simpleyui) and a separate Y created
to put Y in scope for all our modules. This meant that we had 2
separate sandboxes for YUI, which means that modules are duplicated,
and events do not fire across YUI instances.

This change merges the 2 instances, so any code refering to Y will
get the same instance of YUI (amd code, yui modules, static init code etc).

Thanks to Andrew Nicols!
2015-09-22 15:56:40 +08:00
Damyon Wiese 28de777199 MDL-51222 Javascript: Trigger events for filters on DOM insertion
When nodes are added to the dom, they may need to be re-processed by a JS based
filter. To do this we need to trigger the legacy YUI event filter-content-updated.

To make this easier I added some wrappers to template that will insert the node, run any
JS and trigger the event.

I also changed existing yui code to call the amd function to trigger the event. This way
all jquery and yui listeners will always be notified.
2015-09-22 15:40:51 +08:00
Dan Poltawski 74ede2d89a Merge branch 'MDL-46157-master' of git://github.com/cameron1729/moodle 2015-09-22 08:15:01 +01:00
Andrew Nicols a32cd742c3 Merge branch 'MDL-51413-master' of git://github.com/jleyva/moodle 2015-09-22 12:22:55 +08:00
Adrian Greeve d64845996b MDL-50917 navigation: Behat tests for viewing user preference page. 2015-09-22 10:57:52 +08:00
Adrian Greeve 508e364f5e MDL-50917 navigation: Unit test for viewing preference page. 2015-09-22 10:57:52 +08:00
Adrian Greeve 0305ee2781 MDL-50917 navigation: Allow users with permission to access preferences. 2015-09-22 10:57:51 +08:00
Andrew Nicols eed34b118a Merge branch 'MDL-51190-master' of https://github.com/pauln/moodle 2015-09-22 07:53:27 +08:00
Daniel Thies c8719db169 MDL-51424 editor_atto: Save selection and editor contents after change 2015-09-21 08:53:16 -05:00
Ferenc Lengyel efc76e9e90 MDL-51402 quiz: notification emails should respect grouping
In the case where teachers do not have the accessallgroups capability,
we only send "an attempt has been sumbitted "notification to teachers
in the same group as the student who submitted.

At the moment this considers all groups in the course. If this
particular quiz has a grouping set, then the logic should only consider
the groups in that grouping.
2015-09-21 13:28:38 +01:00
Dan Poltawski f3164da6cf Merge branch 'MDL-51330-master' of https://github.com/sammarshallou/moodle 2015-09-21 12:10:35 +01:00
Dan Poltawski 524d037fa0 Merge branch 'MDL-51403-master-clilang' of git://github.com/mudrd8mz/moodle 2015-09-21 11:45:15 +01:00
Dan Poltawski ee3ca2d71b Merge branch 'MDL-51052_master' of https://github.com/dmonllao/moodle 2015-09-21 10:53:29 +01:00
Dan Poltawski c331e8f9c0 Merge branch 'MDL-48165-master-dimgrades' of git://github.com/mudrd8mz/moodle 2015-09-21 10:14:47 +01:00
Andrew Nicols 7e59e5d2d1 Merge branch 'MDL-50332_master' of git://github.com/dmonllao/moodle 2015-09-21 15:43:02 +08:00
David Monllao 8f338081cc MDL-50332 enrol_self: Formatting unavailable instances error messages
Many thanks to Andrew Nicols as this patch is based on his
proposal. Thanks Andrew.
2015-09-21 15:39:42 +08:00
Juan Leyva bae627b276 MDL-50541 mod_imscp: New Web Service mod_imscp_get_imscps_by_courses 2015-09-21 09:30:59 +02:00
Juan Leyva 580a14c265 MDL-50536 mod_book: New WS mod_book_get_books_by_courses 2015-09-21 09:30:06 +02:00
Juan Leyva f07a2bb09b MDL-50132 mod_choice: New WS mod_choice_get_choices_by_courses 2015-09-21 09:27:42 +02:00
Andrew Nicols f19aaed3ea Merge branch 'MDL-50790-master' of git://github.com/cameron1729/moodle 2015-09-21 14:31:49 +08:00
Cameron Ball c052d84d3c MDL-50790 tests: Fix outlook fixture. 2015-09-21 14:25:21 +08:00
Cameron Ball 691a2e1a68 MDL-50790 inbound: Stop incorrect amount of lines getting removed.
Too many lines were being removed for GMail senders. The function was
also removed because it is no longer used, and guessing the client
and cutting accordingly is a poor approach and will probably lead
to issues similar to this one.
2015-09-21 14:25:21 +08:00
Dan Poltawski d13dd5bdfd MDL-50790 messageinbound: fixture for gmail 2015-09-21 14:25:12 +08:00
Andrew Nicols 28eca8cf5b Merge branch 'MDL-46878-master' of git://github.com/FMCorz/moodle 2015-09-21 12:05:32 +08:00
Andrew Nicols b7fd9a0d25 Merge branch 'MDL-51311-master' of git://github.com/damyon/moodle 2015-09-21 11:32:55 +08:00
Andrew Nicols 4b65342dba Merge branch 'MDL-51431' of https://github.com/andrewhancox/moodle 2015-09-21 08:09:38 +08:00
Eric Merrill 8bc1d28b1a MDL-47494 question General code cleanup
Remove old browser CSS.
Fix code style problems.
Add many PHPdocs.
Set @package uniformly.
2015-09-19 07:23:52 +01:00
Daniel Neis Araujo e71a336cac MDL-51182 webservices: generate passwords and mail them to new users 2015-09-18 15:40:07 -03:00
Juan Leyva ea5b910b3a MDL-51413 forum: Return additional field in get_forums_by_courses WS 2015-09-18 17:27:14 +02:00
Damyon Wiese 031152cc83 MDL-47494 qtype: Fix the behat tests for OU dd question types 2015-09-18 07:56:27 +01:00
Damyon Wiese 96a744babd MDL-47494 qtype: Bump the version numbers for OU DD qtypes 2015-09-18 07:56:26 +01:00
Damyon Wiese 5a22d35e8b MDL-47494 question_ddwtos: Remove @ou tags from behat. 2015-09-18 07:56:25 +01:00
Damyon Wiese da98a64d91 MDL-47494 question_ddimageortext: Remove wrong @since tag 2015-09-18 07:56:25 +01:00
Damyon Wiese 5a1a082c93 MDL-47494 questions: Add transparency to new ou question type icons 2015-09-18 07:56:24 +01:00
Damyon Wiese f825273476 MDL-47494 questions: Reload XMLDB files for ou question types 2015-09-18 07:56:13 +01:00
Tim Hunt 6e28e15092 MDL-47494 questions: update plugin_manager with the new qtypes 2015-09-18 07:51:42 +01:00
Tim Hunt b9d85e9a45 MDL-47494 gapselect: removing the qtype_combined integration.
Once this question type is in core. This integration with
qtype_combined will have to ship with qtype_combined, which
is no problem.
2015-09-18 07:51:41 +01:00
Tim Hunt 2e8202e022 MDL-47494 ddmarkder: Remove the code for converting old imagetarget Qs
imagetarget was a Moodle 1.9 question type. The ddmarkers plugin
had code for converting old imagetarget questions to new ddmarker
questions. However, since Moodle core does not support upgrading
directly from 1.9, and since I suspect most pople who might need
this code have already used it, I am removing it form core.
2015-09-18 07:51:41 +01:00
Tim Hunt 096b04058b MDL-47494 questions: clean up unnecessary stuff now these are not plugins
* Remove extra stuff from version.php files.
* Remove README.txt files
* Remove OU-specific test annotations.
2015-09-18 07:51:40 +01:00
Tim Hunt 5c8d91d83f Merge branch 'MDL-47494-ddmarker' into MDL-47494 2015-09-18 07:51:37 +01:00
Tim Hunt 2ce6a9c64f Merge branch 'MDL-47494-ddimageortext' into MDL-47494 2015-09-18 07:51:36 +01:00
Tim Hunt 55d4613f22 Merge branch 'MDL-47494-ddwtos' into MDL-47494 2015-09-18 07:51:34 +01:00
Tim Hunt 1fc5d49cc2 Merge branch 'MDL-47494-gapselect' into MDL-47494 2015-09-18 07:51:33 +01:00
David Monllao 2bdeb8ef30 MDL-51052 dml: More info about mysql and case & accent sensitiveness 2015-09-18 11:45:53 +08:00
Frederic Massart d569c0dae2 MDL-46878 blocklib: Testing blocks_delete_instances() 2015-09-18 11:40:09 +08:00
Frederic Massart 080707079d MDL-46878 my: Behat tests to cover reset of all customised pages 2015-09-18 11:40:09 +08:00
Frederic Massart ad347f6874 MDL-46878 my: Allow admins to reset everyone's dashboard 2015-09-18 11:40:09 +08:00
Charles Fulton 3d47155643 MDL-51052 dml: support for sql_like() under utf8_bin 2015-09-18 09:56:43 +08:00
Adrian Greeve 453adb1adf MDL-51108 mod_data: Addition to behat test for Lat. and Long. 2015-09-18 07:33:12 +08:00
Adrian Greeve d25043270c MDL-51108 mod_data: Add validation for Lat. and Long.
Added a check to see that both the Lat. and Long. values
are entered when filling in database module entries.
2015-09-18 07:33:12 +08:00
Adrian Greeve de66ddea5f MDL-51241 cohorts: Update to cohort query.
This improves the speed of returning a list of
cohorts. Thanks to François Gannaz for providing
this patch.
2015-09-18 07:30:37 +08:00
Adrian Greeve f3013ba67e MDL-51259 mod_data: ratings of items not activated.
When selecting a rating method, the restrict rating
to items with dates would be automatically enabled if
not checked. This code brings the data module inline
with forum and glossary.
2015-09-18 07:21:59 +08:00
David Mudrák c0e8a8a526 MDL-51423 clilib: Fix the hard-coded English text with proper string
The string already exists and is part of the install language packs.
This was just forgotten TODO.
2015-09-17 21:12:46 +02:00
David Mudrák 028bbc5b17 MDL-51423 clilib: Introduce cli_write() and cli_writeln() functions
These are supposed to provide unified API for outputting texts from the
CLI scripts, without the need to mix other cli_* functions with echo()
and manually concatenated end-of-line character.
2015-09-17 21:12:46 +02:00
David Mudrák 7d62bc2417 MDL-51403 install: Improve the language validation in the CLI installer
There are two essential improvements here. Firstly, by replacing the
file_exists() check with array_key_exists() we make sure that only
actual language code will be written into the config.php file (and not
the empty value in case of input that does not pass the PARAM_SAFEDIR
cleaning).

Additionally, we no longer display the full list of available languages
by default. The list can be displayed in the interactive mode by typing
the ? character instead of the language code. This makes the overall
interface cleaner, does not cause the header information (such as the
Moodle version) to scroll away and makes the nice cli logo more visible
(which was the main motivation for the whole patch anyway ;-).
2015-09-17 21:06:32 +02:00
Juan Leyva 91ea3678a9 MDL-50349 scorm: New WS mod_scorm_get_scorms_by_courses 2015-09-17 18:16:22 +02:00
Eloy Lafuente (stronk7) d230899db8 weekly release 3.0dev 2015-09-17 18:01:12 +02:00
Syxton 60cf074239 MDL-48947 course: Section button cleanup
Creates a new method of handling all the section related icons.
Including a new method that places these actions in a menu for topic and
weeks course formats. (This version replaces "Edit" with "Topic/Week/or
Section menu")
2015-09-17 10:40:31 -04:00
Eloy Lafuente (stronk7) 22e97e6413 Merge branch 'MDL-30157_master-fix' of git://github.com/dmonllao/moodle 2015-09-17 11:28:31 +02:00
David Monllao ba523bf5c3 MDL-30157 enrol_manual: timestart a few seconds before
We want to prevent conflicts with get_enrolled_sql trick for db caching
plus users should be able to access the course once enrolled.
2015-09-17 17:09:36 +08:00
Ryan Wyllie ec9e1bec57 MDL-50664 mod_data: tests for 'manageapproved' setting.
Adding test coverage for the 'manageapproved' setting that
was added by Johannes Burk.
2015-09-17 06:18:26 +00:00
Tim Lock 52296930dc MDL-51440 gradeimport_direct: fix config require statement 2015-09-17 14:51:24 +09:30
Simey Lameze 8c55a50dba MDL-50959 gradebook: fix XML grade export 2015-09-17 10:34:50 +08:00
Eloy Lafuente (stronk7) 115c5270cc Merge branch 'MDL-50557-master' of git://github.com/jleyva/moodle 2015-09-16 23:24:39 +02:00
Juan Leyva 35219d8bb9 MDL-50557 scorm: Add attempt field in mod_scorm_get_scorm_sco_tracks 2015-09-16 23:18:40 +02:00
Juan Leyva 6b5e69ebe6 MDL-50557 mod_scorm: New WS mod_scorm_get_scorm_sco_tracks 2015-09-16 23:18:39 +02:00
Eloy Lafuente (stronk7) 6c9872941e Merge branch 'MDL-50353-master' of git://github.com/jleyva/moodle 2015-09-16 23:15:59 +02:00
Juan Leyva f26274a45c MDL-50353 mod_scorm: Fix problem with ids ordering in tests 2015-09-16 23:14:11 +02:00
Eloy Lafuente (stronk7) 765d7b7fd5 Merge branch 'MDL-50353-master' of git://github.com/jleyva/moodle 2015-09-16 22:11:55 +02:00
Juan Leyva 6b4ceb24cf MDL-50353 scorm: New Web Service mod_scorm_insert_scorm_tracks 2015-09-16 22:07:34 +02:00
Juan Leyva 822e9df70d MDL-50352 scorm: New Web Service mod_scorm_get_scorm_user_data 2015-09-16 19:25:19 +02:00
Juan Leyva dfe927c8d6 MDL-50351 scorm: New Web Service mod_scorm_get_scorm_scoes 2015-09-16 19:25:17 +02:00
Andrew Hancox 7fca67ee29 MDL-51431 enrol_flatfile: Fix for startdate when updating users 2015-09-16 11:00:41 +01:00
Marina Glancy 0f7f30021a MDL-51217 auth: check if recaptcha enabled for current plugin 2015-09-16 15:30:04 +08:00
Marina Glancy a853f15fc3 MDL-46705 admin: Validate unique shortname for frontpage course 2015-09-16 14:38:52 +08:00
Marina Glancy 70fb46c87f MDL-51427 user: correctly use strings for phone1 and phone2
Thanks to Olumuyiwa Taiwo for original patch

AMOS BEGIN
  CPY [phone,core],[phone1,core]
AMOS END
2015-09-16 13:37:46 +08:00
David Monllao 974053b93f MDL-48881 mod_lesson: A couple of performance improvements
- Improve memory usage on db drivers not able to use recordsets
  properly
- !array_key_exists replaced by empty calls
2015-09-16 13:32:49 +08:00
David Monllao 48cec36dfb Merge branch 'MDL-48881_m30v5' of git://github.com/sbourget/moodle 2015-09-16 13:20:52 +08:00
David Monllao 13a2aff3f9 Merge branch 'MDL-49561_master' of git://github.com/markn86/moodle
Conflicts:
	lib/bennu/readme_moodle.txt
2015-09-16 09:57:22 +08:00
David Monllao b3ec8cf95e Merge branch 'MDL-46705-master' of git://github.com/dkns/moodle 2015-09-16 09:44:37 +08:00
David Monllao 04fadbeda4 Merge branch 'MDL-50890_master' of git://github.com/dmonllao/moodle 2015-09-16 09:10:28 +08:00
David Monllao 6bc490e270 MDL-50890 enrol_flatfile: Correcting typo and return
Would be safer to return nothing, execute methods don't have
a return. I understand this return 2 was inherited from the
previous cron function.
2015-09-16 09:08:34 +08:00
Jun Pataleta fd1b399527 MDL-50890 enrol_flatfile: Modifications for compliance with standards
Also changed the scheduled task to run every hour.
2015-09-16 09:08:34 +08:00
Troy Williams a771854c46 MDL-50890 enrol_flatfile: Replace cron processing with scheduled task
Replace enrolment plugin flatfile cron processing with scheduled task
2015-09-16 09:08:34 +08:00
Sam Chaffee 5090d26b3a MDL-50936 Atto: Add upgrade path for updating equations setting 2015-09-16 08:24:26 +08:00
Jason Hardin 4f758d7716 MDL-50936 Atto: Add missing math equation buttons 2015-09-16 08:23:20 +08:00
Eloy Lafuente (stronk7) a4a972285e Merge branch 'MDL-50685_master' of git://github.com/dmonllao/moodle 2015-09-16 02:15:51 +02:00
Eloy Lafuente (stronk7) 7bf83951f9 Merge branch 'MDL-50930-master' of git://github.com/jleyva/moodle 2015-09-16 02:11:12 +02:00
Eloy Lafuente (stronk7) 11fa8ca760 Merge branch 'MDL-49032' of https://github.com/stronk7/moodle 2015-09-16 01:00:03 +02:00
Eloy Lafuente (stronk7) 6aa00dadc6 MDL-49032 lib/bennu: update readme to document the change 2015-09-16 00:53:45 +02:00
Joby Harding f66cc72387 MDL-49032 lib/bennu: use HTAB only when folding lines 2015-09-16 00:45:51 +02:00
Eloy Lafuente (stronk7) a9285cd5d4 Merge branch 'MDL-30157_master' of git://github.com/dmonllao/moodle 2015-09-16 00:19:04 +02:00
Eloy Lafuente (stronk7) 62652cdc63 Merge branch 'MDL-50959-master' of git://github.com/lameze/moodle 2015-09-15 23:36:14 +02:00
Eloy Lafuente (stronk7) 4deecee44f Merge branch 'MDL-50892-master' of git://github.com/marinaglancy/moodle 2015-09-15 23:12:22 +02:00
Eloy Lafuente (stronk7) a16a3592f2 Merge branch 'MDL-50766_master' of git://github.com/dmonllao/moodle 2015-09-15 23:02:25 +02:00
Eloy Lafuente (stronk7) 3c80f01661 MDL-49942 core_course: bump version 2015-09-15 22:53:45 +02:00
Eloy Lafuente (stronk7) f536f4a77c Merge branch 'MDL-49942-master' of git://github.com/jleyva/moodle 2015-09-15 22:52:13 +02:00
Davo Smith 581e66373a MDL-51412 question: add index to qtype field 2015-09-15 12:10:50 +01:00
David Monllao 7a3451bc1a MDL-33564 rss: Fixing missing param type 2015-09-15 17:58:05 +08:00
David Monllao b3434ca51d Merge branch 'MDL-33564-master' of git://github.com/danpoltawski/moodle
Conflicts:
	lib/upgrade.txt
2015-09-15 17:56:20 +08:00
David Monllao 3bc0824e46 Merge branch 'MDL-51213-master' of git://github.com/damyon/moodle 2015-09-15 17:28:34 +08:00
David Monllao b3e8e09175 Merge branch 'MDL-50884-master' of git://github.com/lameze/moodle 2015-09-15 17:15:47 +08:00
David Monllao 224d819678 Merge branch 'MDL-50964-master' of git://github.com/jleyva/moodle
Conflicts:
	group/tests/externallib_test.php
	lib/db/services.php
2015-09-15 17:09:33 +08:00
David Monllao 8a08668255 Merge branch 'MDL-50966-master' of git://github.com/jleyva/moodle 2015-09-15 16:58:54 +08:00
David Monllao d005d71881 MDL-30157 enrol_manual: New option to enrol from now
We set the new now option as the default one, as other enrol
plugins use it as the default enrolment start date. We are keeping
the default to today on upgrades.
2015-09-15 16:25:25 +08:00
David Monllao 32f1e17a01 MDL-30157 enrol_manual: Setting proper default
The wrong default value was working because of count starting from 1.
2015-09-15 16:25:25 +08:00
Andrew Nicols 1c97055b68 Merge branch 'MDL-50983-master' of git://github.com/junpataleta/moodle 2015-09-15 15:25:46 +08:00
Juan Leyva 740c354f17 MDL-49942 core_course: New Web Service core_course_search_courses 2015-09-15 09:18:26 +02:00
Johannes Burk 97fe80ad68 MDL-50664 mod_data: add 'manageapproved' setting.
New function data_user_can_manage_entry checks whether a user is allowed to manage an entry.
Considering manageentries capability, data_in_readonly_period() result,
ownership (determined by data_isowner()), approval and manageapproved setting.
2015-09-15 07:16:40 +00:00
David Monllao 366d350412 Merge branch 'MDL-50921-master' of git://github.com/ryanwyllie/moodle 2015-09-15 14:26:57 +08:00
David Monllao de5dd7c5c5 MDL-51048 backup: Removing unnecessary var 2015-09-15 13:43:45 +08:00
David Monllao 79167d5fa9 Merge branch 'MDL-51048' of git://github.com/timhunt/moodle 2015-09-15 13:40:55 +08:00
Andrew Nicols bbbca469ad Merge branch 'MDL-51290-master' of git://github.com/cameron1729/moodle 2015-09-15 13:05:30 +08:00
Damyon Wiese 4093d64332 MDL-50783 ajax: Default for ajax calls to requirelogin=true 2015-09-15 13:01:30 +08:00
Paul Nicholls 0bad799dc4 MDL-51190 javascript: Make "maximised embed" compatible with MS Edge
MS Edge exhibits strange behaviour when M.util.init_maximised_embed hides
the embedded document by setting its width and height to 0px.  Toggling
display:none instead achieves the intended goal without breaking Edge.
2015-09-15 16:34:55 +12:00
David Monllao 785ebcdbe6 Merge branch 'MDL-51008-master' of git://github.com/marinaglancy/moodle 2015-09-15 11:21:22 +08:00
Marina Glancy 4f2424ca1c MDL-51408 badges: fix criteria for custom profile fields 2015-09-15 11:17:21 +08:00
Andrew Nicols 52eaa0ceda Merge branch 'MDL-50982-master' of git://github.com/junpataleta/moodle 2015-09-15 11:01:50 +08:00
David Monllao d4218943d8 Merge branch 'MDL-51147' of git://github.com/timhunt/moodle 2015-09-15 10:07:55 +08:00
David Monllao 9ff2a265d0 Merge branch 'm30_MDL-51363_Fix_Default_Settings_1x_Restore' of git://github.com/scara/moodle
Conflicts:
	mod/scorm/version.php
2015-09-15 09:58:08 +08:00
Andrew Nicols 0b90eb6155 Merge branch 'MDL-50981-master' of git://github.com/junpataleta/moodle 2015-09-15 08:33:06 +08:00
Andrew Nicols 5a191b2f44 Merge branch 'MDL-51017-master' of git://github.com/jleyva/moodle 2015-09-15 08:23:10 +08:00
Matteo Scaramuccia 32c114ca04 MDL-51363 SCORM: fixed default settings on restoring 1.x backups 2015-09-14 23:48:25 +02:00
Cameron Ball 80ef91effa MDL-51290 user: Expand picture section in profile by default 2015-09-14 17:49:48 +08:00
Cameron Ball fdb5d62660 MDL-49973 behat: Update delete button names 2015-09-14 17:46:35 +08:00
Andrew Davis 6537778044 MDL-49973 changed continue to delete on delete confirmations 2015-09-14 17:40:34 +08:00
Juan Leyva 22de67f4af MDL-51017 mod_scorm: New WS mod_scorm_get_scorm_attempt_count 2015-09-14 10:55:52 +02:00
David Monllao 742548e251 Merge branch 'wip-mdl-51101' of git://github.com/rajeshtaneja/moodle 2015-09-14 16:18:01 +08:00
Simey Lameze eb8010351c MDL-50207 block_activity_results: css styling on activity results block
This commit fixes minor styling issues on the activity results block and also add RTL css.
2015-09-14 16:03:40 +08:00
Andrew Nicols ac43dc23e4 Merge branch 'MDL-50783-master' of git://github.com/damyon/moodle 2015-09-14 15:52:42 +08:00
Andrew Nicols 7267daa8d0 MDL-50994 mod_forum: Correct docs for discussion WS 2015-09-14 15:43:26 +08:00
Andrew Nicols 08a4dbfe10 Merge branch 'MDL-50994-master' of git://github.com/jleyva/moodle 2015-09-14 15:40:05 +08:00
Damyon Wiese 88982b71b2 MDL-50783 ajax: Properly deprecate the is_allowed_from_ajax() methods. 2015-09-14 15:10:40 +08:00
Damyon Wiese ad348cbdf9 MDL-50783 ajax: Add specific check for NO_MOODLE_COOKIES
If loginrequired is set for a webservice - NO_MOODLE_COOKIES cannot
be true - or it is a coding error.
2015-09-14 15:10:39 +08:00
Damyon Wiese ba224fb42c MDL-50783 Ajax: Configure how to call a webservice through db/service.php
Now the db/service.php array can contain these extra keys to provide information
on how a webservice may be called:

    'ajax' => true (Default is false)

Replaces the xx_is_allowed_from_ajax callback.

    'loginrequired' => false (Default is true)

Means that this webservice can be called through lib/ajax/service-nosession.php
which sets NO_MOODLE_COOKIES to true (faster). This is only safe for webservices returning
static public data (e.g. get_string).
2015-09-14 15:10:21 +08:00
Andrew Nicols 2cf588d4dc Merge branch 'MDL-50980-master' of git://github.com/junpataleta/moodle 2015-09-14 15:07:31 +08:00
David Monllao 09fe55f4de Merge branch 'MDL-51170-master' of git://github.com/andrewnicols/moodle 2015-09-14 14:14:09 +08:00
Andrew Nicols 9608bed133 Merge branch 'MDL-50782-master' of git://github.com/damyon/moodle 2015-09-14 14:00:52 +08:00
David Monllao 10fea1efb1 Merge branch 'MDL-51191-master' of git://github.com/StudiUM/moodle 2015-09-14 13:58:55 +08:00
David Monllao 1cb33c66ef Merge branch 'MDL-51205_pix_style' of git://github.com/andyjdavis/moodle 2015-09-14 13:31:06 +08:00
David Monllao 8de4e68e0e Merge branch 'MDL-51296-master' of git://github.com/junpataleta/moodle 2015-09-14 13:16:52 +08:00
David Monllao 14face570f Merge branch 'MDL-51253_forum_urls' of git://github.com/BenKelada/moodle 2015-09-14 13:06:38 +08:00
Ben Kelada 3d8d8a8ca6 MDL-51253 forum: fix urls for exceptions and redirects 2015-09-14 14:18:50 +10:00
Jun Pataleta 0b3ed7f777 MDL-51296 blog: Added title that reflects the blog's editing mode 2015-09-14 10:52:09 +08:00
David Monllao 7426ea3dac Merge branch 'MDL-51217-master' of git://github.com/lucisgit/moodle 2015-09-14 10:04:08 +08:00
Simey Lameze ef6998015f MDL-50884 auth_shibboleth: fix logout handler url generation
This patch fixes the shibboleth redirect url generation, that can create invalid url
if the shibboleth logout_handler setting has a parameter generating two parameters
with (?) instead of (&).

Thanks to Matteo Boni for the proposed solution.
2015-09-14 09:48:55 +08:00
David Monllao 3f1bc32d22 Merge branch 'MDL-51232' of git://github.com/jinuabraham/moodle 2015-09-14 09:38:56 +08:00
Simey Lameze e6c990ad21 MDL-50959 gradebook: fix XML grade publishing score 2015-09-14 09:04:14 +08:00
Mark Nelson 53914e4465 MDL-51051 core_grades: 'Categories and items' => 'Gradebook setup' 2015-09-14 08:23:32 +08:00
Daniel Thies d0ec31716b MDL-51228 atto_editor: Add documententation for inlineFormat flag 2015-09-13 14:29:07 -05:00
Colin Campbell 9901bdf7eb MDL-51305 grade: Fix slow grade operations by setting grade_item early.
Exports were fetching the grade item for every item-user combination.
Setting the grade_item object on the grade_item early prevents that.
2015-09-11 15:41:20 -05:00
Jean-Philippe Gaudreau 286d6c81bf MDL-51191 assign: Optimizing slow SQL query for MySQL 2015-09-11 11:10:03 -04:00
Juan Leyva 7ab43ac84a MDL-50994 mod_forum: New Web Service mod_forum_add_discussion 2015-09-11 13:31:36 +02:00
Juan Leyva 23b398fc81 MDL-50930 completion: New WS core_completion_mark_course_self_completed 2015-09-11 11:31:12 +02:00
Juan Leyva c0ef63eb38 MDL-50964 core_group: New Web Service core_group_get_activity_groupmode 2015-09-11 11:30:28 +02:00
Juan Leyva 7107c2f066 MDL-50966 core_group: New WS core_group_get_activity_allowed_groups 2015-09-11 11:29:38 +02:00
David Monllao 8f76bfb628 MDL-50766 grunt: Check that there are yui modules before running shifter 2015-09-11 15:11:48 +08:00
Jetha Chan ec887caa4a MDL-50685 core_form: disable hidden options, don't just hide 2015-09-11 15:08:37 +08:00
Marina Glancy 278b8d18a2 MDL-50892 mod: allow activity to have name '0' 2015-09-11 10:51:52 +08:00
Jun Pataleta e950bca42d MDL-50983 templates: Create core template "columns-autoflow-1to1to1" 2015-09-11 10:32:02 +08:00
Jun Pataleta 2947d0397a MDL-50982 templates: Create core template "columns-1to1to1" 2015-09-11 10:19:00 +08:00
Jun Pataleta 631cc14020 MDL-50981 templates: Create core template "columns-1to2" 2015-09-11 10:08:41 +08:00
Jun Pataleta a317a83b5c MDL-50980 templates: Create core template "columns-2to1" 2015-09-11 10:03:38 +08:00
Eloy Lafuente (stronk7) f495510548 weekly release 3.0dev 2015-09-10 11:09:52 +02:00
Eloy Lafuente (stronk7) 501d9ae74b Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-09-10 11:09:46 +02:00
Rajesh Taneja 1a5a476b03 MDL-51101 behat: Fixed wrong hover step usage
Hover step was being mis-used for checking activity completion
This is replaced with proper step which check for img element
2015-09-10 14:46:12 +08:00
Rajesh Taneja d8ada0f19b MDL-51101 behat: Removed old behat steps checking feature
This was introduced when there were no features
testing all the steps. Now we have all use-cases
so removing this feature file
2015-09-10 14:43:59 +08:00
rajesh Taneja cd3a6a78b6 MDL-50516 behat: Back/next button reloads page
When next/back button is pressed in phantomjs/browserkit
it reload page, so adding a bug_phantomjs, so that we can
test the lesson re-attempt scenario
2015-09-10 14:30:28 +08:00
Damyon Wiese 1748938e15 MDL-51311 javascript: Teach Behat to wait for pending JQuery ajax 2015-09-10 13:02:16 +08:00
Damyon Wiese 08bda175de MDL-51213 weblib: Allow filter=false option for format_string
And pass this from external_format_string correctly.
2015-09-10 12:55:52 +08:00
Damyon Wiese 3676873566 MDL-51213 webservice: Fix wrong use of external_format_text
Was passing cm->id instead of context->id.
2015-09-10 12:13:02 +08:00
Eloy Lafuente (stronk7) e36d7d57ae Merge branch 'MDL-50015-master' of git://github.com/jleyva/moodle 2015-09-10 01:42:06 +02:00
Eloy Lafuente (stronk7) 7650a4c54d Merge branch 'MDL-50537-master' of git://github.com/jleyva/moodle 2015-09-10 01:01:32 +02:00
Tim Hunt 53eee12a7a MDL-51147 qtype_match: stats should cope even if Q edited badly
The numbers become pretty meaningless, but we need to avoid fatal
errors.
2015-09-09 16:48:27 +01:00
Dan Poltawski 5760a1b083 Merge branch 'MDL-50944-master' of git://github.com/jleyva/moodle 2015-09-09 14:29:53 +01:00
Juan Leyva 1df5d7191c MDL-50537 mod_chat: Use the utility class and several fixes 2015-09-09 14:08:02 +02:00
Costantino Cito 9f7de6317d MDL-50537 mod_chat: New WS mod_chat_get_chats_by_courses 2015-09-09 14:08:01 +02:00
Juan Leyva 82f0f5e32c MDL-50537 core_webservice: New external functions utility class 2015-09-09 14:08:01 +02:00
Juan Leyva 43ff833def MDL-50995 mod_forum: Fix WS to not rely in the DB ordering defaults 2015-09-09 12:59:53 +02:00
Andrew Nicols d3d8f81caa MDL-50995 mod_forum: Coding style fixes 2015-09-09 16:16:43 +08:00
Andrew Nicols edf84ada39 Merge branch 'MDL-50995-master' of git://github.com/jleyva/moodle 2015-09-09 16:03:05 +08:00
Andrew Nicols f6c3a22946 Merge branch 'MDL-50852-master' of git://github.com/junpataleta/moodle 2015-09-09 15:38:00 +08:00
Jun Pataleta 36e0030ffe MDL-50852 formslib: Fixed client-side form validation problem.
This patch fixes the problem of client validation being broken when
shortforms is not enabled. This issue is caused by moodle-core-event
module not being loaded and the broadcast parameter in the
Y.Global.publish set to 2 instead of true.
2015-09-09 15:35:01 +08:00
Mark Nelson ab2d8946cd MDL-50516 mod_lesson: changes to existing behat tests 2015-09-09 15:27:24 +08:00
Mark Nelson ecaff8f042 MDL-50516 mod_lesson: added behat tests 2015-09-09 15:27:23 +08:00
Mark Nelson 051b45f864 MDL-50516 core_behat: added ability to go back, forward and reload the browser 2015-09-09 15:27:23 +08:00
Mark Nelson 139645d4a7 MDL-50516 mod_lesson: fixed issue with grade not using minquestions
It's possible to reach the end of the lesson, get your result,
click back until you get to the last question, answer it correctly
and then be awarded a result of 100%. This was because the grade
calculation would only include the questions answered, rather than
all of them in the lesson. However, you can not fix this by always
grading by the amount of questions in the lesson as some lessons
bypass certain questions depending on the answer to previous ones.
The minquestion setting can now successfully be used to prevent this
behaviour by rewording the misleading string and adding logic.
2015-09-09 15:27:23 +08:00
Mark Nelson d60350ddac MDL-50516 mod_lesson: prevented deletion of previous attempts
The 'startlastseen' flag was removing any previous attempts
the user had from the DB. This meant that the user could
simply re-answer the question, regardless of the number
of attempts allowed.
2015-09-09 15:27:23 +08:00
Mark Nelson 0dea8ed76a MDL-50516 mod_lesson: prevented user from repeating question
It was possible in the lesson module for a user to
answer a question, get the result, then click back
in the browser and re-answer it, even if they exceeded
the number of attempts allowed per question.
2015-09-09 15:27:23 +08:00
Eloy Lafuente (stronk7) b8b323d6a9 Merge branch 'wip-mdl-51322' of https://github.com/rajeshtaneja/moodle 2015-09-09 08:21:45 +02:00
Eloy Lafuente (stronk7) 5c6c4a986a Merge branch 'wip-MDL-51357-master' of git://github.com/marinaglancy/moodle 2015-09-09 08:00:46 +02:00
Marina Glancy 2ff1f05183 MDL-51357 roles: fix table layout after MDL-38763 2015-09-09 13:07:11 +08:00
Ankit Agarwal 731c2712e7 MDL-50173 ratings: Use proper checks to ensure ratings are viewable.
Mainly to verify groups visibility this new callback has been created.

Note this was originally 3 commits but for amending purposes they have
been squashed.
2015-09-09 04:07:21 +02:00
Stephen Bourget 0a3c1f79ca MDL-48881 Lesson: Show all attempts on reports. 2015-09-08 21:09:09 -04:00
Andrew Nicols 050bfb3302 Merge branch 'wip-MDL-34938-master' of git://github.com/marinaglancy/moodle 2015-09-09 09:00:27 +08:00
Dan Poltawski 760e38d0f4 Merge branch 'MDL-50013-master' of git://github.com/jleyva/moodle 2015-09-08 15:21:27 +01:00
Dan Poltawski e90783958c Merge branch 'MDL-50853-master' of git://github.com/jleyva/moodle 2015-09-08 13:37:35 +01:00
Dan Poltawski 7e0488ea54 Merge branch 'MDL-51194' of git://github.com/lazydaisy/moodle 2015-09-08 13:27:37 +01:00
Dan Poltawski 33001202d6 MDL-51132 course: add tag require 2015-09-08 13:22:54 +01:00
John Okely fa5a3cdedc MDL-50709 groups: Prevent XSS in grouping description 2015-09-08 12:47:54 +02:00
Dan Poltawski 9e66dff06c Merge branch 'wip-MDL-51132-master' of https://github.com/marinaglancy/moodle 2015-09-08 10:46:38 +01:00
Dan Poltawski 0c05ec3b96 Merge branch 'wip-MDL-50323-master' of git://github.com/abgreeve/moodle 2015-09-08 09:14:14 +01:00
Dan Poltawski 07cc2db61b Merge branch 'MDL-51307-master' of git://github.com/cameron1729/moodle 2015-09-08 09:11:57 +01:00
Andrew Nicols e5728db829 Merge branch 'MDL-51281-master' of git://github.com/jleyva/moodle 2015-09-08 14:07:27 +08:00
Andrew Nicols 1147c5a3d4 Merge branch 'MDL-51325-master' of git://github.com/jleyva/moodle 2015-09-08 12:51:30 +08:00
Cameron Ball e683771623 MDL-51307 navigation: hide message button 2015-09-08 12:10:07 +08:00
Cameron Ball 9b5882d3e1 MDL-46157 drag and drop: Improve item labels
Ignore the edit menu when determining the region to drag.
2015-09-08 11:33:24 +08:00
Marina Glancy 5723dcdd85 MDL-34938 enrol_meta: sync enrolment start/end dates 2015-09-08 10:28:54 +08:00
Marina Glancy d6bef7e706 MDL-51008 grades: show correct default value in overview report 2015-09-08 10:11:20 +08:00
Andrew Nicols fd23f8e7b2 Merge branch 'MDL-51245' of git://github.com/stronk7/moodle 2015-09-08 09:24:00 +08:00
Adrian Greeve 4c607947b2 MDL-50323 themes: Course unordered lists correctly styled.
Thank you to Ann Adamcik for providing this patch.
2015-09-08 09:23:40 +08:00
Damyon Wiese 5d8c198711 MDL-50782 Ajax: No require_login for all ajax webservice calls
Some webservice functions need to be available without a login, e.g.
fetching strings and templates.

External functions must call validate_context if they require a valid login etc.

Added a new parameter to services.php: "loginrequired". Default is true.
2015-09-08 09:16:58 +08:00
Eloy Lafuente (stronk7) 48657a6713 MDL-51245 sqlsrv: Diagnose missing READ_COMMITTED_SNAPSHOT mode
Without it, transactions are executed in standard READ_COMMITED
mode, without snapshoting/row versioning, leading to update
conflicts under high concurrency.
2015-09-08 02:55:53 +02:00
Eloy Lafuente (stronk7) a9daab4927 MDL-51245 mssql: Diagnose missing READ_COMMITTED_SNAPSHOT mode
Without it, transactions are executed in standard READ_COMMITED
mode, without snapshoting/row versioning, leading to update conflicts
under high concurrency.
2015-09-08 02:55:45 +02:00
Andrew Nicols ebdfde7664 Merge branch 'MDL-50287-master' of git://github.com/danpoltawski/moodle 2015-09-08 08:18:03 +08:00
Petr Skoda e4ac3879c2 MDL-50860 core: improve creation of random strings 2015-09-08 01:07:37 +02:00
Tim Lock d89dc6daa5 MDL-42670 mod_assign: Fix recent activity block when blind marking is on 2015-09-07 22:41:41 +02:00
sam marshall b9dba4e3aa MDL-51330 Cron: In log, scheduled tasks don't show component 2015-09-07 18:40:05 +01:00
Corey Wallis a3f5974065 MDL-51048 IMS-CC: Fix import & export of true/false questions 2015-09-07 16:05:11 +01:00
Marina Glancy f06d8d94a1 MDL-50744 enrol_meta: fix incorrect role assign 2015-09-07 10:29:02 +01:00
Adrian Greeve 40a154551f MDL-48371 editors: Option for removing managefiles
We want to remove the managefiles button from the
editors in the wiki so that students don't delete
each others files.
2015-09-07 09:59:35 +01:00
Marina Glancy bec7e6dcb0 MDL-50921 message: allow popup messages from noreply user
Thanks Gary Harris for the patch
2015-09-07 08:11:45 +00:00
Marina Glancy 0d1e545612 MDL-51132 tags: do not use user tags for tagging courses 2015-09-05 11:21:15 +08:00
Mark Nelson 6ae33efccb MDL-49561 core_lib: added info to bennu readme
Also did some minor tweaks to existing code.
2015-09-04 19:38:55 -07:00
Lars Anderson 2be327dca9 MDL-49561 core_calendar: Fix ical export for events with no duration 2015-09-04 19:33:53 -07:00
lazydaisy 3278fd77f2 MDL-51194 theme_bootstrapbase: Move CSS classes from /less/moodle.less 2015-09-04 22:46:59 +01:00
Juan Leyva 6c9b2bb5fe MDL-50013 mod_book: New WS mod_book_view_book 2015-09-04 11:18:10 +02:00
Juan Leyva 1af52267d3 MDL-50013 mod_book: Move logging and completion to new API 2015-09-04 11:17:39 +02:00
Juan Leyva e648d036f8 MDL-50015 mod_imscp: New WS mod_imscp_view_imscp 2015-09-04 11:16:58 +02:00
Juan Leyva 947b02148e MDL-50015 mod_imscp: Move logging and completion to new API 2015-09-04 11:15:54 +02:00
Juan Leyva edf6db6547 MDL-51281 completion: Fixed incorrect returned parameter type
Parameter status in external function get_course_completion_status
2015-09-04 11:14:03 +02:00
Juan Leyva c7697399d1 MDL-51325 notes: Fix external get_course_notes to return site notes 2015-09-04 11:05:08 +02:00
rajesh Taneja 58fad4b873 MDL-51322 behat: ensure the window is properly closed
This is to ensure we have other window closed
so there is no race-around condition
2015-09-04 16:40:14 +08:00
Damyon Wiese 9d3c6b95c7 MDL-48861 assign: Fix the "needs grading" filter
When auto-creating a new grade record - do not set the timemodified > than the submission timemodified
2015-09-04 11:05:57 +08:00
AMOS bot c188c01e81 Automatically generated installer lang files 2015-09-04 00:04:05 +08:00
Andrew Hancox ee5d4eef08 MDL-50524 mod_assign: preventsubmissionnotingroup for multiple groups
When preventsubmissionnotingroup and a user is in multiple groups, display
relevant error messages to the user and teacher
2015-09-03 14:54:46 +01:00
Dan Poltawski 1dabedeedf weekly release 3.0dev 2015-09-03 12:31:49 +01:00
Dan Poltawski 4837c7e472 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-09-03 12:31:47 +01:00
rajesh Taneja 58031eea30 MDL-51090 behat: switch to main window 2015-09-03 10:26:33 +01:00
Damyon Wiese 7cf70b0d97 MDL-38763 roles: Fix example context for mustache templates. 2015-09-03 10:19:21 +02:00
Ryan Wyllie c47f3803f1 MDL-49536 theme_clean: update help text for logo
Updated the help text on the theme settings page to
mention that the theme logo will only be displayed on
the front page and login page.

Conflicts:
	theme/upgrade.txt
2015-09-03 10:19:20 +02:00
Marina Glancy e6acf72970 MDL-50919 behat: temporary fix until behat learns to wait for JQuery 2015-09-03 10:19:20 +02:00
rajesh Taneja 5d38a5cd33 MDL-51285 mod_forum: Discussion post should not have same time stamp
Discussion post are sorted by timemodified
if they have same timemodified then results
will be random
2015-09-03 15:33:23 +08:00
Eloy Lafuente (stronk7) e45f622b8e Merge branch 'MDL-29801_master' of git://github.com/markn86/moodle 2015-09-02 19:19:27 +02:00
Juan Leyva cdb5d405c1 MDL-50853 mod_chat: Unit tests for the external lib 2015-09-02 17:26:05 +02:00
Juan Leyva 5841b9d5d3 MDL-50853 mod_chat: New Web Service mod_chat_view_chat 2015-09-02 17:23:43 +02:00
Juan Leyva 8380bc7fc0 MDL-50853 mod_chat: New Web Service mod_chat_get_chat_latest_messages 2015-09-02 17:23:42 +02:00
Juan Leyva 874aa80f67 MDL-50853 mod_chat: New Web Service mod_chat_send_chat_message 2015-09-02 17:23:41 +02:00
Juan Leyva e4076a6e4c MDL-50853 mod_chat: New Web Service mod_chat_get_chat_users 2015-09-02 17:23:40 +02:00
Juan Leyva 1ca4cdf3e9 MDL-50853 mod_chat: New Web Service mod_chat_login_user 2015-09-02 17:16:13 +02:00
Eloy Lafuente (stronk7) 8a6900ff56 MDL-50919 tags: minor fixes and version bump
This fixes:
- An incorrect exception message.
- tablelib weird behavior creating up to
  pagesize empty rows.

Also forces a version bump so new webservices will become installed.
2015-09-02 13:25:44 +02:00
Juan Leyva 50a2031712 MDL-50995 mod_forum: New WS mod_forum_add_discussion_post 2015-09-02 12:20:06 +02:00
Eloy Lafuente (stronk7) 544be5ad4d Merge branch 'wip-MDL-50919-master' of https://github.com/marinaglancy/moodle 2015-09-02 11:42:11 +02:00
Juan Leyva dffb87edf6 MDL-50944 mod_choice: Unit tests for external functions 2015-09-02 11:29:38 +02:00
Mark Nelson 9cf81a1a16 MDL-29801 core_message: added behat test for deleting messages 2015-09-02 01:45:51 -07:00
Juan Leyva 4c4d3b7303 MDL-50944 mod_choice: New Web Service mod_choice_view_choice 2015-09-02 10:35:37 +02:00
Juan Leyva 1006459415 MDL-50944 mod_choice: New Web Service mod_choice_submit_choice_response 2015-09-02 10:35:36 +02:00
Juan Leyva 565528cebc MDL-50944 mod_choice: New Web Service mod_choice_get_choice_options 2015-09-02 10:35:36 +02:00
Juan Leyva b87f31db53 MDL-50944 mod_choice: New Web Service mod_choice_get_choice_results 2015-09-02 10:35:35 +02:00
Mark Nelson 36d29c089c MDL-29801 core_message: added ability to delete messages
Thanks goes to Jetha for providing the HTML and CSS.
2015-09-02 01:31:17 -07:00
Mark Nelson 4582308508 MDL-29801 core_message: added delete message caps 2015-09-02 01:29:41 -07:00
Dan Poltawski b85e8b747c Merge branch 'MDL-50891_master-unit-test-fix' of git://github.com/dmonllao/moodle 2015-09-02 09:23:07 +01:00
Tim Hunt 6b3bd52fae MDL-51090 question manual grading: fixing for testing issues 2015-09-02 15:09:34 +08:00
Marina Glancy ef4c23ccd2 MDL-50919 tags: new WS core_tag_get_tags 2015-09-02 14:15:16 +08:00
Marina Glancy 8e35585390 MDL-50919 tags: new UI for managing tags 2015-09-02 14:15:13 +08:00
Marina Glancy 0cf7252406 MDL-50919 behat: Step for keypress event in behat 2015-09-02 14:15:09 +08:00
David Monllao c3e1c9b1f3 MDL-50891 core_useragent: Restore default after tests 2015-09-02 13:08:47 +08:00
David Monllao 8b25614c93 MDL-51172 core_files: Using an invented file format 2015-09-02 10:26:26 +08:00
David Monllao dacf3ce4b8 Merge branch 'MDL-51172' of git://github.com/ramdesh/moodle 2015-09-02 10:25:24 +08:00
David Monllao 433eb975a0 Merge branch 'MDL-50529_dupe' of git://github.com/andyjdavis/moodle 2015-09-02 09:58:17 +08:00
David Monllao f242c83c77 Merge branch 'MDL-51090' of git://github.com/timhunt/moodle 2015-09-02 09:47:34 +08:00
David Monllao c32c21802b Merge branch 'MDL-50971' of git://github.com/NeillM/moodle 2015-09-02 09:23:11 +08:00
David Monllao 25d9ae9a93 Merge branch 'MDL-50891-master' of git://github.com/andrewnicols/moodle
Conflicts:
	lib/deprecatedlib.php
2015-09-02 08:54:55 +08:00
David Monllao 11e1e7cf39 Merge branch 'MDL-50920' of git://github.com/sk-unikent/moodle 2015-09-02 08:44:36 +08:00
Eloy Lafuente (stronk7) 89875d2a8a Merge branch 'MDL-50641-master' of git://github.com/danpoltawski/moodle 2015-09-02 01:53:09 +02:00
Eloy Lafuente (stronk7) 17d2a336d1 MDL-43896 admin: Avoid empty(expression), not working under PHP 5.4 2015-09-02 01:20:09 +02:00
Eloy Lafuente (stronk7) 10006e8ff9 Merge branch 'MDL-48494-master-component' of git://github.com/mudrd8mz/moodle 2015-09-02 00:32:13 +02:00
Eloy Lafuente (stronk7) 7cc3cf6fc0 Merge branch 'MDL-43896-master-modulesyntax' of git://github.com/mudrd8mz/moodle 2015-09-02 00:30:33 +02:00
Tim Hunt b2694c0219 MDL-51090 question: further refinements to validating manual grades 2015-09-01 23:05:37 +01:00
David Mudrák eb013fc8bf MDL-48165 workshop: Validate the rubric editing form 2015-09-01 23:37:20 +02:00
David Mudrák b962ae1f41 MDL-48165 workshop: Add support for assessment forms validation 2015-09-01 23:37:17 +02:00
Dan Poltawski c8d19ebea0 MDL-50690 themes: fix commenting coding style
(See also CONTRIB-5891)
2015-09-01 21:11:11 +01:00
Dan Poltawski 20706d0fea Merge branch 'wip_MDL-50690_master' of git://github.com/gjb2048/moodle 2015-09-01 20:59:58 +01:00
AMOS bot 0be100ddef Automatically generated installer lang files 2015-09-02 00:05:28 +08:00
Dan Poltawski 75ac8bac26 Merge branch 'MDL-49950_duplicate_string' of https://github.com/andyjdavis/moodle 2015-09-01 16:20:34 +01:00
Dan Poltawski d1d7d9fd74 Merge branch 'MDL-51236-master' of git://github.com/andrewnicols/moodle 2015-09-01 15:18:31 +01:00
Dan Poltawski 7d8684c552 MDL-38763 fix trailing whitespace 2015-09-01 12:43:23 +01:00
Dan Poltawski 3e5bcbf851 Merge branch 'MDL-38763-master-amd' of git://github.com/mastnym/moodle 2015-09-01 12:17:05 +01:00
David Monllao 85a930f628 Merge branch 'MDL-51234-master' of git://github.com/lazydaisy/moodle
Conflicts:
	theme/bootstrapbase/style/moodle.css
2015-09-01 18:33:40 +08:00
David Monllao 1652309d02 Merge branch 'MDL-51109-master' of git://github.com/danpoltawski/moodle 2015-09-01 18:31:26 +08:00
Dan Poltawski a6e9c23016 MDL-51109 task: more debug info for failed scheduled tasks 2015-09-01 10:59:55 +01:00
Dan Poltawski cd7b48a2e7 Merge branch 'wip-MDL-25451-master' of git://github.com/marinaglancy/moodle 2015-09-01 10:36:17 +01:00
Dan Poltawski 522c7fd350 Merge branch 'MDL-45841' of git://github.com/timhunt/moodle 2015-09-01 10:14:45 +01:00
David Monllao 1780c76493 Merge branch 'wip-mdl-50963' of git://github.com/rajeshtaneja/moodle 2015-09-01 16:06:14 +08:00
David Monllao 05e4b8760a MDL-51179 editor_atto: Updating since tag to only 3.0
This commit should be reverted if we finally backport this solution.
2015-09-01 16:00:32 +08:00
David Monllao 9f6a55f7ea Merge branch 'MDL-51179-master' of git://github.com/damyon/moodle
Conflicts:
	lib/upgrade.txt
2015-09-01 15:57:21 +08:00
rajesh Taneja a9c9ae52e5 MDL-50963 behat: fixed error string in behat 2015-09-01 14:48:11 +08:00
David Monllao eb41f5539e Merge branch 'MDL-50999-master' of git://github.com/andrewnicols/moodle 2015-09-01 14:35:18 +08:00
Martin Mastny 2493568970 MDL-38763 core_role: AMD module for managing permissions 2015-09-01 07:31:58 +02:00
David Monllao 45cd3f6033 MDL-51013 themes: Info about new navbar_button function 2015-09-01 12:35:31 +08:00
Kevin Wiliarty 77241abbad MDL-51013 themes: Suppress navbar button when custom menu is empty 2015-09-01 12:35:24 +08:00
Damyon Wiese 988592c556 MDL-51179 Atto: Extend autosave fix to cover text changes
Added new functions to editor api - set/get_text so the
original form text can be determined from an editor.

When calling use_editor() you should first call set_text() with
the text that will be inserted in the form element.

There is also a new scheduled task for cleaning Atto autosave drafts.
2015-09-01 12:23:00 +08:00
Eloy Lafuente (stronk7) 0df465d10a Merge branch 'wip-MDL-50791-master' of git://github.com/marinaglancy/moodle 2015-09-01 01:52:10 +02:00
Eloy Lafuente (stronk7) c5f05ff551 Merge branch 'mdl-50963' of https://github.com/cdsmith-umn/moodle 2015-09-01 01:42:06 +02:00
Mark Nelson 1efd323842 MDL-29801 install: added message deleted fields 2015-08-31 15:09:51 -07:00
Eloy Lafuente (stronk7) 07db0bbd8f Merge branch 'MDL-49536-master' of git://github.com/ryanwyllie/moodle 2015-08-31 20:48:18 +02:00
Eloy Lafuente (stronk7) 315918f187 Merge branch 'MDL-50677-master' of git://github.com/FMCorz/moodle 2015-08-31 20:31:26 +02:00
Marina Glancy 7a4ff165cb MDL-25451 roles: check if user can assign foles in block 2015-08-31 16:03:27 +08:00
David Mudrák 033761fe9b MDL-48494 admin: Fail validation of plugins with no component declared 2015-08-31 10:01:34 +02:00
David Mudrák 98ea697349 MDL-48494 admin: Require plugins declare their component in version.php 2015-08-31 10:01:34 +02:00
David Mudrák f5f5a60ac9 MDL-43896 admin: Fail validation of plugins with $module in version.php 2015-08-31 09:57:50 +02:00
David Mudrák 01889f019d MDL-43896 admin: Drop support for the $module syntax in version.php 2015-08-31 09:57:50 +02:00
David Mudrák 3920ad93e2 MDL-50109 forum: Add behat tests for posts ordering 2015-08-31 09:55:02 +02:00
David Mudrák 8d960707c4 MDL-50109 forum: Add unit tests for the forum_get_discussion_neighbours
The added tests are variants of existing tests for blog-like forums.
2015-08-31 09:55:02 +02:00
David Mudrák 9e381efd1f MDL-50109 forum: Respect chronological order of blog posts in prev/next
The function forum_get_discussion_neighbours() is used to generate links
to neighbour discussions. I had to change the signature of the function
to have access to the forum's type without the need to re-read it from
the database in additional query.

The SQL query for blogs is a variant of the existing query, just using
the first post's creation time instead of the discussion's timemodified
time.
2015-08-31 09:55:02 +02:00
David Mudrák 8d032f59f4 MDL-50109 forum: Display blog posts in reverse chronological order 2015-08-31 09:55:01 +02:00
David Monllao d0efe9a080 Merge branch 'MDL-51131-master' of git://github.com/marinaglancy/moodle 2015-08-31 14:07:49 +08:00
David Monllao 5d98022e81 Merge branch 'MDL-51084-master' of git://github.com/marinaglancy/moodle 2015-08-31 12:54:49 +08:00
David Monllao 5e567834dd Merge branch 'MDL-51181-m' of git://github.com/micaherne/moodle 2015-08-31 10:55:08 +08:00
David Monllao abbf64e363 Merge branch 'MDL-51215-master' of git://github.com/marinaglancy/moodle 2015-08-31 10:45:19 +08:00
Jinu Abraham b6c97f4c2b MDL-51232 mod_book: Filter name header 2015-08-31 12:04:01 +09:30
lazydaisy 37cbded0c3 MDL-51234 theme_bootstrapbase: hover hardly visible on invert/collapse 2015-08-30 19:59:28 +01:00
Kevin Wiliarty f75afe9b90 MDL-51229 theme: display docked block on top of fixed navbar 2015-08-30 09:37:44 -04:00
Neill Magill ccfb9b69db MDL-50971 ActionMenu: Action menus cause page to jump when closing
This patch changes the behavior of open action menus when using a mouse.

Before this patch when clicking on the page with an open action menu the focus would be
returned to the action menu's call button. This could cause the page to jump when a
mouse user did not close an action menu, scrolled and then tried to perform another
action on the page.

After this patch when clicking the focus will not be returned to the action menu's call button.
The behavior of the script will not be changed when using the keyboard.
2015-08-28 12:13:16 +01:00
Dan Poltawski 20dbcc33e8 MDL-33564 rss: on error return HTTP error status
Also remove an unecessary debugging notice.
2015-08-28 09:53:01 +01:00
Marina Glancy bdead9b5c7 MDL-51084 tool_customlang: return to the same page after submit 2015-08-28 16:20:03 +08:00
Marina Glancy f5b93846af MDL-44707 block_html: copy files when copying instance 2015-08-28 16:03:26 +08:00
Dan Poltawski e28004e614 weekly release 3.0dev 2015-08-28 07:38:07 +01:00
Andrew Nicols 34c6ec1869 MDL-50891 useragent: Move web crawler checks to useragent class 2015-08-28 14:31:51 +08:00
Andrew Nicols 4463f996c4 MDL-51236 phpunit: Prevent testsuite name conflicts
The testsuite name is fed straight into a class_exists() in
PHPUnit_Framework_TestSuite. In some cases, e.g. cachestore_static, the
class does exist, it's then fed into a ReflectionClass, and the test fails.

The testsuite needs to not conflict with any classes which could be
autoloaded in Moodle core.
2015-08-28 14:22:07 +08:00
Damyon Wiese 6f0dfdd969 MDL-51179 Atto: Add a behat test for autosave 2015-08-28 12:09:34 +08:00
Ryan Wyllie 6ceea3fe12 MDL-49536 theme_clean: logo only on front and login
The logo for the clean and more themes will only be
displayed on the front page and login page as it was
replacing the header information on other pages within
Moodle, causing users to lose information on the page.
2015-08-28 02:42:30 +00:00
Daniel Thies 2975411139 MDL-51228 editor_atto: Apply style in plugins if selection is collapsed 2015-08-27 12:15:16 -05:00
Gareth J Barnard 01410430e7 MDL-50690 themes: Theme cache SVG images are not created. 2015-08-27 15:35:23 +01:00
Dan Poltawski 12fb029c67 MDL-50287 completion: version bump 2015-08-27 14:58:04 +01:00
Dan Poltawski 88d350eab4 MDL-50287 lang: remove unused string
(I don't think this string warrants deprecation)
2015-08-27 14:58:04 +01:00
Dan Poltawski 160ccd3d09 MDL-50287 completion: Rename tasks to remove the word 'cron' 2015-08-27 14:58:04 +01:00
Dan Poltawski 0628925bf1 MDL-50287 completion: avoid introducing uncessary functions
Also fix copyright
2015-08-27 14:57:56 +01:00
Josh Willcock 51e488eaf3 MDL-50287 completion: Separated slow task out from cron
The mark started function for the completions scheduled task can be very
slow and causes performance issues when running. By splitting this into
it's own task it can be managed independantly from the other parts which
update regularly.
2015-08-27 14:40:04 +01:00
Dan Poltawski 4ae71e93a8 MDL-49826 grade: hide singleview links when no permissions
Singleview only supports grade editors not viewers at this time.
2015-08-27 13:16:44 +02:00
Eloy Lafuente (stronk7) 1b5034025b Merge branch 'MDL-51148-master-enfix' of git://github.com/mudrd8mz/moodle 2015-08-27 12:46:11 +02:00
Frederic Massart 2b7848050d MDL-50677 user: Prefix custom fields node name in profile tree 2015-08-27 17:28:02 +08:00
Damyon Wiese 9764aab9da MDL-51213 externallib: external_format_text/external_format_string
API functions do not know if they are being called from a web page, or a
web-service. They need a single function to call to correctly apply
filters, strip tags etc that knows the correct way to do this based on
the way it was called (e.g. webservices allow parameters for skipping
filters etc).

So here we are fixing the default for the filter argument used in
external_format_text and adding a matching external_format_string.
2015-08-27 15:56:36 +08:00
Marina Glancy efbd56960c MDL-51215 course: redirect to manage appropriate category 2015-08-27 11:13:06 +08:00
Tim Hunt aa8092c60f MDL-47494 gapselect: Clarify comment. 2015-08-26 23:14:16 +01:00
David Mudrák f729af1609 MDL-51148 tool_langimport: Use the amended string in Behat test 2015-08-26 17:03:36 +02:00
Helen Foster ce2c0f3a74 MDL-51148 lang: Merge English strings from the en_fix language pack 2015-08-26 16:46:43 +02:00
Ruslan Kabalin 7f2033eafe MDL-51217 auth: Check if recaptcha enabled in the plugin used for signup. 2015-08-26 15:25:40 +01:00
Dan Poltawski cd1b845f62 MDL-50641 rss: fix front page rss links
Fallback to guest user token when no user is specified in rss_get_url
rather than generating a junk token which is no use to anyone, this
matches existing logic which has been in place in forum for a while
and avoids custom handling all over the place.
2015-08-26 08:08:43 +01:00
Damyon Wiese 572e00928a MDL-51179 Atto: When a resume is aborted - create a fresh draft for future saves. 2015-08-26 14:15:53 +08:00
David Monllao 6ddfb278d2 Merge branch 'wip_MDL-50869_master' of git://github.com/gjb2048/moodle 2015-08-26 09:44:21 +08:00
Marina Glancy 55a8e86807 MDL-50923 themes: content-only class added before region-only 2015-08-26 03:40:37 +02:00
Andrew Davis 9679425c16 MDL-51205 coding style fixes in /pix 2015-08-26 07:10:53 +08:00
Andrew Davis d1cb06fb1b MDL-49950 removed a duplicate string definition 2015-08-26 05:40:31 +08:00
Andrew Davis d66c9f0d7b MDL-50529 core_grade: removed duplicate code 2015-08-25 21:14:47 +08:00
Eloy Lafuente (stronk7) 4738193225 Merge branch 'wip-MDL-50923-master' of git://github.com/marinaglancy/moodle 2015-08-25 11:34:33 +02:00
Dan Poltawski f1352da1ba Merge branch 'wip-MDL-27177-master' of git://github.com/abgreeve/moodle 2015-08-25 09:55:00 +01:00
Damyon Wiese 2e96b001c4 MDL-51179 Atto: Abort autosave if there are more recent changes to the files
If the files in the draft area have been modified more recently than the timestamp
of the draft - do not restore the files, or you will delete any newer files. We
cannot really guess here - merging the 2 lists of files will be wrong.
2015-08-25 16:09:57 +08:00
David Monllao 7ac0ddd00a Merge branch 'MDL-50933' of git://github.com/timhunt/moodle 2015-08-25 14:28:06 +08:00
David Monllao a2ce97e306 Merge branch 'MDL-50996' of git://github.com/timhunt/moodle 2015-08-25 14:26:25 +08:00
Ramindu Deshapriya 202203e38f MDL-51172 core_files: Added Behat test to automate MDLQA-8166 2015-08-25 08:49:01 +05:30
David Monllao 09fc06d799 Merge branch 'wip-MDL-50973-master' of git://github.com/marinaglancy/moodle 2015-08-25 10:13:18 +08:00
David Monllao 61e44f4033 Merge branch 'mdl-50957' of git://github.com/cdsmith-umn/moodle 2015-08-25 10:06:49 +08:00
Adrian Greeve 4fc7b6a07b MDL-27177 roles: Update to behat full profile tests. 2015-08-25 09:43:17 +08:00
Adrian Greeve 82e4d43842 MDL-27177 roles: Unit test for newly created function. 2015-08-25 09:43:17 +08:00
Adrian Greeve 66a43cd543 MDL-27177 roles: Allow students to see co-students profiles.
If the student shares a course with another student then let them
see the same detail on the full profile page as they do on the
course profile page.
2015-08-25 09:43:17 +08:00
Eloy Lafuente (stronk7) bcf9c54c20 Merge branch 'MDL-50714-master' of git://github.com/andrewnicols/moodle 2015-08-25 00:06:01 +02:00
Tim Hunt 924db7109c MDL-45841 forum: show unread posts on blog-style forum front page 2015-08-24 21:44:56 +01:00
Dan Poltawski ee9b9ffd51 Merge branch 'MDL-49701' of git://github.com/jmvedrine/moodle 2015-08-24 15:14:15 +01:00
Clement Smith 368c1bb674 MDL-50957 grade/report/user: Fix division by zero
When using "sum of grades" and $grademax is zero, a division by zero
error occurs in fill_contributions_column() in
grade/report/user/lib.php.
2015-08-24 09:05:30 -05:00
Dan Poltawski eee9e47d28 MDL-50723 upgrade.txt: Note dropped unused table
Just in case..
2015-08-24 14:52:26 +01:00
Dan Poltawski 482ebc1786 Merge branch 'MDL-50723-master' of git://github.com/andrewnicols/moodle 2015-08-24 14:47:25 +01:00
Dan Poltawski 030806a4ba Merge branch 'MDL-40179-master' of git://github.com/lameze/moodle 2015-08-24 13:40:15 +01:00
Dan Poltawski fcd8119eda Merge branch 'wip-MDL-27859-master' of https://github.com/marinaglancy/moodle 2015-08-24 10:55:03 +01:00
Dan Poltawski 7ee1695850 Merge branch 'MDL-49826_grade_single_view' of git://github.com/davosmith/moodle 2015-08-24 10:39:06 +01:00
Dan Poltawski 4d9845426e Merge branch 'MDL-47450-master' of git://github.com/FMCorz/moodle 2015-08-24 10:25:32 +01:00
Tim Hunt 857e2a6f8c MDL-50996 quiz: fix review error with unusual permissions 2015-08-24 09:53:52 +01:00
Michael Aherne a25b5a9e6b MDL-51181 config: Correct documentation of lock_factory 2015-08-24 09:06:26 +01:00
David Monllao 1e5b562ac9 Merge branch 'MDL-50958-master' of git://github.com/lameze/moodle 2015-08-24 15:40:10 +08:00
David Monllao 259bd67ce9 Merge branch 'MDL-51184-master' of git://github.com/marinaglancy/moodle 2015-08-24 15:29:58 +08:00
Marina Glancy ba2ad4316e MDL-51184 themes: correctly check $CFG->svgicons
Thanks to Ralf Wiederhold for pointing out the bug
2015-08-24 11:06:24 +08:00
Damyon Wiese e0d08bfa5d MDL-51116 Mustache: Caching issue exists with mustache templates
The first ajax load fetches the template and puts it in localstorage + a js var

The second load gets it from local storage, but does not put it in the js var.

The pix_icon helper expects it to be in the js var always.
2015-08-24 10:50:40 +08:00
Bruce Silver 88a26baec0 MDL-50958 block_messages: declare missing stdClass object 2015-08-24 10:47:24 +08:00
David Monllao 8d2a44b554 Merge branch 'wip-MDL-51087-master' of git://github.com/marinaglancy/moodle 2015-08-24 10:18:14 +08:00
Marina Glancy 2aaed97f61 MDL-51131 tags: remove instances when course is deleted 2015-08-22 21:51:11 +08:00
Tim Hunt 83cd293a10 MDL-50933 quiz: improve completion behat tests
These now use the faster set-up methods.
2015-08-21 17:51:04 +01:00
Marina Glancy 46f708ea17 MDL-27859 tags: unit test for tag cleanup 2015-08-21 21:14:10 +08:00
Marina Glancy a196f37088 MDL-27859 tags: unit test for correlated tags 2015-08-21 21:14:06 +08:00
Tim Hunt 99348b2319 MDL-47494 ddmarker: Fix unit tests for 3.0 compatibility. 2015-08-21 12:35:58 +01:00
Tim Hunt 4a53044a10 MDL-47494 ddimageortext: Fix unit tests for 3.0 compatibility. 2015-08-21 12:35:36 +01:00
Tim Hunt 976d30839d MDL-47494 ddwtos: Fix unit tests for 3.0 compatibility. 2015-08-21 12:35:01 +01:00
Tim Hunt b0380cd884 MDL-47494 gapselect: Fix unit tests for 3.0 compatibility. 2015-08-21 12:32:55 +01:00
Andrew Nicols 3c3d38d09a MDL-51170 core: Scheme section of URL should be case insensitive 2015-08-21 12:26:10 +08:00
Andrew Nicols bff7570e87 MDL-50714 mod_forum: Add tests for all groupmodes 2015-08-21 08:19:29 +08:00
Andrew Nicols 344e126378 MDL-50714 mod_forum: Correct use of movedicussions cap when posting
The ability to view the group dropdown was too closely related to the
movediscussions capability when posting, or editing a forum post.

The movedicussions capability should only be considered for some parts of
this logic. Users should be able to select the group to post to when
writing message, as long as they have access to that group.
2015-08-21 08:18:46 +08:00
Nelson Moller 52b08f5fce MDL-51090: mod_quiz grading validation of an essay question
An invalid format is casted to 0 (if a string) or to some truncated value in other cases (ex: 10..5).
2015-08-20 19:58:49 +01:00
Gareth J Barnard 267c636702 MDL-50869 themes: Quiz feedback colours are not accessible. 2015-08-20 16:44:29 +01:00
Davo Smith 4021aa45ce MDL-49826 gradereport_singleview: fix permission check
Users with capability 'moodle/grade:edit' should be able to edit grade values
- 'moodle/grade:manage' is not needed, as grade items are not being changed.
2015-08-20 14:55:56 +01:00
Dan Poltawski 6d392b3027 weekly release 3.0dev 2015-08-20 14:24:28 +01:00
David Monllao cf9fe42f6e Merge branch 'wip-mdl-42634' of git://github.com/rajeshtaneja/moodle 2015-08-20 15:41:07 +08:00
Andrew Nicols 9ed97f19ad Merge branch 'MDL-50801_master-unexisting-caption' of git://github.com/dmonllao/moodle 2015-08-20 15:37:13 +08:00
David Monllao bcd58d9ff7 MDL-50801 atto_table: Caption node might not be present
Users may not use atto table (which always adds a caption) to set
HTML tables, this patch addresses that case.
2015-08-20 15:25:44 +08:00
Andrew Nicols cf86d4f5bc MDL-42634 theme: Increase margin on activity instance to not cover controls 2015-08-20 15:18:14 +08:00
David Monllao 9502083292 MDL-49280 auth: Rewording duplicate emails setting
From allowuserstoshareemailaddresses to allowaccountssameemail, also
changing lang strings.
2015-08-20 12:56:11 +08:00
Damyon Wiese 85fa6a9305 MDL-50150 Mustache: Update to 2.9.0 version of mustache.php
And enable the BLOCKS pragma (we need it for reusable templates).
2015-08-20 11:44:56 +08:00
Damyon Wiese 841e689a1c MDL-50150 Mustache: Add "BLOCKS" feature to javascript mustache engine.
Pull request: https://github.com/janl/mustache.js/pull/473
2015-08-20 11:44:49 +08:00
David Monllao 3ac1350598 Merge branch 'MDL-50880-master' of git://github.com/marinaglancy/moodle 2015-08-20 10:31:20 +08:00
David Monllao 7046798f56 MDL-50391 mod_lti: Fixing indentation 2015-08-20 09:49:22 +08:00
Eloy Lafuente (stronk7) 05f97c615c Merge branch 'MDL-50801_master' of git://github.com/dmonllao/moodle 2015-08-19 19:14:00 +02:00
Andrew Nicols 933183e52a MDL-42634 theme: Increase margin on sectionname to not cover controls 2015-08-19 18:30:38 +02:00
Eloy Lafuente (stronk7) edd94e24b0 Merge branch 'MDL-49085_master' of git://github.com/dmonllao/moodle 2015-08-19 18:30:37 +02:00
Eloy Lafuente (stronk7) 5d60665bef Merge branch 'MDL-46078-master' of git://github.com/damyon/moodle 2015-08-19 18:30:36 +02:00
Barry Oosthuizen 4f0c8f307a MDL-41944 block_onlines_users: Add unit tests 2015-08-19 18:30:36 +02:00
Barry Oosthuizen 0964aa33cf MDL-41944 block_onlines_users: Improve performance 2015-08-19 18:30:35 +02:00
Dan Poltawski d34af71782 Merge branch 'wip-MDL-49746-master' of git://github.com/marinaglancy/moodle 2015-08-19 18:30:34 +02:00
Dan Poltawski a9334960dd Merge branch 'wip-MDL-30315-master' of git://github.com/abgreeve/moodle 2015-08-19 18:30:33 +02:00
Eloy Lafuente (stronk7) 839b8c3905 Merge branch 'MDL-47449-master' of git://github.com/andrewnicols/moodle 2015-08-19 18:30:33 +02:00
Dan Poltawski 215c5cf5c2 MDL-46387 shifter: missing built changes 2015-08-19 18:30:32 +02:00
Dan Poltawski bf4253d772 Merge branch 'MDL-46387-master' of https://github.com/dthies/moodle 2015-08-19 18:30:31 +02:00
Dan Poltawski b1da1e289b Merge branch 'MDL-49841-master' of git://github.com/andrewnicols/moodle 2015-08-19 18:30:31 +02:00
Dan Poltawski 2bd33cfdb0 Merge branch 'MDL-50127-master-squashed' of git://github.com/xow/moodle 2015-08-19 18:30:30 +02:00
Dan Poltawski c47a48d8f5 Merge branch 'MDL-33365-master-3' of git://github.com/andrewnicols/moodle 2015-08-19 18:30:29 +02:00
Dan Poltawski cfd9279f3d Merge branch 'MDL-46167-master' of https://github.com/mackensen/moodle 2015-08-19 18:30:28 +02:00
David Monllao d2999f8085 Merge branch 'MDL-50391-master' of git://github.com/aspark21/moodle 2015-08-19 18:30:28 +02:00
David Monllao edd6e9ebe2 Merge branch 'MDL-51102-master' of git://github.com/andrewnicols/moodle 2015-08-19 18:30:27 +02:00
Marina Glancy 40e501284c MDL-50880 message: correctly compare with empty string
Thanks to David Herney Bernal for providing a fix
2015-08-19 16:01:42 +08:00
Simey Lameze e450eb32d9 MDL-40179 auth_cas: change is_proxybypass parameter to use server url 2015-08-19 10:43:03 +08:00
David Monllao 556decf159 MDL-50801 atto_table: Allow caption position to be set 2015-08-19 09:02:45 +08:00
Adrian Greeve 9b272cc069 MDL-30315 grades: Fix up function doc block.
This was annoying me no end so here is a commit
to set it right.
2015-08-18 17:02:46 +08:00
Adrian Greeve a9ef9c5e82 MDL-30315 grades: Unit tests for grade import. 2015-08-18 17:02:46 +08:00
Adrian Greeve 0305798c62 MDL-30315 gradebook: Uploading feedback doesn't override grades. 2015-08-18 17:02:45 +08:00
Andrew Nicols 2300a312a4 MDL-33365 core: Move JS output to body
It turns out that, after all these years, we've been doing it wrong.
The YUI Loader should be loaded at the top of the body, not in the head.

Having it in the head means that the body has not yet loaded, and we see
a number of minor issues for scripts which happen very early in the load
process. One of these is the creation of invalid HTML from the YUI loader
because it is not able to insert in the body as it has not yet been
created.

To be safe, we must move all JS to the same point (because of unknown
dependencies between them). These should be placed as early in the body as
possible.

We also change the way in which the legacy YUI css modules are loaded.
2015-08-18 15:48:55 +08:00
David Monllao cc7a4f4b39 MDL-49085 block_tag_youtube: Using Youtube data api v3 2015-08-18 11:12:55 +08:00
Marina Glancy 97b1867f0f MDL-50683 user: add default choice 2015-08-18 10:01:11 +08:00
David Monllao ff5b060c37 Merge branch 'MDL-50990_master' of git://github.com/lazydaisy/moodle
Conflicts:
	theme/base/style/blocks.css
2015-08-18 09:47:38 +08:00
Dan Poltawski 0568684bfd Merge branch 'MDL-49891-master-2' of git://github.com/xow/moodle 2015-08-17 15:17:11 +01:00
Dan Poltawski cfeadc66b0 Merge branch 'MDL-49280-m' of https://github.com/micaherne/moodle 2015-08-17 15:03:59 +01:00
Dan Poltawski c7d17be417 Merge branch 'MDL-44828-master' of git://github.com/junpataleta/moodle 2015-08-17 14:24:57 +01:00
Dan Poltawski edc3889618 Merge branch 'MDL-42634-master' of git://github.com/andrewnicols/moodle 2015-08-17 11:44:57 +01:00
David Monllao 2394cf72d6 Merge branch 'wip-MDL-50303-master' of git://github.com/marinaglancy/moodle 2015-08-17 15:06:15 +08:00
David Monllao f3e77a5ea5 Merge branch 'wip-MDL-50962-master' of git://github.com/abgreeve/moodle 2015-08-17 14:56:14 +08:00
David Monllao 6df0e78849 Merge branch 'MDL-51016-m' of git://github.com/micaherne/moodle 2015-08-17 14:21:00 +08:00
David Monllao 78af7dae54 Merge branch 'MDL-50637' of git://github.com/sk-unikent/moodle 2015-08-17 13:56:18 +08:00
David Monllao c05c91d0d4 Merge branch 'wip-MDL-51095-master' of git://github.com/marinaglancy/moodle 2015-08-17 12:06:47 +08:00
David Monllao 34e0377fc6 Merge branch 'wip-MDL-50881-master' of git://github.com/marinaglancy/moodle 2015-08-17 12:03:23 +08:00
David Monllao 889a0c840a Merge branch 'MDL-50911_master' of git://github.com/StudiUM/moodle 2015-08-17 11:58:28 +08:00
David Monllao 7d8edf67ae Merge branch 'wip-MDL-50932-master' of git://github.com/marinaglancy/moodle 2015-08-17 11:43:42 +08:00
Bruce Silver edd99023a6 MDL-50962 user: Profile fields display properly
The department and idnumber fields were not displaying
properly on the user profile pages.
2015-08-17 10:33:05 +08:00
David Monllao 87aadca845 Merge branch 'MDL-51057-M30' of git://github.com/lazydaisy/moodle 2015-08-17 09:53:21 +08:00
David Monllao 068f1fce33 Merge branch 'MDL-51077-master' of git://github.com/sammarshallou/moodle 2015-08-17 09:44:53 +08:00
David Monllao 5e8a03b429 Merge branch 'MDL-51088-master' of git://github.com/andrewnicols/moodle 2015-08-17 09:24:55 +08:00
David Monllao 81c81527cb Merge branch 'wip-mdl-51106' of git://github.com/rajeshtaneja/moodle 2015-08-17 09:01:45 +08:00
David Monllao fd76204a8b Merge branch 'MDL-51100-master' of git://github.com/andrewnicols/moodle 2015-08-17 08:50:49 +08:00
Daniel Thies 2f62ae82a1 MDL-46387 editor_atto: Add behat test for sub/sup 2015-08-16 15:10:02 -05:00
sam marshall 89a73b0815 MDL-51077 Availability: Date restriction unit test static not cleared 2015-08-14 10:51:29 +01:00
John Okely 5e9a937bba MDL-49891 theme_bootstrapbase: Add meta data description to frontpage 2015-08-14 16:49:55 +08:00
Frederic Massart e36b5c0030 MDL-50127 mod_data: RTL styles for the required image 2015-08-14 16:46:58 +08:00
John Okely c07c5e7bdd MDL-50127 mod_data: Fix required icons in add entry screen 2015-08-14 16:46:58 +08:00
Andrew Nicols 97b1a48204 MDL-47449 completion: Ignore timemodified when comparing 2015-08-14 10:53:20 +08:00
Andrew Nicols 504c97925c MDL-47449 phpunit: Add comparitor for isEqual with exceptions
We often do isEqual tests but where a field, may have a single exception.
Ordinarily we can handle this easily by breaking the test down, but when
dealing with mocked objects we can only pass an instance of a
PHPUnit_Framework_Constraint, or a single value (which is cast to an
instance of PHPUnit_Framework_Constraint_IsEqual).

To deal with instances of time-based exception, we need to be able to
compare simple objects and classes where one or two values may be
different.
2015-08-14 10:53:19 +08:00
Andrew Nicols d78613701c MDL-49841 testing: Correct composer incantation 2015-08-14 10:27:53 +08:00
Jun Pataleta 0c4c3b9aed MDL-44828 filelib: Fix open error for force-downloaded files in mobile
Allow guessing of file's MIME type by default. Fallback to
application/octet-stream if MIME type cannot be determined.
2015-08-14 09:54:20 +08:00
Rajesh Taneja 369729cfda MDL-51100 behat: Remove javascript tag from usermenu steps 2015-08-14 08:53:03 +08:00
Andrew Nicols 711b1d6b3e MDL-51100 behat: Remove javascript tag from usermenu steps
These tests only needed the javascript tag because of the user menu.
Now that issue has been resolved, they do not need it.

Note: Some were also not using the singleselect feature, so would fail
without changes to use this too as they were not handling proper selection
of the singleselect element.
2015-08-14 08:52:29 +08:00
Andrew Nicols 04c24a55ec MDL-50723 core: Remove long-defunct table webdav_locks 2015-08-14 08:42:34 +08:00
Andrew Nicols 2e782e5142 MDL-51088 mod_forum: Improve mod_forum behat performance 2015-08-14 07:58:13 +08:00
Andrew Nicols 4569c6966a MDL-51088 completion: Do not require hover to confirm xpath 2015-08-14 07:58:13 +08:00
lazydaisy 054a565806 MDL-50990 theme_base: Fixed errors in CSS mark-up in style/blocks.css 2015-08-14 00:35:04 +01:00
lazydaisy 66cd0e6980 MDL-51057 theme_base: RTL fix adds missing padding to block header h2. 2015-08-14 00:34:05 +01:00
Daniel Thies dc9ca4acea MDL-46387 editor-atto: Toggle sub/sup tags using rangy
In order to have a consistant browser behavior and prevent nesting of
subscripts and superscripts, tags are converted to CSS classes and then
the CSS classes in the selection are toggeled using the rangy crossbrowser
selection library already included in Atto without using an execCommand.
2015-08-13 15:46:29 -05:00
Alistair Spark 8b40604ab9 MDL-50391 format_singleactivity: fix LTI Tool opens in existing window 2015-08-13 14:13:02 +01:00
Marina Glancy 3bacf558d1 MDL-50391 format_singleactivity: fix activity_has_subtypes() 2015-08-13 14:13:02 +01:00
Dan Poltawski 5f92c736e3 MDL-51110 badges: prevent duplicate award of badges
Previously duplicate users could be returned when they had
done duplicate badge criteria - this would lead to a duplicate
constraint being hit as they were attempted to be awarded twice.
2015-08-13 13:21:03 +01:00
Eloy Lafuente (stronk7) dda862abb5 weekly release 3.0dev 2015-08-13 12:16:31 +02:00
Eloy Lafuente (stronk7) 2e446e9443 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-08-13 12:16:24 +02:00
Marina Glancy ddf4e69762 MDL-50923 theme: add missing content-only css class 2015-08-13 16:55:18 +08:00
Andrew Nicols d245f6757d MDL-51102 behat: Add a non-JS version of wait 2015-08-13 15:56:22 +08:00
Rajesh Taneja 3d3d2ae529 MDL-51106 behat: Fixed misuse of javascript tag 2015-08-13 13:23:15 +08:00
Andrew Nicols ff89d94a6f MDL-51100 behat: Remove javascript tag where not required
These tests only needed the javascript tag because of the user menu.
Now that issue has been resolved, they do not need it.

Note: Some were also not using the singleselect feature, so would fail
without changes to use this too as they were not handling proper selection
of the singleselect element.
2015-08-13 13:12:28 +08:00
Marina Glancy 1165cab2b3 MDL-51095 enrol_meta: add missing include
Thanks to Shaun Meyer for providing a patch
2015-08-13 12:29:24 +08:00
Marina Glancy a039418383 MDL-50303 cache: removed unused cache definition 2015-08-13 11:56:53 +08:00
Andrew Nicols 317fd6fe56 MDL-51100 behat: Correct javascript requirement of user menu step 2015-08-13 08:35:17 +08:00
Eloy Lafuente (stronk7) 28a614a83f Merge branch 'MDL-50371' of https://github.com/danielneis/moodle 2015-08-13 00:38:41 +02:00
AMOS bot 0cbc507b6d Automatically generated installer lang files 2015-08-13 00:04:21 +08:00
AMOS bot 61331bd1ee Automatically generated installer lang files 2015-08-13 00:04:21 +08:00
Skylar Kelty e074ef4c52 MDL-50920 enrol: Remove pointless DB update in enrol_meta 2015-08-12 11:52:24 +01:00
Marina Glancy f711237e05 MDL-50791 auth: add heading on signup form page 2015-08-12 13:23:30 +08:00
Marina Glancy a3c9174b3d MDL-50791 forms: make server validation errors accessible 2015-08-12 13:23:08 +08:00
Marina Glancy bd7a0fd38b MDL-51087 auth: user client side validation in signup 2015-08-12 13:06:58 +08:00
David Monllao 01fdb048cf Merge branch 'MDL-46860-master' of git://github.com/ryanwyllie/moodle 2015-08-12 10:45:29 +08:00
David Monllao 6413794018 Merge branch 'MDL-37864-master' of git://github.com/xow/moodle 2015-08-12 09:35:46 +08:00
David Monllao 819ab257f7 Merge branch 'MDL-46321-master' of git://github.com/tonyjbutler/moodle 2015-08-12 08:49:14 +08:00
David Monllao c68b32067e MDL-50839 user: realuseravatar should also read avatarsize 2015-08-12 08:39:07 +08:00
David Monllao f2e50523d1 Merge branch 'MDL-50839-master' of git://github.com/Dave-B/moodle 2015-08-12 08:32:11 +08:00
David Monllao 3718d2cd17 Merge branch 'MDL-50947_master' of git://github.com/moodlerooms/moodle 2015-08-12 08:30:03 +08:00
David Monllao fb41850a3c Merge branch 'MDL-50720' of git://github.com/bostelm/moodle 2015-08-12 08:27:09 +08:00
David Monllao ede96605ac Merge branch 'MDL-51053-master' of git://github.com/sammarshallou/moodle 2015-08-12 08:23:29 +08:00
Eloy Lafuente (stronk7) 20c50b0d5c Merge branch 'MDL-50062-master' of git://github.com/FMCorz/moodle 2015-08-12 01:52:04 +02:00
Eloy Lafuente (stronk7) 4da133199f Merge branch 'MDL-50430' of https://github.com/danielneis/moodle 2015-08-12 00:48:07 +02:00
Eloy Lafuente (stronk7) 1dce5c99c8 Merge branch 'MDL-50446-master' of git://github.com/ryanwyllie/moodle 2015-08-12 00:11:42 +02:00
Eloy Lafuente (stronk7) b7759a1889 Merge branch 'MDL-50307-master-3' of git://github.com/xow/moodle 2015-08-11 23:44:50 +02:00
Eloy Lafuente (stronk7) 789d40a803 Merge branch 'MDL-49293-master' of git://github.com/andrewnicols/moodle 2015-08-11 22:58:09 +02:00
Eloy Lafuente (stronk7) 30deee105c Merge branch 'MDL-50642' of https://github.com/ecampbell/moodle 2015-08-11 22:32:11 +02:00
Sam Chaffee 5222ab7f4b MDL-50947 mod_lti Add removed grade.php to upgrade_stale_php_files_present 2015-08-11 10:42:08 -06:00
Sam Chaffee 4180d9706b MDL-50947 mod_lti Remove deprecated grade.php 2015-08-11 10:30:06 -06:00
Alain Benoit acf543c413 MDL-50911 Quiz: edit settings page not responsive 2015-08-11 09:16:43 -04:00
sam marshall 27479b5cc9 MDL-51053 Restore: Static cache breaks unit tests 2015-08-11 14:07:38 +01:00
David Balch 9dcd50358a MDL-50839 user_menu: Allow themes to set User menu avatar size.
Added an @array "options" parameter to user_get_user_navigation_info(),
for passing in avatarsize, and possibly other options in future.

Also removed an errant parameter in the /lib/outputrenderers.php
user_get_user_navigation_info() call, as there was no corresponding
parameter in the function definition.

(Test written by Jetha Chan.)
2015-08-11 13:57:17 +01:00
Eloy Lafuente (stronk7) 1877b7551e Merge branch 'MDL-50894_master' of https://github.com/gedion/moodle 2015-08-11 14:18:34 +02:00
Eloy Lafuente (stronk7) 99c582a19f Merge branch 'master_MDL-51015' of git://github.com/danmarsden/moodle 2015-08-11 14:09:42 +02:00
Henning Bostelmann 0bec64c6a1 MDL-50720 mod_data: Highlight non-approved entries 2015-08-11 11:30:02 +01:00
Marina Glancy afc6a26938 MDL-49746 course: sorting users by last access 2015-08-11 16:15:58 +08:00
Frederic Massart c855ced7bb MDL-42634 theme: Action menu is displayed correctly with hidden elements 2015-08-11 14:45:59 +08:00
David Monllao b84129b11e Merge branch 'MDL-50956' of git://github.com/bostelm/moodle 2015-08-11 13:20:11 +08:00
David Monllao 8c497d8d9f Merge branch 'MDL-51014-master' of git://github.com/sammarshallou/moodle 2015-08-11 13:08:11 +08:00
Marina Glancy 10c82ca307 MDL-50881 calendar: do not throw exception without sesskey 2015-08-11 12:50:41 +08:00
John Okely dd106c8824 MDL-37864 lib: Change help for headers to match existing table api 2015-08-11 12:18:21 +08:00
Marina Glancy edbea936c5 MDL-37864 lib: corrections to help icon in tables 2015-08-11 12:18:21 +08:00
Sergey Rozhkov 3fed76e4df MDL-37864 lib: Help icon work correctly in table header with sorting 2015-08-11 12:18:20 +08:00
John Okely 78a713685d MDL-50307 auth_db: Stop using AS to prevent error with some drivers 2015-08-11 12:11:43 +08:00
John Okely c8bde450a1 MDL-50307 auth_db: Fix associative fetching in ADODB 2.19 2015-08-11 12:11:43 +08:00
Rajesh Taneja b9432e1a7d MDL-50926 phpunit: Advanced testcase should extend base_testcase 2015-08-11 02:37:28 +02:00
Tony Levi b80b35d0fc MDL-50926 phpunit: Upgrade to phpunit 4.x 2015-08-11 02:35:11 +02:00
Daniel Neis Araujo 54cf94390b MDL-50430 forum: Add number of subscribers to forum subscriber list 2015-08-10 14:17:10 -03:00
Mark Johnson c5639c9118 MDL-51014 behat: Wait for filepicker to load repository 2015-08-10 13:37:24 +01:00
Tony Butler 5a699f25a2 MDL-46321 mod_forum: Remove move button to force destination selection 2015-08-10 11:00:00 +01:00
David Monllao f5d23fc162 Merge branch 'wip-MDL-51062-master' of git://github.com/marinaglancy/moodle 2015-08-10 14:23:42 +08:00
David Monllao 3f3bf3dbbe Merge branch 'MDL-50992-master' of git://github.com/damyon/moodle 2015-08-10 11:17:30 +08:00
David Monllao 583ef1966a Merge branch 'MDL-51007-master' of git://github.com/sammarshallou/moodle 2015-08-10 11:07:43 +08:00
Ryan Wyllie 4829645724 MDL-46860 filepicker: change responsive styling
Changed the filepicker's responsive styling to kick in
on screen width less than 768px (which is the bootstrap
standard) rather than 873px. This allows the standard
styling to apply within an iframe.
2015-08-10 02:18:53 +00:00
Ryan Wyllie d3065a3606 MDL-46860 filepicker: iframe context aware
The filepicker now checks if it's within an iframe when
creating the dialogue, if so it will set the dialogue width
to fit within the iframe and disable dragging.
2015-08-10 02:16:30 +00:00
Andrew Nicols 6270f4dbdd MDL-50949 cache: Improve cache performance tests 2015-08-10 08:04:03 +08:00
Andrew Nicols 340d2a7178 Merge branch 'MDL-50949-master' of git://github.com/FMCorz/moodle 2015-08-10 08:03:11 +08:00
Marina Glancy 7f0c7f01c0 MDL-51062 behat: permission steps should work without js 2015-08-09 20:33:27 +08:00
Frederic Massart ad606e6514 MDL-47450 blocks: Blocks can be moved on the site profile 2015-08-07 15:08:47 +08:00
AMOS bot 96274a3771 Automatically generated installer lang files 2015-08-07 00:03:59 +08:00
Michael Aherne 80dfcf49f5 MDL-51016 messaging: Fix email attachments on Windows 2015-08-06 12:53:17 +01:00
Dan Marsden 524aaa177a MDL-51015 mod_scorm: tidy up messy code, remove use of eval() 2015-08-06 22:20:05 +12:00
Andrew Nicols 57739a72cb weekly release 3.0dev 2015-08-06 12:11:01 +08:00
Andrew Nicols 43f7391881 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-08-06 12:10:54 +08:00
Frederic Massart b13afc368e MDL-50062 behat: Handle category mapping for grade items generator 2015-08-06 11:56:44 +08:00
Frederic Massart ca81f8c4b2 MDL-50062 grades: Behat tests for aggregation changes 2015-08-06 11:56:44 +08:00
Frederic Massart e1c5d6618d MDL-50062 grades: Fix false positives in Behat tests 2015-08-06 10:24:26 +08:00
Frederic Massart 01a088e0a2 MDL-50062 grades: Tests for item::set_aggregation_fields_for_aggregation 2015-08-06 10:24:25 +08:00
Frederic Massart 5419cbc9eb MDL-50062 grades: Carry agg. settings between categories when possible 2015-08-06 10:24:25 +08:00
Dave Cooper 135efd5116 MDL-50062 gradebook: Fixed behaviour when changing aggregation mathods. 2015-08-06 10:24:25 +08:00
Andrew Nicols 411e7eacd0 Merge branch 'MDL-50113-integration-fixup' of https://github.com/jethac/moodle 2015-08-06 09:42:43 +08:00
Eloy Lafuente (stronk7) 6d2ccd352f Merge branch 'MDL-44840-master' of git://github.com/lameze/moodle 2015-08-05 20:46:59 +02:00
Eoin Campbell dcd4464ea3 MDL-50642 qformat_xml: fix import of tags in Cloze questions 2015-08-05 19:11:11 +01:00
Eloy Lafuente (stronk7) 72d3fd1035 Merge branch 'MDL-50816-master' of git://github.com/jleyva/moodle 2015-08-05 18:20:52 +02:00
AMOS bot ddcd67022b Automatically generated installer lang files 2015-08-06 00:04:12 +08:00
AMOS bot 20f203e1d5 Automatically generated installer lang files 2015-08-06 00:04:12 +08:00
Eloy Lafuente (stronk7) aa29bb3ba0 Merge branch 'MDL-48970' of https://github.com/andrewhancox/moodle 2015-08-05 16:11:47 +02:00
sam marshall 362616ae6c MDL-51007 Availability: Unit test fails with extra plugins 2015-08-05 14:27:40 +01:00
Eloy Lafuente (stronk7) f72a201884 Merge branch 'MDL-38230' of git://github.com/jmvedrine/moodle 2015-08-05 12:38:51 +02:00
Jetha Chan 70465d09ff MDL-50113 message: responsive and long name fixups
Addresses responsive inconsistency on Firefox, also fixes display
of names which are long and don't have whitespace to break on.
2015-08-05 16:38:57 +09:00
Andrew Nicols e3554c1c57 MDL-50999 dock: Stop adding commands to DOM
The commands div should not be added to the DOM. The version shown in the
dock is different to the standard version in the block, and is manually
added to the dock panel when it is displayed.

The docked version contains additional actions (e.g. the undock button).

The original version of the dock should ideally remain untouched.

Note: A duplicate delegation was discovered when fixing this issue. This
was previosuly not triggered because the watched Node was removed
before the delegation took effect.
2015-08-05 10:06:35 +08:00
Andrew Nicols b167057c8a Merge branch 'MDL-48202-M30' of git://github.com/lazydaisy/moodle 2015-08-05 08:23:01 +08:00
Eloy Lafuente (stronk7) ad9a7604f9 MDL-35027 mod_forum: verify forced subscriptions cannot be edited
This commit adds a new scenario to verify that the option
to turn edition of subscribers is not available anymore
for forced-subscription activities.

It also gets rid of the @javascript tag in a just introduced
scenario not needing it.
2015-08-05 02:05:37 +02:00
Eloy Lafuente (stronk7) caf6577e7f Merge branch 'MDL-35027-B' of https://github.com/bostelm/moodle 2015-08-05 01:15:59 +02:00
Eloy Lafuente (stronk7) 6573ba3e27 MDL-44273 block_rss: Prevent PHP notices in tests + whitespace fix 2015-08-05 00:55:28 +02:00
Eloy Lafuente (stronk7) f2755d847e Merge branch 'MDL-44273' of https://github.com/NeillM/moodle 2015-08-04 20:24:00 +02:00
Eloy Lafuente (stronk7) 1f65da81f5 Merge branch 'MDL-50416-master' of git://github.com/lameze/moodle 2015-08-04 20:04:27 +02:00
Eloy Lafuente (stronk7) 569d879df8 MDL-46963 env: adding missing check_database_tables_row_format check 2015-08-04 19:48:02 +02:00
Eloy Lafuente (stronk7) 07b8df8b1e MDL-50624 env: adding missing restrict_php_version_7 check 2015-08-04 19:31:01 +02:00
Bruce Silver 01c7ba4b82 MDL-50992 lti: Fix debugging warning when creating a new tool 2015-08-04 22:15:03 +08:00
Neill Magill 83f215850e MDL-44273 block_rss: Back-off strategy for RSS feeds
Based on a patch by Davo Smith of Synergy Learning

RSS feeds can fail, either permanently or temporarily.
After this patch if a feed fails it will not be tried again in the next cron run.
If it continues to fail the delay between tries will be increased.
When a feed succeeds it will go back to being fetched on each cron run.

This should make the CRON process for RSS feeds finish faster when
there are lots of invalid feeds.
2015-08-04 11:04:29 +01:00
Andrew Nicols 3c81333aa4 Merge branch 'MDL-50008-master' of git://github.com/jleyva/moodle 2015-08-04 16:20:55 +08:00
Andrew Nicols 121eaa6cfe Merge branch 'MDL-49792-master' of git://github.com/jleyva/moodle 2015-08-04 16:17:43 +08:00
Andrew Nicols 673b3c730b Merge branch 'MDL-49791-master' of git://github.com/jleyva/moodle 2015-08-04 16:07:11 +08:00
Andrew Nicols b7fafb5aae Merge branch 'MDL-50893' of git://github.com/timhunt/moodle 2015-08-04 15:59:05 +08:00
Michael Aherne bc9837241f MDL-49280 user: Config for allowing duplicate emails 2015-08-04 08:46:08 +01:00
Andrew Nicols 719af68938 Merge branch 'wip-MDL-45113-master' of https://github.com/mackensen/moodle 2015-08-04 15:21:22 +08:00
Andrew Nicols 259ca15a2d Merge branch 'MDL-43709-master' of https://github.com/pauln/moodle 2015-08-04 12:26:12 +08:00
Andrew Nicols ac41247254 Merge branch 'MDL-50532-master' of git://github.com/FMCorz/moodle 2015-08-04 12:09:30 +08:00
Andrew Nicols 45f8f3e372 MDL-50493 mod_forum: Correct style issues 2015-08-04 11:53:04 +08:00
Andrew Nicols b9e4972c7a Merge branch 'MDL-50493-master' of git://github.com/jleyva/moodle 2015-08-04 11:46:14 +08:00
Andrew Nicols 8e8e8de93d Merge branch 'MDL-50771' of git://github.com/stronk7/moodle 2015-08-04 10:19:04 +08:00
Andrew Nicols 1d1e95164d Merge branch 'MDL-50113-master' of git://github.com/jethac/moodle 2015-08-04 10:15:05 +08:00
Andrew Nicols 80692b4b68 Merge branch 'MDL-42626-master' of git://github.com/jleyva/moodle 2015-08-04 10:07:40 +08:00
Andrew Nicols fec4959809 Merge branch 'MDL-45772-master-4' of git://github.com/xow/moodle 2015-08-04 09:56:47 +08:00
John Okely 380001929a MDL-45772 admin: Stop browsers from autofilling passwords incorrectly 2015-08-04 09:54:34 +08:00
Simey Lameze de5c8d90af MDL-50416 environment: add missing slasharguments checks 2015-08-04 09:31:47 +08:00
Eloy Lafuente (stronk7) 4d3dc631d4 Merge branch 'MDL-50515' of git://github.com/jmvedrine/moodle 2015-08-04 01:21:16 +02:00
Eloy Lafuente (stronk7) 7b82add579 Merge branch 'wip-MDL-19748-master' of https://github.com/marinaglancy/moodle 2015-08-03 21:20:04 +02:00
AMOS bot 5488871e5d Automatically generated installer lang files 2015-08-04 00:04:20 +08:00
Henning Bostelmann e143918f9e MDL-35027 mod_forum: Fix subscriber list in hidden forums
If the forum is force-subscribed and hidden, only subscribers that can
view hidden activities will be shown in the subscriber list.
2015-08-03 12:12:56 +01:00
Eloy Lafuente (stronk7) 0e1615dfef Merge branch 'MDL-50572-master' of git://github.com/junpataleta/moodle 2015-08-03 12:58:35 +02:00
Eloy Lafuente (stronk7) 15c0a85071 MDL-50771 oracle: Bind long (>4000byte) text as CLOB
While we already were detecting @ normalise_value()
both BLOBs and CLOBs properly on insert and update
statements (by introspectind the column specs), when
a long TEXT is being passed as part of an arbitrary
SQL, or within the conditions... it was being bound
as VARCHAR, leading to problems if used in combination
with DBMS_LOB functions.

This patch just ensures that any TEXT > 4000 bytes not
detected by normalise_value() will be, always, bound as CLOB,
unconditionally.

Covered with tests both covering its use with DBMS_LOB (the
reported bug) and also in general raw statements.
2015-08-03 10:50:56 +02:00
Jean-Michel Vedrine a001c1131e MDL-38230 mod_quiz: Create UI for removing of quiz access rule addons 2015-08-03 08:51:46 +02:00
Andrew Nicols 005eca8c2b Merge branch 'wip-MDL-22819-master' of https://github.com/marinaglancy/moodle 2015-08-03 10:22:04 +08:00
Andrew Nicols 77831a69cc Merge branch 'MDL-49864-master' of git://github.com/junpataleta/moodle 2015-08-03 09:39:57 +08:00
Andrew Nicols 4314797382 Merge branch 'MDL-50624-master' of git://github.com/ryanwyllie/moodle 2015-08-03 09:19:17 +08:00
Jun Pataleta 0bf75ff15f MDL-49864 mod_assign: Fix missing annotations when viewing PDF
Added 'draft = 1' criteria for the delete query in
page_editor::set_annotations in order to prevent the deletion of non-draft
annotations while the PDF is being edited.
2015-08-03 09:07:03 +08:00
Ryan Wyllie 19452dc4be MDL-50624 environment: add PHP7 as unsupported version
Added PHP7 as an unsupported version for Moodle 2.8 and 2.9 in
the environment checks
2015-08-03 00:58:50 +00:00
lazydaisy b0b18f491c MDL-48202 theme_bootstrapbase: blocks are 6px taller after undocking. 2015-08-02 21:42:58 +01:00
Jean-Michel Vedrine 66cf47a045 MDL-49701 mod_lesson: open time should be before close time 2015-08-02 10:33:04 +02:00
Jean-Michel Vedrine 297b32905c MDL-50515 mod_lesson: Can't remove content buttons from content page 2015-08-02 09:32:34 +02:00
Marina Glancy 336a843391 MDL-50973 admin: do not throw exception on /admin/ 2015-08-01 17:37:24 +08:00
Charles Fulton b6f28375b7 MDL-45113 auth: add is_configured method and convert auth_db to use it 2015-07-31 15:16:08 +00:00
Jun Pataleta bf2986c2e3 MDL-50572 youtube: Disable Youtube
Disabled Youtube repository and Youtube Tag Block on new Moodle installations.
2015-07-31 15:20:19 +08:00
Simey Lameze e284ac02c3 MDL-50416 environment: remove slasharguments warning from install 2015-07-31 11:34:42 +08:00
Juan Leyva 013937907f MDL-42626 messages: Hide deleted users in contact/blocked list 2015-07-30 23:05:51 +02:00
Juan Leyva 734c7452d3 MDL-50008 folder: New Web Service mod_folder_view_folder 2015-07-30 23:02:47 +02:00
Juan Leyva 2d7927c982 MDL-50008 folder: Move logging and completion to new API 2015-07-30 23:01:43 +02:00
Juan Leyva 3c779961ad MDL-49792 resource: New WS mod_resource_view_resource 2015-07-30 23:01:21 +02:00
Juan Leyva 537f7b38c8 MDL-49792 resource: Move logging and completion to new API 2015-07-30 23:01:01 +02:00
Juan Leyva 0918811037 MDL-49791 page: New Web Service mod_page_view_page 2015-07-30 22:59:30 +02:00
Juan Leyva caa460ee7a MDL-49791 page: Move logging and completion to new API 2015-07-30 22:59:08 +02:00
Clement Smith 8c0b46f74f MDL-50963 lang/en/grades.php: Improve bad grade error message
The error message received when inputting a grade value that is too
low indicates that zero is a valid grade value. This is incorrect as
the lowest valid grade value is 1. This updates the error message to
indicate the minimum acceptable grade value is 1, not 0.
2015-07-30 09:00:26 -05:00
Andrew Nicols 032a4fe51c weekly release 3.0dev 2015-07-30 14:41:52 +08:00
Andrew Nicols 0ad1aa2166 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-07-30 14:41:46 +08:00
Ryan Wyllie fd4eca115a MDL-50446 block_site_main_menu: Test add URL resource
Behat tests to confirm that adding a URL resource to
the main menu block doens't break the javascript.
2015-07-30 03:39:53 +00:00
Ryan Wyllie fd57126fc7 MDL-50446 block_site_main_menu: Fix the onclick property handling 2015-07-30 02:07:24 +00:00
Daniel Neis Araujo b6d1812dd7 MDL-50371 gradebook: gradepointdefault for manual itens and categories 2015-07-29 17:08:27 -03:00
Henning Bostelmann afd9a921fa MDL-50956 block_site_main_menu: Show site content on course pages 2015-07-29 16:46:33 +01:00
Frederic Massart 47b04bcf7f MDL-50949 cache: Tests for performance debugging of cache usage 2015-07-29 14:38:58 +08:00
Mark Nelson bc5d93c766 MDL-50535 core_grades: fixed behat failing 2015-07-29 14:23:06 +08:00
Frederic Massart e75115810c MDL-50949 cache: Performance debug keeps track of hits/misses/sets 2015-07-29 12:56:10 +08:00
Frederic Massart b2f6f88dc2 MDL-50532 tasks: Delete obsolete tasks during upgrade 2015-07-29 11:25:16 +08:00
Marina Glancy 7b3c5e0e0b MDL-50932 cache: fix bug in prescanned file store
Thanks to Mark Nielsen for providing a patch
2015-07-29 11:23:01 +08:00
Jean-Michel Vedrine 239e9eb8f6 MDL-44840 mod_lesson: fix import of truefalse questions 2015-07-29 11:04:55 +08:00
Simey Lameze 06ae66043b MDL-49360 core_lib: remove get_referer() call form auth ldap 2015-07-29 10:43:03 +08:00
Jetha Chan 3d16b203ad MDL-50113 message: improve display of long names 2015-07-29 11:31:09 +09:00
Andrew Nicols ad913a2d97 Merge branch 'MDL-49581_m30v4' of https://github.com/sbourget/moodle 2015-07-29 09:32:11 +08:00
Stephen Bourget 58459ff0f0 MDL-49581 Lesson: Remove high score unit tests. 2015-07-28 17:06:02 -04:00
Tim Hunt 1f17e41e9a MDL-50893 questions: cannot create a question with name 0 2015-07-28 18:18:17 +01:00
Dan Poltawski 8b56685253 Merge branch 'MDL-50834' of https://github.com/danielneis/moodle 2015-07-28 13:25:57 +01:00
Dan Poltawski 4cb1a61f81 Merge branch 'MDL-50535_master' of git://github.com/markn86/moodle 2015-07-28 13:14:24 +01:00
Dan Poltawski 0618747ce3 Merge branch 'MDL-50370' of git://github.com/barbararamiro/moodle 2015-07-28 12:43:10 +01:00
Dan Poltawski 55155aeee2 Merge branch 'MDL-50833-master' of git://github.com/merrill-oakland/moodle 2015-07-28 12:38:52 +01:00
Dan Poltawski dbceb531a7 Merge branch 'MDL-50868-master' of git://github.com/jethac/moodle 2015-07-28 12:10:55 +01:00
Dan Poltawski 92ec6278ae Merge branch 'MDL-49629' of https://github.com/spvickers/moodle 2015-07-28 12:00:35 +01:00
Dan Poltawski 099dd967aa Merge branch 'MDL-49581_m30v3' of https://github.com/sbourget/moodle 2015-07-28 10:48:11 +01:00
Simey Lameze 25565918d9 MDL-49360 core_lib: fix typo on auth_ldap 2015-07-28 15:04:27 +08:00
Andrew Nicols 8a53c3f433 Merge branch 'wip-MDL-50874-master' of https://github.com/marinaglancy/moodle 2015-07-28 14:08:54 +08:00
Andrew Nicols 335adbe919 Merge branch 'MDL-50295-master' of git://github.com/danpoltawski/moodle 2015-07-28 14:02:07 +08:00
Andrew Nicols 86ab683cb9 Merge branch 'MDL-44962_master' of https://github.com/dmonllao/moodle 2015-07-28 11:16:09 +08:00
Andrew Nicols 588cf28082 Merge branch 'MDL-35148-master' of git://github.com/FMCorz/moodle 2015-07-28 11:06:38 +08:00
Frederic Massart e32af34f76 MDL-35148 themes: Updated checks deciding when mobile themes are used
Now, if a site-theme is set for tablet/phone AND the user is using
a tablet/phone that site-theme will be used, always. In any other
case the normal theme resolution will be used: course, category, ...
2015-07-28 10:59:18 +08:00
Damyon Wiese 5ce0f749a6 MDL-46078 Assign: Completion is not using assignment API.
Should not be directly querying the DB to get the submission, use the API!
2015-07-28 10:19:59 +08:00
Dan Poltawski 2ac792f579 Merge branch 'MDL-41598-master' of https://github.com/mackensen/moodle 2015-07-27 15:24:31 +01:00
Dan Poltawski b860082e13 Merge branch 'MDL-43785-master' of git://github.com/andrewnicols/moodle 2015-07-27 14:49:18 +01:00
Dan Poltawski 14f438c531 Merge branch 'MDL-50125_master' of git://github.com/dmonllao/moodle 2015-07-27 12:21:33 +01:00
Dan Poltawski 5dee13ee92 Merge branch 'MDL-49360-master' of git://github.com/lameze/moodle 2015-07-27 12:08:46 +01:00
Dan Poltawski 6d0e700eda Merge branch 'MDL-49383-master' of git://github.com/lameze/moodle 2015-07-27 12:05:45 +01:00
Dan Poltawski d2a0482d17 Merge branch 'wip-MDL-50649-master' of git://github.com/marinaglancy/moodle 2015-07-27 11:57:52 +01:00
Dan Poltawski 53fb02da8e Merge branch 'MDL-50645_master' of git://github.com/dmonllao/moodle 2015-07-27 10:36:55 +01:00
Dan Poltawski b0917db5ee Merge branch 'MDL-46398-master' of git://github.com/junpataleta/moodle 2015-07-27 10:26:25 +01:00
Andrew Nicols 0c8699c8a9 Merge branch 'MDL-46232-master' of git://github.com/FMCorz/moodle 2015-07-27 15:53:59 +08:00
Frederic Massart a180d06cb8 MDL-46232 user: Handle bulk delete of users without email addresses 2015-07-27 15:47:39 +08:00
Andrew Nicols 2ed6be873b MDL-43785 lib: Improve session timeout warnings 2015-07-27 14:29:47 +08:00
Simey Lameze dcee0b9447 MDL-49360 core_lib: add new method get_local_referer()
This commit also replace all usages of $_SERVER['HTTP_REFERER'] and get_referer().
2015-07-27 11:11:24 +08:00
Simey Lameze f4864c1cd2 MDL-49383 core: initial deprecation of get_referer function 2015-07-27 10:33:39 +08:00
AMOS bot 72e59317d9 Automatically generated installer lang files 2015-07-26 00:03:56 +08:00
Mark Nelson 7080b38f2e MDL-50535 core_course: disabled 'gradepass' field when no ratings set 2015-07-24 13:31:18 -07:00
Gedion Woldeselassie c28eb52862 MDL-50894 lib/conditionlib: Occasional cron error
Inhibit division by zero error warnings when rawgrademax and rawgrademin are
equal. The change does not affect existing functional behavior.
2015-07-24 11:36:26 -05:00
David Monllao 082f6c34a8 MDL-44962 mod_wiki: No input filter
Thanks to Tim Lock for the partial fix.
2015-07-24 16:33:55 +02:00
Marina Glancy a457306bff MDL-22819 tags: fix breadcrumb on manage tags page 2015-07-24 21:25:36 +08:00
Daniel Neis Araujo 9de0c83086 MDL-50834 gradebook: Add help text and link to xml grade import 2015-07-24 09:54:34 -03:00
Marina Glancy 7cd401446d MDL-50649 report: query optimisation 2015-07-24 17:38:18 +08:00
Jun Pataleta 959dd36783 MDL-46398 medialib : Change media player ranks
Change player ranks for QT and HTML5 players so that the QT player will be
the fallback player for the playback of MP4, M4V and M4A files.
2015-07-24 15:54:45 +08:00
Jetha Chan b42cb67935 MDL-50868 weblib: add unit test for ruby support 2015-07-24 14:09:48 +09:00
Jetha Chan 171b4563a0 MDL-50868 weblib: add ruby support to purify_html 2015-07-24 14:09:27 +09:00
AMOS bot 3a7e17537d Automatically generated installer lang files 2015-07-24 00:04:16 +08:00
David Monllao 7333fa3391 MDL-50125 navigation: Allowing all kind of plugins to extend navigation 2015-07-23 08:40:06 +02:00
Dan Poltawski 6a51993e9f MDL-49434 availability: more bad whitespace 2015-07-22 23:58:12 +01:00
Dan Poltawski e870b10343 MDL-49434 availability: fix trailing whitespace 2015-07-22 23:49:52 +01:00
Dan Poltawski d84625438e weekly release 3.0dev 2015-07-22 20:42:54 +01:00
Dan Poltawski f2d9f75875 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-07-22 20:42:52 +01:00
Marina Glancy 57ca231ad9 MDL-49434 availability: unit test adjustments 2015-07-22 12:49:22 +08:00
Andrew Nicols 12ae35433f Merge branch 'MDL-50563' of https://github.com/NeillM/moodle 2015-07-22 09:16:32 +08:00
Andrew Nicols bb4ecc7423 Merge branch 'MDL-50762-master' of https://github.com/luryus/moodle 2015-07-22 09:12:05 +08:00
Andrew Nicols 944455b514 Merge branch 'MDL-50699-master' of https://github.com/pauln/moodle 2015-07-22 09:05:06 +08:00
Andrew Nicols 50834fa15f Merge branch 'MDL-50525' of https://github.com/andrewhancox/moodle 2015-07-22 08:55:05 +08:00
Andrew Nicols 6597994206 Merge branch 'MDL-50523' of https://github.com/andrewhancox/moodle 2015-07-22 08:16:36 +08:00
Dan Poltawski 8930d28254 MDL-50663 blocks: minor style fixes 2015-07-21 15:42:34 +01:00
Dan Poltawski da001d4dba Merge branch 'MDL-50663-master' of https://github.com/sk-unikent/moodle 2015-07-21 15:40:10 +01:00
Dan Poltawski 8fb4743e1e Merge branch 'MDL-50293_master' of https://github.com/Syxton/moodle 2015-07-21 12:51:46 +01:00
Marina Glancy 9a7e398664 MDL-50874 block: basic tests for tag-related blocks 2015-07-21 17:02:10 +08:00
Dan Poltawski 3dd2be1df7 Merge branch 'MDL-50427-master' of git://github.com/jleyva/moodle 2015-07-21 09:41:09 +01:00
Dan Poltawski ca43103134 Merge branch 'MDL-50639_mod_book_fontsize_master' of https://github.com/barrysspace/moodle 2015-07-21 09:08:15 +01:00
Andrew Nicols 83bd7fcc89 Merge branch 'MDL-49618-master' of https://github.com/marinaglancy/moodle 2015-07-21 12:14:53 +08:00
Andrew Nicols 8aa8a7465b Merge branch 'MDL-49176_marking_guide' of git://github.com/davosmith/moodle 2015-07-21 11:25:42 +08:00
Andrew Nicols fd05c11399 Merge branch 'MDL-47230_master' of https://github.com/barrysspace/moodle 2015-07-21 11:11:52 +08:00
Andrew Nicols 31cd898ce7 Merge branch 'wip-MDL-41650-master' of https://github.com/marinaglancy/moodle 2015-07-21 09:29:11 +08:00
Andrew Nicols 7b8d4f4005 Merge branch 'MDL-49434-master' of https://github.com/sammarshallou/moodle 2015-07-21 08:13:19 +08:00
Stephen Bourget bb685cf3fa MDL-49581 Lesson: Remove broken high score function 2015-07-20 20:06:44 -04:00
Andrew Hancox c3f38fa686 MDL-50523 mod_assign: Conditionally disable activity setting
On activity settings form if "Students submit in groups" is set to no then
disable "Require group to make submission" setting.
2015-07-20 19:45:02 +01:00
Andrew Hancox b11e24ba7d MDL-50525 mod_assign: Moved preventsubmissionnotingroup
Moved preventsubmissionnotingroup to between teamsubmission and
requireallteammemberssubmit to keep all settings related to
group submissions together.
2015-07-20 19:43:26 +01:00
David Monllao 592ea4b975 MDL-50645 cache: get_plugins_with_function for more than one plugintype 2015-07-20 20:22:04 +02:00
David Monllao 9effa14810 MDL-50645 cache: New plugin_functions cache
Improves memory usage as we don't need to include all files every time we want
to see if any plugin supports a callback.
2015-07-20 20:21:07 +02:00
Dan Poltawski 2e934446c8 Merge branch 'MDL-49440_master' of https://github.com/crazyserver/moodle 2015-07-20 14:02:55 +01:00
Dan Poltawski 641e3c4346 Merge branch 'wip-MDL-50678-master' of git://github.com/marinaglancy/moodle 2015-07-20 13:53:47 +01:00
Barbara Ramiro 265f4f388c MDL-50370 Icons: Filetype icon for ePub 2015-07-20 19:30:25 +08:00
Dan Poltawski 0c59bb747d Merge branch 'MDL-50673-master-workshop-submissions' of git://github.com/mudrd8mz/moodle 2015-07-20 11:20:12 +01:00
Dan Poltawski d44ae46632 Merge branch 'wip-MDL-50612-master' of https://github.com/marinaglancy/moodle 2015-07-20 10:12:16 +01:00
Dan Poltawski 8bdb261a31 Merge branch 'MDL-49582-master' of https://github.com/lucisgit/moodle 2015-07-20 08:23:22 +01:00
Juan Leyva 0b9fc18ba1 MDL-50427 mod_scorm: Rename scorm_view_display to scorm_print_launch
In order to avoid confusion with the new scorm_view fuction
2015-07-20 09:15:44 +02:00
Juan Leyva e9bf301145 MDL-50427 mod_scorm: New Web Service mod_scorm_view_scorm 2015-07-20 09:15:44 +02:00
Juan Leyva ade341deb2 MDL-50427 mod_scorm: Move logging and completion to new API 2015-07-20 09:13:42 +02:00
AMOS bot 1b084d9215 Automatically generated installer lang files 2015-07-20 00:04:59 +08:00
Marina Glancy dd8a0a3909 MDL-19748 tags: edit tags not allowed for auth users 2015-07-19 21:09:32 +08:00
apsdehal aba6e0bfe9 MDL-41650 Tags: Changed css classes of errors and success notice 2015-07-19 20:21:47 +08:00
spvickers 3f35882825 MDL-49629 mod_lti: Add icon fields
Icon fields added to input form when defining an external tool at the
admin level.  The icon for a tool derived from a tool proxy can be
overridden.  Course cache is cleared if current icon value is changed.

Add text boxes to edit form for entering icon URLs.
2015-07-18 12:02:04 -04:00
AMOS bot 118cd37ab6 Automatically generated installer lang files 2015-07-18 00:05:18 +08:00
Lauri Koskela e225a665ff MDL-50762 tool_capability: Do not hide first capability in list 2015-07-17 15:28:37 +03:00
Neill Magill 2c9aca8a45 MDL-50563 blocks: A hidden block that is dropped should be dimmed
Before this patch when dragging and dropping a hidden block it would display as though visible when it was dropped.

This is only a display issue, as a page refresh caused it to be dimmed in its new position.
2015-07-17 09:25:38 +01:00
Barry Oosthuizen 545e415802 MDL-50639 mod_book: Remove 0.8em font sizes 2015-07-17 08:47:07 +01:00
David Mudrák a81b4cab22 MDL-50673 workshop: Fix some coding style violations 2015-07-16 19:44:06 +02:00
David Mudrák 65ba4cdad2 MDL-50673 workshop: Fix the way how submissions are counted
The count_submissions() method does not take the actual enrolment into
account. It is part of the API that looks on all existing data
regardless the actual status of their owner. The author of the
submission may be unenrolled or suspended, in which case they are not
displayed in the report and we would get wrong figures.
2015-07-16 19:41:16 +02:00
M Kassaei bfde810a8b MDL-50673 workshop: Display all participants during submission phase
This patch adds a new report to be displayed during the submission
phase. The report displays all participants who are supposed to submit
their work into the workshop and the status of their submission.
2015-07-16 19:21:37 +02:00
AMOS bot 29c05319e5 Automatically generated installer lang files 2015-07-17 00:04:58 +08:00
Syxton 483fb4ec44 MDL-50293 navigation: File name not wrapping
A long File name doesn't always wrap correctly in the Navigation block.
2015-07-16 10:26:19 -04:00
Tony Butler bf7c844e94 MDL-49582 core_lib: Add button to allow user to reset table preferences 2015-07-16 11:39:25 +01:00
pau.ferrer-ocana 6d4088b7e3 MDL-49440 lib: Date picker duplicated week day names repaired
Thanks Marc Català for the patch
2015-07-16 12:38:59 +02:00
Dan Poltawski e1d4e288ac weekly release 3.0dev 2015-07-16 08:16:15 +01:00
Dan Poltawski 8b11f0db8a Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-07-16 08:16:12 +01:00
Juan Leyva 6166a9fbe7 MDL-50816 notes: Delete never met condition code 2015-07-15 15:31:26 +02:00
Eric Merrill 06c9c36bdc MDL-50833 report: Still make a chart if there are no logs 2015-07-15 09:13:30 -04:00
sam marshall aad5b7f1d0 MDL-49434 availability: Revert MDL-49418 (obsoleted by this change)
This reverts commit 51fef1de35.
2015-07-15 11:43:05 +01:00
sam marshall c7b738546c MDL-49434 availability: Use renderables for multiple messages
Co-Authored-By: Andrew Nicols <andrew@nicols.co.uk>
2015-07-15 11:43:01 +01:00
Barry Oosthuizen 5f9ff79065 MDL-47230 mod_book: Sub chapter bullet formatting 2015-07-15 09:38:29 +01:00
Marina Glancy f1aeb61893 MDL-50678 mod_glossary: removed extra login check 2015-07-15 14:08:48 +08:00
AMOS bot a42a8b6273 Automatically generated installer lang files 2015-07-15 00:05:00 +08:00
Dan Poltawski 82b9551f2d Merge branch 'MDL-49796-master' of git://github.com/jleyva/moodle 2015-07-14 13:01:18 +01:00
Juan Leyva 1c2b788256 MDL-49796 webservices: Fix the functions description 2015-07-14 11:31:57 +02:00
Dan Poltawski 2002b96aea Merge branch 'MDL-37832-M30' of git://github.com/lazydaisy/moodle 2015-07-14 10:14:11 +01:00
Dan Poltawski 0492b93211 Merge branch 'MDL-50270-master' of git://github.com/ankitagarwal/moodle 2015-07-14 08:57:30 +01:00
Dan Poltawski af78b79a58 Merge branch 'MDL-50814-master' of git://github.com/jleyva/moodle 2015-07-14 08:55:06 +01:00
Dan Poltawski 22c844acf4 Merge branch 'MDL-50711_M30' of git://github.com/lazydaisy/moodle 2015-07-14 08:45:27 +01:00
Marina Glancy fc55273e0f MDL-50612 grades: remove gradepass if there is no grading 2015-07-14 13:16:34 +08:00
Pierre GUINOISEAU 7dc5dac678 MDL-50612 grades: do not remove grade box if gradepass field exists 2015-07-14 13:16:31 +08:00
Mary Evans 20955a30c3 MDL-37832 theme: Improved "My Moodle" expandable/collapsible caption. 2015-07-14 00:39:43 +01:00
Dan Poltawski 5852140e65 Merge branch 'MDL-50799-master' of git://github.com/merrill-oakland/moodle 2015-07-13 16:08:23 +01:00
Damyon Wiese b0a583932a MDL-50784 ajax: Require a sesskey for all ajax requests.
This needs to be done before we can expose any webservices that
change state, or return private info to ajax (to prevent CSRF).

Currently there are no webservices exposed to ajax that meet these
criteria - so this issue is to prevent future security issues.
2015-07-13 16:49:06 +02:00
Juan Leyva d3754a972d MDL-50814 badges: Fix incorrect default ordering 2015-07-13 15:08:22 +02:00
Dan Poltawski 5fceb11e6c Merge branch 'MDL-50806-master' of git://github.com/merrill-oakland/moodle 2015-07-13 13:42:53 +01:00
Dan Poltawski a1333dd3a3 Merge branch 'MDL-50732_composerFix' of https://github.com/moodlerooms/moodle 2015-07-13 13:41:15 +01:00
Dan Poltawski 218936aecc Merge branch 'MDL-50798-master' of git://github.com/merrill-oakland/moodle 2015-07-13 13:35:14 +01:00
Dan Poltawski da52ce53b6 Merge branch 'MDL-50800-master' of https://github.com/dkleto/moodle 2015-07-13 13:27:01 +01:00
Ankit Agarwal d494100ea8 MDL-50270 groups: Properly deprecate old apis 2015-07-13 14:55:38 +05:30
Dan Poltawski eb2b84d6d2 Merge branch 'master_MDL-49647' of https://github.com/danmarsden/moodle 2015-07-13 10:05:27 +01:00
Juan Leyva 91a12bc64c MDL-49796 assign: Unit texts for view_grading_table 2015-07-13 09:25:24 +02:00
Juan Leyva e0d6d10a83 MDL-49796 assign: New external function view_grading_table 2015-07-13 09:25:23 +02:00
Paul Nicholls 8ff7531ed7 MDL-43709 Forum: Reset forums not working with multiple forum types
The SQL being generated from the selected forum types on the course reset
form was using AND, resulting in never matching anything if more than one
forum type was selected for resetting (as each forum can only have one
type).  This should use $DB->get_in_or_equal() to generate sensible SQL.
2015-07-13 16:19:08 +12:00
Adam Riddell faf01a4f82 MDL-50800 question: Add missing make_answer method
question/type/calculatedmulti/questiontype.php:
        - Add public make_answer method so that apply_attempt_state
          method in qtype_multichoice_base does not cause a fatal
          error when attempting to call make_answer.
2015-07-13 09:54:15 +10:00
Mary Evans 0163c590f3 MDL-50711 theme_bootstrapbase: Added inverse horizontal divider colors. 2015-07-12 02:50:45 +01:00
Eloy Lafuente (stronk7) 9325cd963f weekly release 3.0dev 2015-07-10 18:11:13 +02:00
Eloy Lafuente (stronk7) 188458a604 MDL-50049 deprecation: Extra minor fixes.
- complete and cleanup upgrade.txt
- replace remaining uses in comments.
- fix some incorrect bulk-replacement in previous commit.
2015-07-10 01:59:31 +02:00
Eloy Lafuente (stronk7) b164e2ec30 Merge branch 'MDL-50049-master' of git://github.com/ankitagarwal/moodle 2015-07-09 20:24:13 +02:00
Eric Merrill cef7621e30 MDL-50806 questions: Allow more memory when doing a question import 2015-07-09 12:27:32 -04:00
Dan Marsden d1673b8f6c MDL-49647 mod_scorm: correct escaping of javascript content. 2015-07-09 16:35:20 +12:00
Marina Glancy fc62987c84 MDL-49618 forum: apply format_string 2015-07-09 08:24:08 +08:00
Eric Merrill a8524f3354 MDL-50799 question: Improve Show all text to be more accurate 2015-07-08 17:17:02 -04:00
Eric Merrill c7092fe489 MDL-50798 question: Raise time limit when rendering questions
Rendering a large number of questions may be quite slow, so we want to
raise the limit.

We don’t call raise() in the loop because the quiz buffer captures this
function for a AJAX script, and we should only call raise if we expect
a corresponding output to the users browser. This helps to prevent
unexpected load balancer disconnects. See core_php_time_limit::raise()
for more details.
2015-07-08 15:49:10 -04:00
Eloy Lafuente (stronk7) 525dce0ade Merge branch 'MDL-49732_master' of https://github.com/jinhofer/moodle 2015-07-07 19:18:19 +02:00
Eloy Lafuente (stronk7) 17d47fa5aa Merge branch 'MDL-50489-master' of git://github.com/jleyva/moodle 2015-07-07 19:12:12 +02:00
Eloy Lafuente (stronk7) cc623a384f Merge branch 'MDL-49185-master' of git://github.com/lameze/moodle 2015-07-07 16:59:19 +02:00
Dan Poltawski 6bf2e10e0a MDL-50466 logstore: bump version to load new task definitions 2015-07-07 15:09:28 +01:00
Dan Poltawski 64489778cd MDL-50295 output: prevent 'emoji' arrows
We need to append U+FE0E VARIATION SELECTOR-15 to the arrow to ensure
our l/rarrows are displayed as text icons, not 'emoji' icons.

See http://unicode.org/reports/tr51/#Diversity for more details of why
this changed in iOS 8.3+.
2015-07-07 14:26:09 +01:00
Dan Poltawski 81eaa3400f Merge branch 'MDL-48074_not_in_group' of git://github.com/davosmith/moodle 2015-07-07 10:09:48 +01:00
Dan Poltawski fae47ac284 Merge branch 'MDL-50466-m' of https://github.com/micaherne/moodle 2015-07-07 09:36:50 +01:00
Dan Poltawski b4947d16d1 MDL-50653 myprofilelib: fix stray ending dl tag
(That is outputing content, rest of function is not!)
2015-07-07 08:53:38 +01:00
Dan Poltawski 28f2335d61 Merge branch 'MDL-50653' of https://github.com/bmbrands/moodle 2015-07-07 08:52:37 +01:00
Dan Poltawski f79860257a MDL-50749 js: add some TODOs to some small hacks 2015-07-07 08:48:32 +01:00
Dan Poltawski da24257a3b Merge branch 'MDL-50749-master' of https://github.com/mackensen/moodle 2015-07-07 08:38:43 +01:00
Charles Fulton 096fd59653 MDL-46167 admin_cli: allow skipping of database installation 2015-07-04 19:15:50 +00:00
Charles Fulton 8d1cdd0139 MDL-50749 course: add fake element for behat compatibility 2015-07-03 18:43:46 +00:00
Eloy Lafuente (stronk7) 78ebb3481c Merge branch 'MDL-50757-master' of git://github.com/damyon/moodle 2015-07-03 11:26:18 +02:00
Damyon Wiese 4359caa22b MDL-50757 upgrade: Unset config value that will never be used again 2015-07-03 16:37:54 +08:00
Davo Smith 0c9d8172b5 MDL-48074 enrol: option to filter by users 'not in any group' 2015-07-03 09:35:57 +01:00
Adrian Greeve 316c560cc5 MDL-50757 gradebook: Update fix for pre 2.8 upgrades.
Moodle installations that updated before the 2.8 grade push
were being flagged for a gradebook freeze. This was resulting in
calculated grades being shown as different to how they were
displayed before the upgrade. This fix retains the original
grade value.
2015-07-03 13:13:12 +08:00
Mark Nielsen a256eddbc3 MDL-50732 testing: Remove repositories from composer 2015-07-02 09:15:41 -07:00
Dan Poltawski e5eefbbf01 weekly release 3.0dev 2015-07-02 14:25:56 +01:00
Dan Poltawski 5a559cacf1 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-07-02 14:25:53 +01:00
Juan Leyva 039c81f098 MDL-50489 forum: Handle qanda forums in get_forum_discussions_paginated
I removed the last qanda checks in forum_user_can_see_discussion because they are not necessary and
they make the external function fail.

A user in a qanda forum can always see a discussion (he needs to see the discussion to be able to reply).
What he cannot see are the other user posts unless he has replied to the discussion once and the edition period
(usually 30 minutes) has ended.

Note also that forum_user_can_see_discussion was originally only used when displaying forums in blog format
in order to display the button show more or not, this is the reason this wasn't detected before.
2015-07-02 10:55:40 +02:00
Marina Glancy 6e4b8381bf MDL-48239 grades: corrected docs url for calculation changes 2015-07-02 15:49:48 +08:00
Marina Glancy f677ece516 MDL-48239 grades: fix notification class 2015-07-02 15:49:46 +08:00
Adrian Greeve 3f8a714f36 MDL-48239 gradebook: Oracle fix for string compare.
Update to upgradelib.php where string comparisions cause
phpunit failures in Oracle.
2015-07-02 12:30:26 +08:00
Eloy Lafuente (stronk7) 3950aa134f Merge branch 'wip-MDL-48239-master' of git://github.com/abgreeve/moodle 2015-07-02 05:42:08 +02:00
Adrian Greeve 6a7c8feb10 MDL-48239 gradebook: Change to calculated grade item min and max.
Regardless of the setting 'Min and max grades used in calculation'
Calculated grade items will always update the min and max raw grade.
2015-07-02 11:13:26 +08:00
Adrian Greeve 716c081049 MDL-48239 gradebook: Unit test for upgrade function. 2015-07-02 11:13:25 +08:00
Adrian Greeve f44ffb724a MDL-48239 gradebook: Behat tests for calculated grade items. 2015-07-02 11:13:25 +08:00
Adrian Greeve 4d4dcc2718 MDL-48239 gradebook: Calculated grades maxgrade now able to be set. 2015-07-02 11:13:25 +08:00
Andrew Hancox fef51794a0 MDL-48970 groups: Fix hover description on groups overview page
If a course exists within multiple groupings then the description
should display when you mouseover any instance of it on the overview
page.
2015-07-01 21:26:48 +01:00
Dan Poltawski 559c0f09bd MDL-39319 langimport: fix language file ordering and trailing whitespace 2015-07-01 11:06:33 +02:00
Dan Poltawski 56420e3664 Merge branch 'MDL-39319-master' of git://github.com/mastnym/moodle 2015-07-01 11:04:37 +02:00
Rajesh Taneja bc7a59536b MDL-50481 behat: SingleSelect can be urlselect and should support id/name 2015-07-01 10:52:21 +08:00
David Monllao b4d7038a88 Merge branch 'MDL-50497-M30' of git://github.com/lazydaisy/moodle
Conflicts:
	theme/bootstrapbase/style/moodle.css
2015-07-01 08:54:28 +08:00
Eloy Lafuente (stronk7) e96e66aa16 MDL-50130 todo: Conditional code to be changed to API by MDL-50728 2015-06-30 19:56:48 +02:00
Juan Leyva f804c73055 MDL-50130 users: Filter profile fields data in external functions 2015-06-30 19:52:19 +02:00
AMOS bot 7fd8762479 Automatically generated installer lang files 2015-07-01 00:04:55 +08:00
Dan Poltawski 0b45c56da1 Merge branch 'wip-mdl-50481' of https://github.com/rajeshtaneja/moodle 2015-06-30 12:25:52 +02:00
Dan Poltawski 2606aecc3b Merge branch 'MDL-33765_master_offset' of git://github.com/markn86/moodle 2015-06-30 11:32:47 +02:00
Dan Poltawski 8ce68b0723 Merge branch 'MDL-43949_master' of git://github.com/dmonllao/moodle 2015-06-30 10:34:08 +02:00
Dan Poltawski 1b80849856 Merge branch 'MDL-47787-master' of https://github.com/tbannister/moodle 2015-06-30 09:52:52 +02:00
David Monllao 35af60da7e MDL-50569 backup: Missing get_target call 2015-06-30 10:26:18 +08:00
Dan Marsden 476e97f280 MDL-50614 mod_scorm: Improve validation on currentorg 2015-06-30 10:12:51 +08:00
David Monllao c6a1425ffb Merge branch 'MDL-50569-master' of git://github.com/FMCorz/moodle 2015-06-30 09:30:57 +08:00
Mark Nelson eabbc98c78 MDL-50220 mod_forum: added missing capability check 2015-06-29 18:43:09 +02:00
Eloy Lafuente (stronk7) 154d468dbb Merge branch 'wip-mdl-50675' of https://github.com/rajeshtaneja/moodle 2015-06-29 18:25:55 +02:00
Eloy Lafuente (stronk7) 0339f2c4c1 MDL-50688 lib: small cleanup + http/https coverage. 2015-06-29 17:12:55 +02:00
Petr Skoda 5c1f41f058 MDL-50688 lib: fix local url validation bug
Change-Id: I350bb8c9ace5cc0403f083f728c100097be7aa7e
Reviewed-on: https://review.totaralms.com/8101
Tested-by: Jenkins Automation <jenkins@totaralms.com>
Reviewed-by: Sam Hemelryk <sam.hemelryk@totaralms.com>
Reviewed-by: Alastair Munro <alastair.munro@totaralms.com>
2015-06-29 16:44:03 +02:00
Ankit Agarwal 2149326b8c MDL-50049 deprecation: Remove usage of deprecated api and cleanup 2015-06-29 17:15:50 +05:30
Skylar Kelty 56af0fbda8 MDL-50663 blocks: Fix /my/ page when in non-user context 2015-06-29 11:37:10 +01:00
David Monllao 489878ad09 Merge branch 'MDL-50708_master' of git://github.com/nadavkav/moodle 2015-06-29 15:57:27 +08:00
Michael Aherne 8daf8d87f2 MDL-50466 tasks: Specific minute values for log cleanup 2015-06-29 08:45:04 +01:00
Frederic Massart eff864e7eb MDL-50569 grades: Restore as merge always ignores minmaxtouse 2015-06-29 14:24:13 +08:00
Frederic Massart cd4061ecd4 MDL-50569 grades: Handle minmaxtouse in backup/restore 2015-06-29 14:24:12 +08:00
Ankit Agarwal 8322ed4a66 MDL-50049 deprecation: Rearrange deprecated apis for better future management 2015-06-29 11:36:36 +05:30
Ankit Agarwal 33c46db574 MDL-50049 deprecation: Group together long term deprecated apis 2015-06-29 11:36:36 +05:30
Ankit Agarwal 1ac1d29b6d MDL-50049 deprecation: Final deprecation of old apis 2015-06-29 11:36:36 +05:30
David Monllao 21a0a68196 Merge branch 'MDL-50646-master-preflang' of git://github.com/mudrd8mz/moodle 2015-06-29 13:35:44 +08:00
David Monllao e3e7c90528 Merge branch 'MDL-50652_master' of git://github.com/reskit/moodle 2015-06-29 13:01:51 +08:00
Mark Nelson 8e7774fa8c MDL-33765 filter_glossary: fixed jshint warning 2015-06-28 21:44:11 -07:00
Martin Mastny a42f94a38d MDL-33765 filter_glossary: Stacking JS windows with offset 2015-06-28 21:44:11 -07:00
Martin Mastny 57a1f4fc65 MDL-33765 mod_glossary: Concept in ajax request not linking to itself 2015-06-28 21:44:11 -07:00
David Monllao 5324a7202a Merge branch 'wip_MDL-50659_master' of git://github.com/gjb2048/moodle 2015-06-29 11:45:02 +08:00
Rajesh Taneja 139dcb1879 MDL-50675 repository_wikimedia: Fixed title varaible 2015-06-29 09:53:45 +08:00
Rajesh Taneja f463158b1f MDL-50675 repository_wikimedia: Wikimedia is using https and not http 2015-06-29 09:53:02 +08:00
Nadav Kavalerchik e51bdc0bcc MDL-50708 SCORM: Right align menu item folder icon, when in RTL mode. 2015-06-27 23:49:11 +03:00
Gareth J Barnard 8576569f14 MDL-50659 themes: Regression: Drag a link makes icons move. 2015-06-26 11:41:16 +01:00
Paul Nicholls a673650477 MDL-50699 Lesson: "Link to next activity" empty until Lesson saved
Due to a logic bug, the "Link to next activity" dropdown was empty (only
contains the "None" option) until the Lesson had been saved.  This minor
change allows a "next activity" to be specified when initially creating
the Lesson whilst still preventing the user from choosing the Lesson as its
own next activity.
2015-06-26 16:16:23 +12:00
Tyler Bannister 7f7144fd50 MDL-47787 course: Added question delete to cm delete. 2015-06-25 16:35:22 -04:00
Mary Evans d8d65e76e0 MDL-50497 theme_bootstrapbase: Divider colours look wrong when inverted 2015-06-25 18:18:56 +01:00
Marc Català 90faa6ae9c MDL-50652 workshop: Workshop module allows duplicated ID number 2015-06-25 14:28:10 +02:00
David Monllao ed0fd1f6ec MDL-43949 groups: Add idnumber to web services
Thanks to Vitor Martins for his contribution.
2015-06-25 16:55:14 +08:00
Marina Glancy fd36588fb6 MDL-49257 grades: apply freeze when restoring with contents deleting 2015-06-25 14:39:15 +08:00
David Monllao 38cb73a47f weekly release 3.0dev 2015-06-25 13:49:57 +08:00
David Monllao f301aacb6f Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-06-25 13:49:55 +08:00
Marina Glancy feda17c38e MDL-49257 grades: strings adjustments 2015-06-25 09:56:36 +08:00
Bas Brands bffb1c15b3 MDL-50653 user: forgotten closing div tag on the page
The /user/view.php was missing a closing div for the <div class="description">
causing the page grid to break on any Bootstrap 3 based theme.
2015-06-24 08:36:52 +02:00
David Monllao 94f73fdbcc MDL-50283 gradeform_rubric: No need to escape HTML entities 2015-06-24 11:21:56 +08:00
Eloy Lafuente (stronk7) 870d1aae1e MDL-49022 auth_ldap: keep method visibility unmodified. 2015-06-24 03:07:35 +02:00
Eloy Lafuente (stronk7) 78f312ae75 Merge branch 'wip-mdl-49022' of https://github.com/rajeshtaneja/moodle 2015-06-24 03:02:59 +02:00
Dan Poltawski b32ba584b2 Merge branch 'MDL-49497' of git://github.com/stronk7/moodle 2015-06-23 16:25:04 +01:00
Eloy Lafuente (stronk7) 9a1adda585 MDL-49497 curl: keep api private and test it using reflection.
While strictly we should not be testing private APIs, in order
to get this backported to stables without changing visibility
we use reflection to access to such private properties and methods.

Also added one exttest to verify user agent is properly sent.

Finally, fix some wrong whitespace and changed the helper class name
to better alternative.
2015-06-23 17:20:20 +02:00
Dave Cooper cbb7c6a905 MDL-49497 curl: Add configurable User-Agent unit tests. 2015-06-23 15:59:59 +02:00
Dave Cooper 300fcae31d MDL-49497 curl: Allow configurable User-Agent.
Thanks to Kartik Yadav for assistance with this patch.
2015-06-23 15:59:59 +02:00
Dan Poltawski 6d59f63914 Merge branch 'MDL-50533-master' of git://github.com/jethac/moodle 2015-06-23 14:12:21 +01:00
Dan Poltawski 782300f3a8 Merge branch 'MDL-50283_master' of https://github.com/dmonllao/moodle 2015-06-23 12:37:05 +01:00
Dan Poltawski 20a16512ee Merge branch 'wip-MDL-49257-master' of git://github.com/marinaglancy/moodle 2015-06-23 11:20:08 +01:00
Rajesh Taneja 5ee54f87a1 MDL-49022 auth_ldap: Updated unit test, checking sync_user events 2015-06-23 17:00:35 +08:00
Mark Ward 7b9643b59c MDL-49022 auth_ldap: trigger event when required.
When calling update_user_record() for auth_ldap the method
now has option to trigger event core\event\user_updated when
syncing with domain controller.
This means that the event will be triggered by sync_users()
but not by user_signup().
2015-06-23 17:00:34 +08:00
Marina Glancy 46267b7b25 MDL-49257 grades: behat tests for extra credit 2015-06-23 14:25:50 +08:00
Marina Glancy 156d048659 MDL-49257 grades: fix bugs with extra credit weights
When we adjust the weights in natural grading (setup screen), the extra credit items
should not depend on other overrides. If extra credit item's weight was overriden, it stays as it is.
Otherwise it is calculated as itemgrademax / totalgrademax (total excludes extra credit items)
2015-06-23 14:25:50 +08:00
Marina Glancy deb3d5ed00 MDL-49257 grades: introduce calculation freeze
In order to prevent changes in the existing grades when we fix bugs
we are introducing the gradebook code versioning. Each course may
"freeze" the code version to the older date. Freezing is usually done
during upgrade or restore and can be removed by the teacher by pressing
the button and accepting potential grade changes. There is no visible
setting and not possible to change the version back manually.

See MDL-50432 and MDL-50522
2015-06-23 14:25:47 +08:00
David Monllao 866573e02b Merge branch 'MDL-50491' of git://github.com/stronk7/moodle 2015-06-23 13:31:34 +08:00
David Monllao 54a1ef2655 MDL-50611 testing: Extra http status code checking 2015-06-23 10:34:18 +08:00
David Monllao 8cb6117867 Merge branch 'MDL-50611-master' of git://github.com/LukeCarrier/moodle 2015-06-23 10:25:36 +08:00
spvickers 01f38dd0e2 MDL-49185 mod_lti: Check for all capabilities
Added check for explicit and implicit enabled capabilities when parsing
a custom parameter.
2015-06-23 10:22:41 +08:00
Eloy Lafuente (stronk7) 26adb614ae Merge branch 'MDL-50171-master' of git://github.com/jleyva/moodle 2015-06-23 01:42:47 +02:00
Eloy Lafuente (stronk7) 06ec3e57f1 Merge branch 'MDL-29763_portfolio_description' of git://github.com/davosmith/moodle 2015-06-23 01:39:55 +02:00
Eloy Lafuente (stronk7) cd1d7c2993 Merge branch 'MDL-50089-master' of git://github.com/merrill-oakland/moodle 2015-06-22 19:58:53 +02:00
Eric Merrill 394ade5f2b MDL-50089 grades: Use grade item min/max in exports 2015-06-22 12:58:40 -04:00
Eloy Lafuente (stronk7) 7415646bcd Merge branch 'MDL-50583_master' of git://github.com/dmonllao/moodle 2015-06-22 18:57:35 +02:00
Luke Carrier 0897e19093 MDL-50611 test: use cURL extension to download Composer
The curl binary is nowhere near as common in Windows environments as it is
in Linux and Mac ones. In order to encourage more users to adopt Behat and
PHPUnit for their testing, we should avoid introducing unnecessary
hurdles.
2015-06-22 15:50:01 +01:00
Dan Poltawski 0c689b02fb Merge branch 'MDL-50460_master' of git://github.com/lazydaisy/moodle 2015-06-22 13:29:10 +01:00
Dan Poltawski bf6395107b Merge branch 'MDL-50091' of git://github.com/timhunt/moodle 2015-06-22 12:06:49 +01:00
David Monllao 15e6543a5f Merge branch 'MDL-50622-master-enfix' of git://github.com/mudrd8mz/moodle 2015-06-22 17:43:56 +08:00
Davo Smith 556e33d77c MDL-49176 gradingform_guide: display newline characters as <br> tags 2015-06-22 10:13:18 +01:00
David Monllao 61e4716383 Merge branch 'MDL-50561-master' of git://github.com/jleyva/moodle 2015-06-22 16:02:57 +08:00
David Monllao 336bded4f1 Merge branch 'wip-MDL-50568-master' of git://github.com/marinaglancy/moodle 2015-06-22 15:33:06 +08:00
David Monllao 502d960528 Merge branch 'wip-MDL-50580-master' of git://github.com/marinaglancy/moodle 2015-06-22 12:48:26 +08:00
David Monllao e15f9c8cad Merge branch 'MDL-50631-master-clilogo' of git://github.com/mudrd8mz/moodle 2015-06-22 11:19:07 +08:00
Davo Smith 1a6448fded MDL-29763 portfolio: add helpful description to the page 2015-06-19 14:54:58 +01:00
Tim Hunt 1c733bd604 MDL-50648 grader report: columns misaligned with some permissions
If a user can see the grader report and singleview report, but not
the user report ($CFG->grade_profilereport) then the colspans
were wrong and so the columns did not line up under the right headers.
2015-06-19 12:35:54 +01:00
David Mudrák 7e670032bf MDL-50646 admin: Use site default lang as new user's preferred lang
As a result of MDL-49632, the preferred language is no longer part of
the "Add a new user" form. So the lang property is not passed to the
user_create_user() when creating a new user and the value always falls
back to "en" (which is the default defined in the database for this
column).

This patch makes sure that the site default language is used in such
case.
2015-06-19 13:25:44 +02:00
Helen Foster ddef7f7848 MDL-50622 lang: Merge English strings from the en_fix language pack 2015-06-19 12:11:33 +02:00
Juan Leyva 2291883052 MDL-50561 messages: Add missing __isset magic method 2015-06-19 09:44:50 +02:00
Juan Leyva 3c4d2965de MDL-50171 data: Fixed incorrect text formatting in external functions 2015-06-19 09:43:51 +02:00
David Monllao a939ae6da7 MDL-50283 gradingform_rubric: Minor styling fixes 2015-06-19 12:44:07 +08:00
Syxton e22c8d2ae3 MDL-50283 rubric: Add duplicate row button
Adds the ability to duplicate a row in a rubric.
2015-06-19 12:00:23 +08:00
Rajesh Taneja 77f1778c40 MDL-50481 core_grades: Fixed behat feature and step to work with non-js
xPath used in step is not using proper oring
and fails with goutee driver. Also, feature don't
really need to be executed in js, so setting that
as non-js
2015-06-19 12:00:11 +08:00
Rajesh Taneja bf4c3ee0ff MDL-50481 behat: Press go button for given single select in non-js
For non-js mode, ensure we press the go button
for the specified single select, as there can be
multiple single selects on the page with go button
2015-06-19 12:00:11 +08:00
Mary Evans 3078b980f5 MDL-50460 theme_bootstrapbase: Profile image overlays docked blocks. 2015-06-19 02:46:15 +01:00
AMOS bot 1920f3a35a Automatically generated installer lang files 2015-06-19 00:04:06 +08:00
Dan Poltawski f4bfbd5aa2 weekly release 3.0dev 2015-06-18 14:03:02 +01:00
Dan Poltawski 096ca66866 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-06-18 14:03:00 +01:00
Skylar Kelty f936c2a9fa MDL-50637 calendar: Fix subscription table layout 2015-06-18 13:21:33 +01:00
Eloy Lafuente (stronk7) c13b7bca50 Merge branch 'MDL-50004-M30' of git://github.com/lazydaisy/moodle 2015-06-18 07:25:29 +02:00
Eloy Lafuente (stronk7) 51a09cb43e Merge branch 'MDL-50107-master' of git://github.com/jleyva/moodle 2015-06-18 07:13:40 +02:00
Dan Poltawski bceaa941c8 Merge branch 'MDL-49959_course_dnd_message' of https://github.com/barrysspace/moodle 2015-06-18 07:13:39 +02:00
Martin Mastny 25bfc7cfc0 MDL-49744 JavaScript: Glossary term window is draggable 2015-06-18 07:13:38 +02:00
Dan Poltawski 4b22fa7996 Merge branch 'MDL-42192-simpledata-unit-test' of git://github.com/dmonllao/moodle 2015-06-18 07:13:37 +02:00
Dan Poltawski a0dffaa946 MDL-42192 accesslib: tweak get_all_capabilities
Tony thinks its bike shed painting, I think its a bit more readable
and memory efficient. I am using integrator dictatorship for sure.
2015-06-18 07:13:37 +02:00
Dan Poltawski a6661ae013 Merge branch 'capabilities_cache' of git://github.com/tlevi/moodle 2015-06-18 07:13:35 +02:00
Andrew Nicols 40d7ef8231 Merge branch 'wip-MDL-50216-master' of git://github.com/abgreeve/moodle 2015-06-18 07:13:34 +02:00
Andrew Nicols cd27a8608c MDL-39353 xmlrpc: Add note to upgrde.txt regarding proxybypass 2015-06-18 07:13:34 +02:00
Andrew Nicols 4265cfa557 Merge branch 'MDL-39353' of https://github.com/rtcn2/moodle 2015-06-18 07:13:33 +02:00
Andrew Nicols 670befcc0b Merge branch 'wip-MDL-49667-master' of git://github.com/marinaglancy/moodle 2015-06-18 07:13:32 +02:00
Eloy Lafuente (stronk7) 33e8095d94 Merge branch 'MDL-48283-master' of git://github.com/xow/moodle
Conflicts:
theme/bootstrapbase/style/moodle.css
2015-06-18 07:13:10 +02:00
Andrew Nicols d04e408e38 Merge branch 'php7_reserved_words' of git://github.com/tlevi/moodle 2015-06-18 07:10:38 +02:00
Andrew Nicols 7512af87d4 Merge branch 'MDL-50380-master' of git://github.com/lameze/moodle 2015-06-18 07:10:37 +02:00
Eloy Lafuente (stronk7) 0d6f53e8f7 MDL-50491 filters: Some final touches.
- Complete the deprecation information to follow the rules.
- Minor tweak to PLAIN tests to have clearer expectations.
- Completely delete get_global_config() from filters, there
  was not much utility keeping it there. Note we have opted
  for direct deletion because it's private API, not public one
  (and searching github/google/docs did not reveal any use
  of those functions either, just in case).
2015-06-18 04:11:24 +02:00
David Mudrák 394034ec6e MDL-50631 cli: Display the Moodle ASCII logo in the CLI installer header 2015-06-17 22:48:14 +02:00
David Mudrák 85f8fe5e1b MDL-50631 cli: Add a new function to display Moodle ASCII logo 2015-06-17 22:45:48 +02:00
Tim Hunt 41e5e524f9 MDL-50491 filters: Eliminate un-resettable static caching.
This was breaking unit tests. I think it is no longer necessary since
get_config now has good caching of its own.
2015-06-17 13:48:56 +01:00
Tim Hunt 7d94679ff1 MDL-50491 filters: option to disable some filters in filter_text.
This lets you programmatically prevent certain filters running on
certain content.

Also, I created some unit tests for the basic format_text functionality
since there did not seem to be any yet.
2015-06-17 13:48:55 +01:00
Tim Hunt a94b2cb873 MDL-50491 admin: new setting class for list of filters. 2015-06-17 13:48:55 +01:00
Tim Hunt 502561d657 MDL-50491 filters: deprectate old methods & improve comments
Two methods relating to the old way of doing format_text caching have
been deprecated.
2015-06-17 13:48:54 +01:00
Tim Hunt 2ebeeeaf0a MDL-50091 grade singleview: use standard API to build the link
Acutally the necessary code was already there. There was just some
unnecessary code that was added with the issue number MDL-47746. I have
just stripped out the unused code, which fixes the bug where a missing
activity caused a fatal error.
2015-06-17 13:46:04 +01:00
Marina Glancy 5e91f96c92 MDL-50580 signup: move recaptcha outside of category 2015-06-17 11:17:32 +08:00
M Kassaei ef0a59ab7c MDL-47494 ddimageortext: Fix drag and drop on Android touch devices. #85108
The initial suggestion for how to do this fix came from Davo Smith.
2015-06-16 18:38:56 +01:00
M Kassaei 3f6905b410 MDL-47494 ddwtos: Fix drag and drop on Android touch devices. #85101
The initial suggestion for how to do this fix came from Davo Smith.
2015-06-16 18:25:53 +01:00
M Kassaei e76deaac51 MDL-47494 ddmarker: Fix drag and drop on Android touch devices. #85111
The original idea for this fix came from Davo Smith.
2015-06-16 18:20:40 +01:00
AMOS bot f506c4b3bb Automatically generated installer lang files 2015-06-17 00:03:59 +08:00
AMOS bot 34fcf06cae Automatically generated installer lang files 2015-06-17 00:03:58 +08:00
Jetha Chan affa8c035c MDL-50533 theme_bootstrapbase: retarget collapse styles 2015-06-16 16:28:27 +08:00
Marina Glancy 034fed3edc MDL-49667 navigation: allow items without branches in the settings menu
also remove the code that adds a "return to XXX user" link that was
supposed to be removed in MDL-23911 , otherwise the link would become
visible after the bug fix (but not functional).
2015-06-16 10:19:52 +08:00
Martin Mastny 78ee66c097 MDL-50216 JavaScript: Default visibility of M.core.info set to false 2015-06-16 09:50:36 +08:00
Dan Poltawski 28887344d6 Merge branch 'MDL-49368' of git://github.com/timhunt/moodle 2015-06-15 12:14:35 +01:00
Dan Poltawski 846dade5ab Merge branch 'MDL-49098-master' of git://github.com/xow/moodle 2015-06-15 12:12:07 +01:00
Dan Poltawski 459fccb791 Merge branch 'MDL-50219-master' of git://github.com/jleyva/moodle 2015-06-15 11:06:09 +01:00
Andrew Nicols 9cd9a27422 Merge branch 'MDL-50459-master' of git://github.com/jleyva/moodle 2015-06-15 16:02:53 +08:00
Andrew Nicols 951bd98f73 Merge branch 'wip-MDL-50222-master' of git://github.com/marinaglancy/moodle 2015-06-15 15:16:30 +08:00
Tony Levi 303936aa57 MDL-50453 core: Replace reserved word usage in progress\null (PHP7) 2015-06-15 12:21:27 +09:30
GeekSmith 82cca1ab16 MDL-50583 upgrade: Optimize upgrade_minmaxgrade
Reverse join order to use existing database keys. Changed query to use the
more easily read NOT IN.
2015-06-15 10:40:46 +08:00
Andrew Nicols d0d93a769d Merge branch 'MDL-50438-master' of git://github.com/mastnym/moodle 2015-06-15 10:20:19 +08:00
Andrew Nicols 941420c266 Merge branch 'MDL-50509-master-vartypo' of git://github.com/mudrd8mz/moodle 2015-06-15 09:56:49 +08:00
Andrew Nicols 62c6744fc8 MDL-50554 themes: Rebuild of bootstrapbase 2015-06-15 09:48:44 +08:00
Andrew Nicols e9ca711ecc Merge branch 'MDL-50520-master' of git://github.com/jethac/moodle 2015-06-15 09:08:48 +08:00
Mary Evans f6218c4be8 MDL-50004 theme: Fixes frontpage coursename and enrolment icons. 2015-06-15 00:23:34 +01:00
Gareth J Barnard 3f737fc07d MDL-50554 themes: Drag a link move mouse makes icons move in Chrome. 2015-06-14 21:36:02 +01:00
Juan Leyva 0b074e88d6 MDL-50459 messages: Handle deleted users in external functions 2015-06-14 22:12:00 +02:00
Juan Leyva 32fb60e761 MDL-50219 users: Include add_user_private_files in the mobile service 2015-06-14 22:09:28 +02:00
Dan Poltawski f1a415ea70 weekly release 3.0dev 2015-06-12 10:24:37 +01:00
Dan Poltawski 51150c54ff Merge branch 'MDL-48618_master-test-calculated' of git://github.com/dmonllao/moodle 2015-06-12 10:19:23 +01:00
Eloy Lafuente (stronk7) 6eb9e03872 MDL-50176 repository_youtube: delay loading google service stuff
Loading Google client services is a little monster, eating around
2MB (opcache enabled) of memory. As far as we instantiate the
repository instances really early, no matter they are not used
later (editor, file picker, admin...).. we are delaying the
load of the service until we know we are going to use it.

Surely applying this very same (sort of lazy load) techinque
to other repositories could lead to a nice memory reduction
in lots of pages.

MDL-50176 repository_youtube: also delay the inclusion of client.

While memory was fixed with previous commit, still some extra included
files where being reported, so go crazy and move all the stuff to
the new init delayed method.
2015-06-12 10:27:30 +02:00
David Monllao 12a4770d9b MDL-48618 grades: Testing calculated items with minmaxtouse 2015-06-12 13:19:04 +08:00
Marina Glancy 1d61d56574 MDL-50568 navigation: correct cap check 2015-06-12 10:41:36 +08:00
Frederic Massart 6bd5ca3db0 MDL-48618 grades: Do not run minmax upgrade for fresh installs 2015-06-11 17:16:34 +08:00
Dan Poltawski e2ddd9ad04 Merge branch 'wip-mdl-49659' of https://github.com/rajeshtaneja/moodle 2015-06-11 09:56:07 +01:00
David Monllao d8ee571298 MDL-48618 upgrade: Matching conditions and upgrade savepoints 2015-06-11 15:02:06 +08:00
David Monllao 408e3812af MDL-48618 grades: Forcing new upgrade savepoint 2015-06-11 14:37:31 +08:00
David Monllao e87acc8386 Merge branch 'MDL-48618-master' of git://github.com/FMCorz/moodle 2015-06-11 14:20:56 +08:00
Rajesh Taneja 352a70e25d MDL-49659 theme_clean: Add login info in the nav bar 2015-06-11 10:21:35 +08:00
Eloy Lafuente (stronk7) b2521cfa45 Merge branch 'MDL-50250-master' of git://github.com/lameze/moodle 2015-06-11 00:32:11 +02:00
Eloy Lafuente (stronk7) 05df4bc5f9 MDL-50452 behat: 2nd level dep. Update twig/twig to v1.18.2 2015-06-10 13:34:58 +02:00
Juan Leyva d421a41979 MDL-50107 webservices: Enable CORS in login/token.php 2015-06-10 11:33:53 +02:00
Rod Norfor 0f382fe2e7 MDL-39353 xmlrpc: Add proxy support 2015-06-10 08:17:36 +01:00
Frederic Massart 056aeae8d4 MDL-48618 grades: Test for the minmax upgrade step 2015-06-10 12:33:42 +08:00
Frederic Massart 597fc6db1a MDL-48618 grades: Behat tests to cover min/max grade changes
The values provided as part of this test are similar to values
that can be found in 2.7. This is to ensure that users will not
experience changes in grades.
2015-06-10 12:33:42 +08:00
Frederic Massart 2eb4a83c29 MDL-48618 grades: Unit tests for grade_grade::get_min/max_grade() 2015-06-10 12:33:41 +08:00
Frederic Massart ebea19cb26 MDL-48618 grades: Handling of inconsistencies due to min/max grades 2015-06-10 12:33:41 +08:00
Eloy Lafuente (stronk7) 22214c22d1 Merge branch 'MDL-49882' of git://github.com/jmvedrine/moodle 2015-06-10 01:39:17 +02:00
Eloy Lafuente (stronk7) 28ddf1e94d Merge branch 'MDL-47480-master' of git://github.com/ankitagarwal/moodle 2015-06-10 00:32:10 +02:00
Eloy Lafuente (stronk7) 75704fe6b8 Merge branch 'wip-MDL-28954-master' of https://github.com/marinaglancy/moodle 2015-06-10 00:23:20 +02:00
Eloy Lafuente (stronk7) db91aae8f4 Merge branch 'MDL-50145_master' of git://github.com/markn86/moodle 2015-06-09 20:40:56 +02:00
Eloy Lafuente (stronk7) 7d91e86452 Merge branch 'm30_MDL-50415_Add_PHP_Variables_In_PHPInfo_Admin_Page' of https://github.com/scara/moodle 2015-06-09 20:35:02 +02:00
Eloy Lafuente (stronk7) 094356a954 Merge branch 'wip-mdl-50179' of https://github.com/rajeshtaneja/moodle 2015-06-09 20:32:10 +02:00
Eloy Lafuente (stronk7) b3b6dc9d66 Merge branch 'MDL-50176' of git://github.com/aolley/moodle 2015-06-09 20:28:36 +02:00
Dan Poltawski cc9806146d Merge branch 'MDL-43731' of https://github.com/ramdesh/moodle 2015-06-09 14:56:52 +01:00
Dan Poltawski f68cf0a2b7 Merge branch 'MDL-49659_master' of git://github.com/lazydaisy/moodle 2015-06-09 14:42:12 +01:00
Dan Poltawski 6362f68ebe Merge branch 'MDL-49885_course_overview_block2' of https://github.com/andyjdavis/moodle 2015-06-09 13:57:10 +01:00
Dan Poltawski 39e8ff6226 Merge branch 'MDL-50186-master' of git://github.com/mastnym/moodle 2015-06-09 13:28:16 +01:00
Barry Oosthuizen a3657f8b42 MDL-49959 course: Fix hidden drag and drop message 2015-06-09 09:37:53 +01:00
Mark Nelson 1254e48f26 MDL-50145 mod_lesson: added behat test for multiple dashboard lessons 2015-06-09 00:49:04 -07:00
Jetha Chan e37d53dac1 MDL-50520 templates: fix helpers not firing inside pix helper 2015-06-09 15:23:04 +08:00
Mark Nelson 2c4b43d9b2 MDL-50145 mod_lesson: fixed issue with duplicate values 2015-06-08 22:09:25 -07:00
Rajesh Taneja 2835eee63b MDL-50179 lesson: Get student/attempts only when showing overview 2015-06-09 09:34:10 +08:00
Rajesh Taneja f0b48270d3 MDL-50179 behat: Use %d for windows compatibility 2015-06-09 09:34:10 +08:00
Eloy Lafuente (stronk7) b26f8af988 MDL-48470 strings: Fix unit tests by moving to another string. 2015-06-08 22:53:06 +02:00
Eloy Lafuente (stronk7) d3c2a653a8 Merge branch 'MDL-48470-master' of git://github.com/ankitagarwal/moodle 2015-06-08 19:55:34 +02:00
Eloy Lafuente (stronk7) d4d1b2b5a3 Merge branch 'MDL-50394_master' of git://github.com/markn86/moodle 2015-06-08 18:32:45 +02:00
Eloy Lafuente (stronk7) 6422f03f15 Merge branch 'MDL-50442-master' of git://github.com/jleyva/moodle 2015-06-08 18:21:31 +02:00
Eloy Lafuente (stronk7) 4a85f8dc16 Merge branch 'MDL-50408_master' of git://github.com/dmonllao/moodle 2015-06-08 15:49:06 +02:00
David Mudrák cdc6938bf9 MDL-50509 datalib: Fix the typo in the variable name
The line is supposed to sanitize the function parameter.
2015-06-08 11:14:08 +02:00
Marina Glancy 2bf60e22f7 MDL-50222 admin: do not use deprecated print_textarea() 2015-06-08 17:10:58 +08:00
David Monllao 5c73688b4a MDL-50408 tool_log: Extra deprecation tip
Adding a debugging message and returning alternative data to keep backwards
compatibility as get_readers is a widely used function.
2015-06-08 15:56:23 +08:00
Marina Glancy 6218473334 MDL-28954 cohorts: support files in cohort descriptions 2015-06-08 09:18:45 +08:00
Eloy Lafuente (stronk7) eec5902cd6 Merge branch 'wip-mdl-50452' of git://github.com/rajeshtaneja/moodle 2015-06-08 02:33:31 +02:00
Andrew Davis ef38a7286b MDL-49885 core_blocks: fixed course_overview block applicable_formats() 2015-06-08 05:42:18 +08:00
Eloy Lafuente (stronk7) 208ebc5cd1 Merge branch 'MDL-50456-master' of git://github.com/damyon/moodle 2015-06-07 21:56:18 +02:00
Juan Leyva b1aa7dfac3 MDL-50493 forum: Handle correctly qanda forums in get_discussion_posts 2015-06-06 00:00:56 +02:00
Eric Merrill c07775dfff MDL-48618 gradebook: Only use individual min/max for aggrigate grades 2015-06-05 17:05:24 +08:00
Juan Leyva ceac202f64 MDL-50442 ws: Add core_user_get_users_by_field to the mobile service 2015-06-04 22:02:04 +02:00
Mary Evans 5563c0bcc1 MDL-49659 theme: Removed home link and limited login info in secure.php
Credits: Thanks go to Andreas Hruska [https://github.com/ahruska] for the original patch for this issue.
2015-06-04 17:39:49 +01:00
Eloy Lafuente (stronk7) 17abbfba1f weekly release 3.0dev 2015-06-04 12:08:53 +02:00
Eloy Lafuente (stronk7) 7d55d643a0 Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install 2015-06-04 12:08:45 +02:00
Rajesh Taneja 7deb61e7c0 MDL-47995 lib: encode title properly, before additing it to image title 2015-06-04 11:13:00 +08:00
jinhofer 59f7fd42e0 MDL-50140 grade/import: Fix for misplaced CSH buttons 2015-06-03 15:44:28 +01:00
Eloy Lafuente (stronk7) 0eee70506e Merge branch 'MDL-47995-master' of git://github.com/lameze/moodle 2015-06-03 11:10:41 +02:00
yashvardhanpatel07 3da723d548 MDL-49098 feedback: Fix completion message language strings
With contributions from John Okely
2015-06-03 16:47:52 +08:00
Dan Poltawski 21313019d9 Merge branch 'MDL-46294-master' of git://github.com/ankitagarwal/moodle 2015-06-03 08:53:19 +01:00
Mark Nelson 9758da6ed5 MDL-50394 core_course: fixed form validation of 'gradepass' 2015-06-02 23:31:46 -07:00
Damyon Wiese 2139d7995b MDL-50456 Javascript: Fix simple logic error in core/url amd module 2015-06-03 14:21:03 +08:00
Rajesh Taneja bf32276058 MDL-50452 behat: Added tag for moodle 3.0 2015-06-03 11:50:11 +08:00
Ankit Agarwal 28ac49c899 MDL-46294 completion: Final deprecation of get_incomplete_criteria 2015-06-03 07:36:40 +05:30
Eloy Lafuente (stronk7) 1df669e7bf Merge branch 'MDL-50228' of git://github.com/timhunt/moodle 2015-06-03 01:29:46 +02:00
Eloy Lafuente (stronk7) 23abab38e7 Merge branch 'MDL-50198' of git://github.com/timhunt/moodle 2015-06-03 01:19:42 +02:00
Eloy Lafuente (stronk7) 2426d816fe Merge branch 'MDL-49901_master' of https://github.com/jinhofer/moodle 2015-06-02 19:57:38 +02:00
Dan Poltawski 4bbb035830 Merge branch 'MDL-49905_postform_timeoption' of https://github.com/kylemn/moodle 2015-06-02 16:06:45 +01:00
Dan Poltawski 38414e965c Merge branch 'MDL-50009-m' of https://github.com/micaherne/moodle 2015-06-02 14:42:21 +01:00
Dan Poltawski f272503420 Merge branch 'MDL-50260-remove-code-optional_param' of git://github.com/tmuras/moodle 2015-06-02 14:22:59 +01:00
Dan Poltawski 09bc038674 Merge branch 'MDL-49793-master' of git://github.com/jleyva/moodle 2015-06-02 14:01:05 +01:00
Dan Poltawski 356fd5bae7 Merge branch 'm29_MDL-49628a' of https://github.com/totara/moodle 2015-06-02 13:54:01 +01:00
Dan Poltawski 290b156276 Merge branch 'MDL-49323-master' of git://github.com/nmoller/moodle 2015-06-02 13:23:37 +01:00
Dan Poltawski f73b04871a Merge branch 'MDL-50155' of https://github.com/andrewhancox/moodle 2015-06-02 12:08:24 +01:00
Dan Poltawski 17abf1caa2 MDL-30960 version: bump for new setting 2015-06-02 11:47:43 +01:00
Dan Poltawski ca5c7d7535 Merge branch 'MDL-30960_master' of https://github.com/danielneis/moodle 2015-06-02 11:42:10 +01:00
Marina Glancy 29645f9745 MDL-26501 mod_glossary: fixes to tabs management 2015-06-02 11:25:27 +01:00
Nivedita Setru 223d6cb3bf MDL-26501 mod_glossary: Allow to specify visible tabs 2015-06-02 11:25:26 +01:00
Dan Poltawski 77679fb2e5 Merge branch 'MDL-36957-master' of git://github.com/FMCorz/moodle 2015-06-02 11:07:57 +01:00
Dan Poltawski 554dedf6a6 Merge branch 'MDL-46927_master' of git://github.com/markn86/moodle 2015-06-02 09:03:43 +01:00
Tomasz Muras 88661686aa MDL-50250 core_lib: Remove obsolete param from p() method.
Obsolete param $obsolete is not used anywhere and can be removed.
Also small fix in wording in related documentation.
2015-06-02 15:51:13 +08:00
Martin Mastny d2be12cb3e MDL-50438 filter_glossary: Added missing exception classes 2015-06-02 14:20:36 +08:00
Mark Nelson 94f78b0d15 MDL-46927 core_files: fixed issue with system course restores
When clicking on 'Restore' next to a file in the 'Course
backup area' in the system context the message 'Sorry,
the requested file could not be found' was displayed.
This fix adds missing functionality to the class
'file_info_context_system' so that the file information
is correctly returned.
2015-06-01 23:08:40 -07:00
Ankit Agarwal c44b4213e6 MDL-47480 tasks: Define order for getting tasks 2015-06-02 08:08:04 +05:30
AMOS bot 87c8667d3b Automatically generated installer lang files 2015-06-02 00:04:14 +08:00
Nelson Moller b73eed1249 MDL-49323 mod_assign: Fixed numeric validation in grade form.
The behat test for another decimal separator was incorporated.
2015-06-01 10:54:12 -04:00
Eloy Lafuente (stronk7) f0fa70d0df Merge branch 'MDL-29771' of git://github.com/timhunt/moodle 2015-06-01 16:13:18 +02:00
Dan Poltawski df0a584485 Merge branch 'MDL-50341' of git://github.com/timhunt/moodle 2015-06-01 15:03:23 +01:00
Dan Poltawski 825be82b8a MDL-50322 forum: add basic split post behat coverage
Also bump version for autoloading new class.
2015-06-01 14:59:06 +01:00
Dan Poltawski 918950d0cd Merge branch 'MDL-50322-master' of git://github.com/mastnym/moodle 2015-06-01 13:49:57 +01:00
Dan Poltawski 3235dc1285 Merge branch 'MDL-50140_master' of https://github.com/jinhofer/moodle 2015-06-01 13:34:18 +01:00
Dan Poltawski 6395168b67 Merge branch 'MDL-50304_master' of https://github.com/jinhofer/moodle 2015-06-01 13:21:54 +01:00
Juan Leyva 752036b826 MDL-49793 url: New Web Service mod_url_view_url 2015-06-01 13:46:22 +02:00
Juan Leyva f3fe1b8b35 MDL-49793 url: Move logging and completion to new API 2015-06-01 13:43:17 +02:00
Dan Poltawski 0800e9637c Merge branch 'MDL-46479-master' of git://github.com/ankitagarwal/moodle 2015-06-01 12:36:25 +01:00
Dan Poltawski c92bfbfcca MDL-50406 less: build css 2015-06-01 12:01:34 +01:00
Dan Poltawski 5a1a53a03a Merge branch 'MDL-50406_master' of git://github.com/nadavkav/moodle 2015-06-01 11:42:22 +01:00
Dan Poltawski 9492e529ef Merge branch 'MDL-50309_master' of git://github.com/markn86/moodle 2015-06-01 10:25:48 +01:00
Dan Poltawski 5ffb982d25 Merge branch 'MDL-49707-master' of git://github.com/ankitagarwal/moodle 2015-06-01 10:09:06 +01:00
Ankit Agarwal 2639cdf0b0 MDL-49707 inbound: localpart should be < 15 2015-06-01 10:06:16 +05:30
Adam Olley b8264f5b2b MDL-50176 repository_youtube: Switch to using YouTube Data API
As of April 20, 2015, the old API used by repository_youtube is no longer
accessible. This change switches over to using the standard Google Data
API v3.

Unfortunately this means that to search YouTube, a developer api key is now
*required*.

Special thanks to UNSW for sponsoring this work.
2015-06-01 09:25:40 +09:30
Tim Hunt 3af05ae35b MDL-29771 interactive behaviour: better state text in try again state
Before it just said 'Not complete'. It is more helpful to show the number
of tries remaining in this state as well.
2015-05-31 21:09:55 +01:00
Tim Hunt 312dce0ebc MDL-50341 quiz statistics: non-attempted questions broke first-try stats
For behaviours that allow multiple tries, and when the teacher had chosen to
generate statistics for the first tries only, and when a student had not
attempted one question, then an error occurred. It should have been classified
as no response.
2015-05-31 13:36:53 +01:00
Jean-Michel Vedrine 5d33ec9c7e MDL-49882 mod_lesson: Essay questions not imported into lessons 2015-05-31 07:24:11 +02:00
AMOS bot 7452baffa6 Automatically generated installer lang files 2015-05-31 00:03:56 +08:00
Matteo Scaramuccia 7b9f73ee10 MDL-50415 Admin: added the PHP Variables section in the PHPinfo page. 2015-05-30 07:04:46 +02:00
Nadav Kavalerchik af3a0656be MDL-50406 Messages: Right align messages menu box, in RTL mode. 2015-05-29 20:45:54 +03:00
AMOS bot 121cfa76c2 Automatically generated installer lang files 2015-05-30 00:04:03 +08:00
David Monllao b3e6802cf8 MDL-42192 caches: Adding simpledata tests 2015-05-29 17:18:31 +08:00
Martin Mastny 96a2e00d42 MDL-39319 langimport: Javascript confirmation when uninstalling 2015-05-29 13:08:33 +08:00
Martin Mastny 6ddf92c774 MDL-39319 langimport: Able to delete more languages at once 2015-05-29 13:08:33 +08:00
Martin Mastny 069d0f1733 MDL-50322 mod_forum: Added validation when spliting discussions 2015-05-29 09:11:39 +08:00
AMOS bot 9277e79e2a Automatically generated installer lang files 2015-05-29 00:03:56 +08:00
jinhofer aa65ecea98 MDL-50304 atto/plugins/table: Fixed _addRowAfter function 2015-05-28 07:53:10 -05:00
jinhofer 0fa9b33463 MDL-50140 grade/import: Added CSH buttons to import grades
CSH buttons have been added to CSV Import as well as Paste
from spreadsheet in the following areas:
Encoding, Separator (csv only), Verbose, Preview, Map to,
and Map from.

The heading of Import CSV had a CSH button added as well.

All CSH buttons were given associated language strings.
2015-05-28 07:51:50 -05:00
AMOS bot 62bdf9b779 Merge branch 'master' into install_master 2015-05-28 14:21:55 +08:00
Simey Lameze e9588b7e68 MDL-50380 mod_wiki: fix missing parameter on wiki edit files page
Also fixing a typo on the $referer variable.
2015-05-28 12:40:43 +08:00
Mark Nelson 2b7b0bae62 MDL-50309 core_upgrade: fixed undefined '$customusermenuitems' notice 2015-05-27 21:29:39 -07:00
Martin Mastny 9cf1b21127 MDL-50186 forms: Removed special characters from id attribute 2015-05-28 11:41:51 +08:00
David Monllao 0c6faf4b51 weekly on-sync release 3.0dev 2015-05-28 11:41:36 +08:00
David Monllao 187c4d47be Merge branch 'MDL-50373' of git://github.com/timhunt/moodle 2015-05-28 09:27:30 +08:00
Tim Hunt e7df2335b6 MDL-50373 questions: random Qs must not pick deleted or sub- questions
This was a regression caused by MDL-6340. I missed the necessary
    AND parent = 0 AND hidden = 0
in one query of the question table.
2015-05-27 20:32:47 +01:00
Eloy Lafuente (stronk7) e987eeef75 Merge branch 'wip-mdl-49806' of https://github.com/rajeshtaneja/moodle 2015-05-27 12:20:50 +02:00
Ankit Agarwal 648cddcbca MDL-46479 enrol_plugin: Final deprecation of instance_deletable() 2015-05-27 14:03:21 +05:30
David Monllao c5954f64ae MDL-50330 blog: Make other users blogs accessible 2015-05-27 14:03:34 +08:00
David Monllao de6b4e9dac Merge branch 'MDL-50340-master' of git://github.com/ankitagarwal/moodle 2015-05-27 11:58:22 +08:00
David Monllao 9d1593d686 Merge branch 'wip-mdl-49772' of git://github.com/rajeshtaneja/moodle 2015-05-27 11:50:01 +08:00
Rajesh Taneja b7861ddab3 MDL-49772 behat: Removed optimization as it's not required
This api is called very few times in behat
initilisation process, so such optimization
is an over engineer. Hence removing it.
2015-05-27 11:20:48 +08:00
Rajesh Taneja e2e37bc510 MDL-49806 behat: Ensure user is marked complete before runnning cron 2015-05-27 09:24:18 +08:00
David Monllao 1bd2c8ad01 Merge branch 'MDL-49611' of git://github.com/srynot4sale/moodle-fixes 2015-05-27 08:49:23 +08:00
jinhofer 36231b6cd5 MDL-49732 atto/plugins/link: Added CTRL+K for creating a link 2015-05-26 15:45:05 -05:00
Eloy Lafuente (stronk7) 777cb3ece8 Merge branch 'wip-mdl-49772' of https://github.com/rajeshtaneja/moodle 2015-05-26 18:48:03 +02:00
Eloy Lafuente (stronk7) 84152b676a Merge branch 'wip-MDL-50191-master' of https://github.com/marinaglancy/moodle 2015-05-26 18:19:42 +02:00
AMOS bot c472077460 Automatically generated installer lang files 2015-05-27 00:03:51 +08:00
Dan Poltawski 502bcf9738 Merge branch 'MDL-50318-master-courseresources' of git://github.com/mudrd8mz/moodle 2015-05-26 13:05:16 +01:00
Dan Poltawski 2a72614f53 Merge branch 'MDL-49787_email_attachments_symlink_fix' of https://github.com/iamandrew/moodle 2015-05-26 12:57:12 +01:00
Dan Poltawski 450b0f1dfd Merge branch 'MDL-49776-master' of git://github.com/lameze/moodle 2015-05-26 11:53:34 +01:00
Dan Poltawski aa55e70382 Merge branch 'MDL-49560-master' of git://github.com/gurgus/moodle 2015-05-26 11:33:26 +01:00
Dan Poltawski e0db4c775e Merge branch 'MDL-50271-master' of git://github.com/jleyva/moodle 2015-05-26 11:31:38 +01:00
David Monllao 9b7c42eac7 Merge branch 'MDL-50344-master' of git://github.com/ankitagarwal/moodle 2015-05-26 17:29:22 +08:00
David Monllao 74c32f21e2 Merge branch 'MDL-48664-master' of git://github.com/jethac/moodle 2015-05-26 14:45:34 +08:00
David Monllao fb00b083ce Merge branch 'MDL-46550-master' of git://github.com/ankitagarwal/moodle 2015-05-26 12:28:59 +08:00
David Monllao c8f92d487a Merge branch 'MDL-50289-master-notes' of git://github.com/mudrd8mz/moodle 2015-05-26 12:23:03 +08:00
Jetha Chan b146b6a8c3 MDL-48664 output: change paging_bar to not use non-breaking spaces 2015-05-26 12:13:14 +08:00
Daniel Neis 2108ac8a4f MDL-30960 messages: add option to set authtype 2015-05-25 13:40:48 -03:00
Dan Poltawski 9dbe663dbf Merge branch 'MDL-50313-master-featureidnumber' of git://github.com/mudrd8mz/moodle 2015-05-25 13:54:04 +01:00
Dan Poltawski 3b88ce4bce Merge branch 'MDL-50321-master-modupgradetxt' of git://github.com/mudrd8mz/moodle 2015-05-25 12:30:34 +01:00
Dan Poltawski cd580ee337 Merge branch 'MDL-40592_master' of https://github.com/nadavkav/moodle 2015-05-25 12:28:38 +01:00
Dan Poltawski e2a472e024 Merge branch 'MDL-49493-master' of git://github.com/mastnym/moodle 2015-05-25 12:00:44 +01:00
David Mudrák e9acc1d6c5 MDL-50289 notes: No navigation to notes if the feature is disabled 2015-05-25 12:35:26 +02:00
David Monllao 5362e3ca3a Merge branch 'wip-MDL-49572-master' of git://github.com/marinaglancy/moodle 2015-05-25 17:54:00 +08:00
Damien Bezborodov e604d38fc7 MDL-50285 gradereport_user: Grade categories calculate wrong with suspended users (Student's view) 2015-05-25 17:43:48 +08:00
David Monllao d34a865a61 Merge branch 'wip-MDL-50330-master' of git://github.com/abgreeve/moodle 2015-05-25 16:37:06 +08:00
Marina Glancy d08f2f1175 MDL-49560 webservice: avoid recursion in soap
Thanks to El Leonidych for providing a patch
2015-05-25 15:57:23 +08:00
Ankit Agarwal f987afbc2c MDL-50344 restore: Make restore file required 2015-05-25 12:02:16 +05:30
Ankit Agarwal 2d3fcda8ec MDL-50340 adminstration: Fix restore course links 2015-05-25 11:11:20 +05:30
spvickers 058cd1c1d0 MDL-49776 mod_lti: Set parameter in privacy check
Moved sending of the lis_result_sourcedid parameter to within the block
which checks that grades are being accepted for the link.
2015-05-25 13:01:33 +08:00
iclearn b85ce5e4ed MDL-47995 mod_url: add proper title encoding on url mod 2015-05-25 12:46:28 +08:00
iclearn c9b445990f MDL-47995 mod_resource: properly encode resource title 2015-05-25 12:44:46 +08:00
Martin Mastny 4ee052641e MDL-49493 backup: Implemented missing methods for anonymous backup 2015-05-25 10:35:11 +08:00
AMOS bot 0b36a6d05c Automatically generated installer lang files 2015-05-23 00:04:01 +08:00
Juan Leyva b3e1e2d007 MDL-50271 webservices: Allow to load multiple themes in WS_SERVER mode 2015-05-22 13:27:23 +02:00
Adrian Greeve c2c5f874e1 MDL-50330 blog: Behat test for blog visibility. 2015-05-22 16:13:03 +08:00
Nadav Kavalerchik d19de800ed MDL-40592 assign/grading: Display default user picture, if none is set. 2015-05-22 10:35:47 +03:00
Adrian Greeve 0c7131622d MDL-50330 blog: Fixed fatal error accessing blogs. 2015-05-22 15:34:09 +08:00
Tim Hunt ce95661817 MDL-49368 qtypes match & multichice: cope with editing after attempt
Teachers should not radically edit a question after it has been
attempted. However, if they do, we should handle it gracefully, rather
than triggering PHP errors.
2015-05-21 18:17:14 +01:00
Tomasz Muras 75aefe070b MDL-50260 lib: remove unnecessary isset check in optional_param().
There is no need to do check:
if (!isset($default))
As we're guaranteed that function was called with 3 arguments (func_num_args() == 3).
2015-05-21 18:54:28 +02:00
David Mudrák f7a84c6386 MDL-50321 docs: Add info about deprecated method into mod/upgrade.txt
This was forgotten in MDL-49101.
2015-05-21 18:06:41 +02:00
AMOS bot b0758a1090 Automatically generated installer lang files 2015-05-22 00:03:49 +08:00
AMOS bot b8347ccafa Merge branch 'master' into install_master 2015-05-22 00:03:48 +08:00
David Mudrák 01f329babe MDL-50318 course: Fix the URL of embedded images at resources overview
Not only mod_resource instances are listed here. All modules that
declare their FEATURE_MOD_ARCHETYPE as MOD_ARCHETYPE_RESOURCE (well, all
but those without own view page, such as mod_label) are listed. So we
must use the real plugin name when rendering the intro field.
2015-05-21 17:23:25 +02:00
Tim Hunt 8f21a4fb12 MDL-47494 ddimageortext: Fix editing form javascript. 2015-05-21 15:59:03 +01:00
Tim Hunt be1ce906b5 MDL-47494 ddimageortext: Fix behat failures. 2015-05-21 15:58:55 +01:00
Tim Hunt 16f1bcee3d MDL-47494 ddmarker: Fix editing form javascript. 2015-05-21 15:57:11 +01:00
Tim Hunt 9deb358dda MDL-47494 ddmarker: Fix behat failures. 2015-05-21 15:57:10 +01:00
Tim Hunt 8ffe874059 MDL-47494 ddwtos: Fix behat failures. 2015-05-21 15:54:54 +01:00
David Mudrák de158ec57c MDL-50313 docs: Fix the documentation for the FEATURE_IDNUMBER constant
The constant is used by course/moodleform_mod.php to decide whether the
field 'ID number' (cmidnumber) should be included in the common module
settings section of the activity settings form. Activity modules that do
not use grades (such as the Label) can explicitly return false when
checking for this feature support. By default, all activity modules are
supposed to support it.
2015-05-21 16:53:00 +02:00
Eloy Lafuente (stronk7) 803f565753 weekly on-sync release 3.0dev 2015-05-21 12:44:08 +02:00
Rajesh Taneja 91a96d402a MDL-49772 behat: Added support to updatestep file by parallel run 2015-05-21 13:24:29 +08:00
Marina Glancy e65d05c128 MDL-50191 cohorts: check manage cap to display hide icon 2015-05-21 12:19:57 +08:00
AMOS bot 21b2b8c485 Automatically generated installer lang files 2015-05-21 00:03:49 +08:00
Eloy Lafuente (stronk7) 2e365978de Merge branch 'MDL-50277-master' of git://github.com/andrewnicols/moodle 2015-05-20 11:04:56 +02:00
Marina Glancy 2d1164800c MDL-49572 cache: correctly purge cache on event 2015-05-20 14:07:58 +08:00
David Monllao a103ccb4a4 Merge branch 'wip-mdl-49061' of git://github.com/rajeshtaneja/moodle 2015-05-20 10:18:11 +08:00
Rajesh Taneja 99018b283d MDL-49061 behat: Fixed input name to use full activity name 2015-05-20 10:07:26 +08:00
Andrew Nicols 4218673093 MDL-50277 Javascript: Hardcode nodejs dependencies
In order to produce a consistent build across the board, we must hardcode
several package versions. We must additionally specify compatible
versions for any sub-dependency that we have a requirement upon.

In this instance, the only sub-dependency which has an effect upon the
overall output is grunt-contrib-uglify's dependency upon uglify-js.

Since change in uglify-js may lead to changes in the generated output, we
must specify a fixed version of that dependency. That version must be
compatible with the dependency signature for grunt-contrib-uglify or the
dependency manager will just download a different version.

This issue also bumps the version of uglify-js to a version which changes
the output. This is the latest version at time of commit.
2015-05-20 09:41:17 +08:00
Eloy Lafuente (stronk7) 7dd6cd75de Merge branch 'wip-mdl-50259' of https://github.com/rajeshtaneja/moodle 2015-05-19 18:02:34 +02:00
Dan Poltawski 2ce0c86d62 Merge branch 'wip-MDL-49061-master' of https://github.com/marinaglancy/moodle 2015-05-19 15:00:26 +01:00
Dan Poltawski c1b9c3d10d Merge branch 'wip-mdl-50203' of https://github.com/rajeshtaneja/moodle 2015-05-19 12:38:56 +01:00
Aaron Barnes 03f3f7180f MDL-49611 completion: Update dangling err_nocriteria lang strings 2015-05-19 22:41:19 +12:00
Andrew Nicols 5fd62ba064 Merge branch 'MDL-50276-master' of git://github.com/ankitagarwal/moodle 2015-05-19 15:43:28 +08:00
Dan Poltawski 9e4e5d1194 Merge branch 'wip-mdl-50116' of https://github.com/rajeshtaneja/moodle 2015-05-19 08:27:49 +01:00
Rajesh Taneja 53cf1a4149 MDL-50259 behat: Use strict activity name checking
contains might select wrong activity
so using strict activity text checking
2015-05-19 14:20:05 +08:00
Ankit Agarwal 23e9968a25 MDL-50276 forums: Add a new line in forum emails 2015-05-19 11:46:00 +05:30
Rajesh Taneja d31e69f976 MDL-50116 behat: Fixed xpath for selecting table row 2015-05-19 13:32:32 +08:00
Eloy Lafuente (stronk7) 4115105c2c Merge branch 'MDL-50169' of https://github.com/sk-unikent/moodle 2015-05-19 02:03:07 +02:00
Eloy Lafuente (stronk7) 74ebb5ce4b Merge branch 'MDL-50280' of https://github.com/sk-unikent/moodle 2015-05-19 01:43:06 +02:00
Eric Merrill 0f7f2134a7 MDL-48467 atto: Clean the textarea during submission when in HTML mode 2015-05-19 01:39:22 +02:00
Eloy Lafuente (stronk7) bb6b107111 Merge branch 'MDL-50197' of git://github.com/timhunt/moodle 2015-05-19 00:35:35 +02:00
Eloy Lafuente (stronk7) 767da25767 Merge branch 'MDL-50245' of git://github.com/timhunt/moodle 2015-05-19 00:32:58 +02:00
Dan Poltawski 04d73f4fff Merge branch 'MDL-49949-master' of git://github.com/mastnym/moodle 2015-05-18 15:32:56 +01:00
Dan Poltawski 7b88b85392 Merge branch 'MDL-49764_master' of https://github.com/jinhofer/moodle 2015-05-18 15:28:48 +01:00
Skylar Kelty 5b8e7b9564 MDL-50280 WebCT import scripts don't always clean up 2015-05-18 15:25:18 +01:00
Andrew Hancox b3834b3632 MDL-50155 core: Move and rename common settings config page
AMOS BEGIN
CPY [commonsettings,admin],[commonactivitysettings,admin]
AMOS END
2015-05-18 14:48:01 +01:00
Dan Poltawski 62fc688bac Merge branch 'MDL-49906-master' of git://github.com/lameze/moodle 2015-05-18 14:04:10 +01:00
Dan Poltawski 4bd7eb6117 Merge branch 'MDL-50092_master' of git://github.com/dmonllao/moodle 2015-05-18 13:58:14 +01:00
jinhofer 75a548b5f3 MDL-49764 grade/report/grader: Fixed height issue for IE 2015-05-18 07:47:54 -05:00
Dan Poltawski d597f85638 Merge branch 'MDL-50254-master' of git://github.com/damyon/moodle 2015-05-18 13:09:42 +01:00
Dan Poltawski 14dbf56266 Merge branch 'MDL-50177_master' of git://github.com/dmonllao/moodle 2015-05-18 13:01:51 +01:00
Ankit Agarwal 1785f52cf6 MDL-48470 strings: Remove deprecated strings 2015-05-18 14:45:03 +05:30
Damyon Wiese 4c7dfac372 MDL-50254 Mustache: Missing alias for namespaced class in mustache
Thanks to Francesco Bigiarini for the report and suggested fix.
2015-05-18 15:11:12 +08:00
Ankit Agarwal fa31be3b7f MDL-46550 logs: Fix incorrect url
Thanks to Nadav Kavalerchik for the suggestion on patch
2015-05-18 11:49:55 +05:30
David Monllao 7ab171fdff Merge branch 'wip-MDL-49742-master' of git://github.com/abgreeve/moodle 2015-05-18 10:16:49 +08:00
Adrian Greeve 1fc2bb35e6 MDL-49742 lib: Removed additional names on tables for sorting.
When additional names are disabled, they are no longer shown as
sortable headings in the enrolment and admin user tables.
2015-05-15 15:29:52 +08:00
Martin Mastny 1be1c66a9b MDL-49949 grader: Using method to determine item name 2015-05-15 14:58:00 +08:00
Rajesh Taneja 2ffaceb7a9 MDL-50116 behat: updated symfony/symfony version 2015-05-15 10:07:02 +08:00
Tim Hunt 3a1bc53bc2 MDL-50245 quiz: fix CSS of search options in the qbank dialogue 2015-05-14 14:40:44 +01:00
Tim Hunt 1bad9be67a MDL-50228 quiz: improve overall feedback section of the form 2015-05-14 10:21:16 +01:00
John Okely 8ccd193498 MDL-48283 completion: Add moodle-has-zindex class to completion progress 2015-05-14 17:05:01 +08:00
David Monllao b5dbb126f9 weekly on-sync release 3.0dev 2015-05-14 11:35:20 +08:00
Tony Levi aa7017432a MDL-42192 accesslib: Cache capabilities list
With thanks to Andrew Nicols <andrew@nicols.co.uk> for some ammendments.
2015-05-14 11:23:47 +09:30
Rajesh Taneja e9eaf94226 MDL-50203 behat: Click on link in student 1 row 2015-05-13 15:19:59 +08:00
Simey Lameze baa850a309 MDL-49906 core_user: add require login exception message 2015-05-13 13:51:22 +08:00
Marina Glancy bdbe385cc2 MDL-49061 reports: call format_string on activities names 2015-05-13 12:14:13 +08:00
David Monllao 51062c52cb Merge branch 'MDL-25138-master' of git://github.com/lameze/moodle 2015-05-13 10:23:01 +08:00
Damyon Wiese d051442461 MDL-25138 core_tags: remove duplicated related tags 2015-05-13 10:04:09 +08:00
Simey Lameze da7f951345 MDL-25138 core_tag: fix correlated tags query unique error 2015-05-13 10:04:09 +08:00
Eloy Lafuente (stronk7) a17d9a6b99 Merge branch 'MDL-50187_master' of git://github.com/dmonllao/moodle 2015-05-12 09:48:28 +02:00
Skylar Kelty 6e60e99570 MDL-50169: Fix grade report SQL logic 2015-05-12 08:03:56 +01:00
David Monllao 729a6c5617 MDL-50177 completion: Also accepting cm integer strings 2015-05-12 12:19:43 +08:00
David Monllao 88d127d37c Merge branch 'MDL-34102' of git://github.com/jmvedrine/moodle 2015-05-12 12:08:30 +08:00
David Monllao 6491a90be0 Merge branch 'MDL-50184' of git://github.com/stronk7/moodle 2015-05-12 10:57:00 +08:00
Eloy Lafuente (stronk7) b758ab3053 MDL-50183 upgrade: add 2.9.0 separation line to all upgrade scripts 2015-05-12 00:21:05 +02:00
Tim Hunt a29922c7b1 MDL-50198 quiz: password should be non-advanced by default
So the Extra restrictions form section is not empty by default.
2015-05-11 16:19:30 +01:00
Tim Hunt ca79762ac4 MDL-50197 quiz editing: fix dialogue titles at the end of the quiz 2015-05-11 16:19:08 +01:00
David Monllao 709314447b MDL-50092 enrol_imsenterprise: Fixing wrong field name
Thanks to JD for the fix.
2015-05-11 14:55:02 +08:00
Tim Hunt 56f6628e9c MDL-47494 ddimageortext: Bump version for 1.8 release. 2015-05-11 07:38:24 +01:00
David Monllao 2261bc153a MDL-50187 docs: Including all x.y releases 2015-05-11 11:05:06 +08:00
Eloy Lafuente (stronk7) 66d46d1534 MDL-50184 backup: Bump release to 3.0 2015-05-11 01:46:50 +02:00
Eloy Lafuente (stronk7) 753d681076 weekly back-to-dev release 3.0dev 2015-05-10 21:39:35 +02:00
Tim Hunt 2a1af96b26 MDL-47494 ddmarker: Fix Behat tests for 2.9. 2015-05-08 16:41:45 +01:00
Tim Hunt 9b74b3b540 MDL-47494 ddimageortext: Fix Behat tests for 2.9. 2015-05-08 16:41:25 +01:00
Tim Hunt bea20e16c9 MDL-47494 ddwtos: Fix Behat tests for 2.9. 2015-05-08 16:40:57 +01:00
Tim Hunt 2bf2e46ce3 MDL-47494 ddimageortext: ddimageortext: statistics failed when drag items were grouped #51569
The error in classify_response caused a fatal error in the quiz
statistics report.

Correctly testing this required some updates to the unit tests to
correctly replicate what happens when a question is attempted.
2015-05-08 12:21:36 +01:00
Ramindu Deshapriya 239419057f MDL-43731 mod_book: Added Behat test to automate MDLQA-1791 2015-05-08 00:19:33 +05:30
Jean-Michel Vedrine 2107531f3c MDL-34102 mod_lesson: display feedback
Feedback for incorrect answer was not diplayed when
Provide option to try a question again was set to Yes.
2015-05-02 15:01:17 +02:00
Michael Aherne 5ea1e1110f MDL-50009 cron: Prevent tasks from leaving uncommitted transactions 2015-04-29 09:39:07 +01:00
Kyle Nguyen c46cb498f6 MDL-49905 post_form: added hour option to timed forum posts 2015-04-28 19:14:22 -07:00
jinhofer 253db9dea7 MDL-49901 course/yui: Changed action for course format 2015-04-16 14:22:17 -05:00
Frederic Massart 725d18f980 MDL-36957 backup: Allow invalid setting level in backup info file 2015-04-09 17:33:52 +08:00
Brian Barnes 32bd11cb39 MDL-49628 general: improved accessibility of single selects 2015-04-09 11:12:16 +12:00
Andrew Davidson 890e164179 MDL-49787 email: Updated email attachement path check to use realpath() in order to allow for symlinked temp directories 2015-04-08 10:05:08 +01:00
Daniel Kosinski fd14eb5c40 MDL-46705 admin: Check if course with same shortname already exists 2015-03-24 19:13:13 +01:00
Tim Hunt 0038534314 MDL-47494 ddmarker: Bump version for 1.8 release. 2015-03-18 13:58:01 +00:00
Tim Hunt 4aee940432 MDL-47494 ddimageortext: Bump version for 1.7 release. 2015-03-18 13:56:54 +00:00
Tim Hunt 88a0478ce4 MDL-47494 gapselect: Bump version for 1.7 release. 2015-03-18 13:56:27 +00:00
Tim Hunt 020b3c2162 MDL-47494 gapselect: Add outestssufficient marker. 2015-03-18 13:56:17 +00:00
Tim Hunt bbdb0d5338 MDL-47494 ddwtos: Bump version for 1.5 release. 2015-03-18 13:55:10 +00:00
Tim Hunt ef39316a3d MDL-47494 ddwtos: Add outestssufficient marker. 2015-03-18 13:53:04 +00:00
Tim Hunt c46f0a8a8b MDL-47494 ddmarker: Add outestssufficient marker. 2015-03-18 13:52:25 +00:00
Tim Hunt 29d9ab6a98 MDL-47494 ddmarker: Fix JavaScript error on the editing form. 2015-03-18 13:51:08 +00:00
Tim Hunt 52b8f798a4 MDL-47494 ddimageortext: Add outestssufficient marker. 2015-03-18 13:28:41 +00:00
Tim Hunt f0c1f12405 MDL-47494 ddimageortext: Merge branch 'projectestac-master' 2015-03-18 13:26:20 +00:00
pau.ferrer-ocana c5091dc01f MDL-47494 ddimageortext: Solve error when showing more than one question in the same page 2015-03-16 10:29:10 +01:00
Andrew Nicols 9b16c1af2c MDL-49293 db: Pass sql_concat_join to sql_concat 2015-03-06 11:56:46 +08:00
Andrew Nicols 29e2563a6d MDL-49293 db: Test sql_concat_join with more conditions 2015-03-06 11:36:31 +08:00
Tim Hunt ac10e87b71 MDL-47494 gapselect: Fix qtype gapselect Behat tests. #33559 2015-02-20 13:51:37 +00:00
Alan Carter dff367ca68 MDL-47494 gapselect: Add test for Moodle XML export to the OU qtype Behat tests #14897 2015-02-20 13:51:37 +00:00
M Kassaei 3cb75b2b15 MDL-47494 gapselect: Replace "Choose... " with non-breaking space when appropriate, #14429 2015-02-20 13:51:30 +00:00
Tim Hunt ad0e615ea7 MDL-47494 ddwtos: Fix dd qtype Behat tests to not use the generic type step. #14895 2015-02-20 13:47:10 +00:00
Tim Hunt d804067d09 MDL-47494 ddimageortext: Fix dd qtype Behat tests to not use the generic type step. #14895 2015-02-20 13:46:54 +00:00
Tim Hunt e885360f7d MDL-47494 ddmarker: Fix dd qtype Behat tests to not use the generic type step. #14895 2015-02-20 13:46:34 +00:00
Tim Hunt ceae322f63 MDL-47494 ddmarker: Markers qtype, don't allow repeated coordinates. #18476 2015-02-20 13:46:21 +00:00
Tim Hunt ee859c3fc6 MDL-47494 ddwtos: Update dd qtype tests to use js_pending not fixed waits #14895 2015-02-13 19:00:47 +00:00
Tim Hunt 4f168c8d2f MDL-47494 ddmarker: Update dd qtype tests to use js_pending not fixed waits #14895 2015-02-13 18:59:57 +00:00
Tim Hunt 682bf667ea MDL-47494 ddimageortext: Update dd qtype tests to use js_pending not fixed waits #14895 2015-02-13 18:59:19 +00:00
M Kassaei 24c6f2fc8c MDL-47494 ddmarker: Convert the JavaScript to use Shifter. #13314 2015-02-13 17:46:07 +00:00
M Kassaei 3936325002 MDL-47494 ddwtos: Convert the JavaScript to use Shifter. #13314 2015-02-13 17:45:55 +00:00
M Kassaei cf5977991c MDL-47494 ddimageortext: Convert the JavaScript to use Shifter. #13314 2015-02-13 17:44:58 +00:00
Tim Hunt a366c8b950 MDL-47494 ddmarker: Improve the drag-drop question Behat tests.
* Added tests for previewing the question, to make sure it works when
attempted.
* Added Moodle XML export tests.
* Reorganised the tests to follow the 'Test one thing per scenario' best
practice.

This commit requires MDL-49154 to work.
2015-02-13 17:41:21 +00:00
Tim Hunt 42865c8448 MDL-47494 ddimageortext: Improve the drag-drop question Behat tests.
* Added tests for previewing the question, to make sure it works when
attempted.
* Added Moodle XML export tests.
* Reorganised the tests to follow the 'Test one thing per scenario' best
practice.

This commit requires MDL-49154 to work.
2015-02-13 17:38:38 +00:00
Tim Hunt e200e47fe6 MDL-47494 ddwtos: Improve the drag-drop question Behat tests.
* Added tests for previewing the question, to make sure it works when
attempted.
* Added Moodle XML export tests.
* Reorganised the tests to follow the 'Test one thing per scenario' best
practice.

This commit requires MDL-49154 to work.
2015-02-13 17:34:07 +00:00
Tim Hunt 2cb2d3b6b4 MDL-47494 ddmarker: Remove no longer necessary Chrome hack. #12732
This was causing weird scroll behaviour all of a sudden.
2015-01-22 17:21:47 +00:00
Tim Hunt 145f46ed28 MDL-47494 ddimageortext: DD markers / onto image: form, drag items before drop zones. #12656
That is a more logical order, and now that sections of the form are
collapsible, it is not necessary to put the drop zones right beside
the preview.
2014-12-02 18:02:48 +00:00
Tim Hunt 0419c32d79 MDL-47494 ddmarker: A few more coding style things. 2014-12-02 17:59:10 +00:00
Tim Hunt 4dc37d690e MDL-47494 gapselect: A few more coding style things. 2014-12-02 17:58:46 +00:00
Tim Hunt a9c32a6fea MDL-47494 ddwtos: Fix lots of coding style issues. 2014-11-28 18:43:19 +00:00
Tim Hunt 647d937394 MDL-47494 gapselect: Fix lots of coding style issues. 2014-11-28 18:42:39 +00:00
Tim Hunt 51c3521aa5 MDL-47494 ddimageortext: Fix lots of coding style issues. 2014-11-28 18:42:04 +00:00
Tim Hunt f8bb5fdc2e MDL-47494 ddmarker: Fix lots of coding style issues. 2014-11-28 18:41:27 +00:00
Tim Hunt 9398fc3478 MDL-47494 ddmarker: Bump the version number for the 1.7 release. 2014-11-12 16:04:13 +00:00
Tim Hunt 8ba17a5823 MDL-47494 ddwtos: Bump version for the 1.4 release. 2014-11-12 16:01:41 +00:00
Tim Hunt aea4a6b6fa MDL-47494 ddimageortext: Bump the version number for the 1.6 release. 2014-11-12 16:00:45 +00:00
Tim Hunt 7b23157ba4 MDL-47494 gapselect: Bump the version number for the 1.6 release. 2014-11-12 15:59:58 +00:00
M Kassaei 5d2bc33f87 MDL-47494 ddmarker: Added behat feature files, #12176 2014-11-03 14:40:32 +00:00
Tim Hunt edd945b392 MDL-47494 ddmarker: New crosshairs for ddmarker. #11243 2014-11-03 14:40:03 +00:00
M Kassaei 7e4b796bed MDL-47494 ddmarker: dd markers questions can display markers in more than one line, #11243 2014-11-03 14:39:14 +00:00
M Kassaei 3b5048294f MDL-47494 ddimageortext: Adding a behat feature to ddimageotext qtype, #12175 2014-11-03 14:37:38 +00:00
M Kassaei 7988db9ddb MDL-47494 ddwtos: Adding a behat feature to ddwtos qtype, #12010 2014-11-03 14:36:40 +00:00
M Kassaei 45dba0d0e7 MDL-47494 gapselect: qtype_gapselect: Adding behat feature and testing, #12009 2014-11-03 14:35:00 +00:00
Tim Hunt e6d087539b MDL-47494 ddmarker: Update version number for the 1.6 release. 2014-07-03 11:38:29 +01:00
Tim Hunt 2870a500e5 MDL-47494 ddmarker: DD markers, add help for the drop zones. #11029 2014-07-03 11:37:27 +01:00
Tim Hunt de3309a087 MDL-47494 ddmarker: Fix ddmarker keyboard support. #10714 2014-07-03 11:37:08 +01:00
Tim Hunt dacc427271 MDL-47494 ddimageortext: Update version.php for the 1.5 release. 2014-04-28 20:23:01 +01:00
Tim Hunt 499e5dc0c5 MDL-47494 ddimageortext: Merge pull request #25 from jamiepratt/MDL-45111-master
MDL-45111 quiz responses report : fatal error when counting responses
2014-04-28 20:21:16 +01:00
Tim Hunt 7c303593db MDL-47494 ddmarker: Update version.php for the 1.5 release. 2014-04-28 19:54:05 +01:00
James Pratt 13ee9a2639 MDL-47494 ddimageortext: MDL-45111 quiz responses report : fatal error when counting responses
not all possible responses where returned by question type method.
2014-04-18 19:40:50 +07:00
Charles Fulton f09afcdd28 MDL-41598 auth_shibboleth: don't override wantsurl 2014-02-14 10:51:17 -08:00
Tim Hunt 3c3633b3c6 MDL-47494 ddmarker: Fix use of deprecated accesslib functions. 2014-01-31 16:17:04 +00:00
Tim Hunt 9d26e5b4ec MDL-47494 ddmarker: Export of ddmarker did got noofdrags wrong. #9523 2014-01-20 17:27:09 +00:00
Tim Hunt 5bec9816a1 MDL-47494 ddmarker: Update version number for the 1.4 release. 2014-01-08 13:20:32 +00:00
Tim Hunt 864d36c939 MDL-47494 ddimageortext: Update version number for the 1.4 release. 2014-01-08 13:08:26 +00:00
Tim Hunt 2095ea2c13 MDL-47494 gapselect: Update version number for the 1.5 release. 2014-01-08 12:56:58 +00:00
Tim Hunt d15e37dde6 MDL-47494 ddmarker: Incorrect types causing tags to be stripped. #9127 2014-01-08 11:48:25 +00:00
Colin Chambers 0cdce4d520 MDL-47494 ddmarker: Fix weird drag-drop marker behaviour in IE10. #7936
Moving the markers with the keyboard was not working. The markers would
move in weird directions!
2014-01-08 11:47:51 +00:00
Tim Hunt e7a04b0423 MDL-47494 ddimageortext: Incorrect types causing tags to be stripped. #9127 2014-01-08 11:45:33 +00:00
Tim Hunt db50ffecf5 MDL-47494 ddmarker: Merge pull request #23 from merrill-oakland/master
Fixing CSS border-colour should be border-color.
2013-09-17 09:50:24 -07:00
Eric Merrill a5dc533b0f MDL-47494 ddmarker: Fixing CSS border-colour should be border-color. 2013-09-17 11:06:32 -04:00
Tim Hunt 984efa0c94 MDL-47494 ddimageortext: Merge pull request #20 from jamiepratt/wip_CONTRIB-4557
CONTRIB-4557 make sure bg image is not re-sized
2013-08-20 04:09:12 -07:00
Tim Hunt b4db7c2f7b MDL-47494 ddmarker: Merge pull request #22 from jamiepratt/wip_CONTRIB-4557
CONTRIB-4557 make sure bg image is not re-sized
2013-08-20 04:08:54 -07:00
Jamie Pratt ff8fee7f82 MDL-47494 ddimageortext: CONTRIB-4557 make sure bg image is not re-sized
by bootstrap based themes.
2013-08-20 11:38:42 +07:00
Jamie Pratt 55478278df MDL-47494 ddmarker: CONTRIB-4557 make sure bg image is not re-sized
by bootstrap based themes.
2013-08-20 11:38:42 +07:00
Tim Hunt eff03a8be7 MDL-47494 ddmarker: Fix incorrect PARAM_TEXT. 2013-08-07 19:37:48 +01:00
Tim Hunt 874104d5af MDL-47494 ddimageortext: Fix incorrect PARAM_TEXT. 2013-08-07 19:37:32 +01:00
Tim Hunt 09ab016651 MDL-47494 gapselect: Fix incorrect PARAM_TEXT. 2013-08-07 19:36:45 +01:00
Tim Hunt 18be442ce3 MDL-47494 ddmarker: Fix use of deprecated context functions.
Also, improve import to use new qformat_xml method.
2013-08-02 14:30:14 +01:00
Tim Hunt 86687aadb6 MDL-47494 ddimageortext: Fix use of deprecated context functions.
Also, improve import to use new qformat_xml method.
2013-08-02 14:28:56 +01:00
Tim Hunt 8434f64a48 MDL-47494 ddmarker: Update version and readme for the 1.3 release. 2013-07-01 15:42:04 +01:00
Tim Hunt cdf20995e9 MDL-47494 ddimageortext: Update version and readme for the 1.3 release. 2013-07-01 15:38:58 +01:00
Tim Hunt eb663e429f MDL-47494 ddwtos: Update version and readme for the 1.3 release. 2013-07-01 15:27:24 +01:00
Tim Hunt fd1a28351c MDL-47494 gapselect: Update version and readme for the 1.4 release. 2013-07-01 15:23:27 +01:00
Tim Hunt 9e2e37970e MDL-47494 ddmarker: Fix broken unit tests. 2013-07-01 15:16:38 +01:00
Tim Hunt 1a3cd05df7 MDL-47494 ddwtos: Fix broken unit tests. 2013-07-01 15:15:52 +01:00
Tim Hunt 08243fa88f MDL-47494 gapselect: Fix broken unit tests. 2013-07-01 15:15:30 +01:00
Tim Hunt 6bcdbcf6b7 MDL-47494 gapselect: Merge pull request #12 from colchambers/wip6609.1
expand choices by default
2013-07-01 03:50:52 -07:00
Colin Chambers 4c489e0e44 MDL-47494 gapselect: expand choices by default 2013-06-27 15:10:38 +01:00
Tim Hunt 6ffa80e528 MDL-47494 ddmarker: Merge pull request #21 from colchambers/wip6859.1
merge multiple tries and hints. Group hints visually
2013-06-06 07:56:03 -07:00
Tim Hunt bcf13bf0f6 MDL-47494 ddmarker: Merge pull request #20 from jamiepratt/wipnoofdrags
allow for 2,3,4,5,6 drags not just 1 or infinite
2013-06-06 07:55:52 -07:00
Colin Chambers 80f0299310 MDL-47494 ddmarker: merge multiple tries and hints. Group hints visually 2013-06-06 15:47:35 +01:00
Jamie Pratt ad1b0ae9c7 MDL-47494 ddmarker: change index of form element we refer to
changes in form base class broke the code to
refer to the marker label input field.
2013-05-31 17:39:19 +07:00
Jamie Pratt e1f5f60197 MDL-47494 ddmarker: allow for 2,3,4,5,6 drags not just 1 or infinite 2013-05-31 15:18:32 +07:00
Tim Hunt 09e43f0a68 MDL-47494 ddimageortext: Fix failing unit tests. 2013-05-22 14:05:26 +01:00
Tim Hunt e9a2711b85 MDL-47494 ddimageortext: Final form improvement tweaks. #6614 2013-05-22 14:02:38 +01:00
Tim Hunt 7baa445fbe MDL-47494 ddmarker: Minor coding style clean-up. #6859 2013-05-22 14:01:13 +01:00
Colin Chambers 4139151f75 MDL-47494 ddimageortext: Update OU Qtype ddimageortext for simplified forms #6614 2013-05-22 12:41:33 +01:00
Colin Chambers 26492f707c MDL-47494 ddmarker: Update OU Qtype ddmarker for simplified forms #6859 2013-05-21 14:49:07 +01:00
Tim Hunt aa877b5b49 MDL-47494 gapselect: Merge pull request #11 from colchambers/wip6846
Qtype gapselect showing Did you remember to call setType() errors on edi...
2013-05-17 07:08:15 -07:00
Colin Chambers 35e3fc1018 MDL-47494 gapselect: Qtype gapselect showing Did you remember to call setType() errors on editing form #6846 2013-05-17 14:57:04 +01:00
Tim Hunt 150f70266e MDL-47494 gapselect: Merge pull request #10 from jamiepratt/wip_move_combinable_dirs
Wip move combinable dirs
2013-05-15 05:16:58 -07:00
Jamie Pratt 05091b6de3 MDL-47494 gapselect: moved lang strings for combinable sub questions to
their question type directories
2013-05-14 19:48:15 +07:00
Jamie Pratt 458700d833 MDL-47494 gapselect: fixing @package and removing @subpackage 2013-05-14 19:34:17 +07:00
Jamie Pratt 220982f898 MDL-47494 gapselect: move combinable hooks out of combined qtype plug in
and into their respective question type plug ins.
2013-05-14 18:41:05 +07:00
Tim Hunt 7ab3615a00 MDL-47494 gapselect: Bump version number for the 2.5-compatible release. 2013-04-29 16:41:08 +01:00
Colin Chambers 1f2cae4c0e MDL-47494 gapselect: Update OU Qtype gapselect for simplified forms #6609 2013-04-29 16:29:27 +01:00
Tim Hunt e2245b62d4 MDL-47494 ddmarker: Bump version number. 2013-03-14 15:49:33 +00:00
Tim Hunt 5263d6d7b3 MDL-47494 ddmarker: Fix codecheker and jshint warnings. 2013-03-14 15:49:22 +00:00
Tim Hunt 54b8dddafd MDL-47494 ddmarker: Shape validation should be more whitespace-tolerant.
Also clean up the unit-test code.
2013-03-14 15:47:49 +00:00
Tim Hunt 7b95ca37bf MDL-47494 ddmarker: Move translations to AMOS. 2013-03-14 15:47:30 +00:00
Tim Hunt a214a28fd1 MDL-47494 ddimageortext: Bump version number. 2013-03-14 14:23:07 +00:00
Tim Hunt 81c87fa76d MDL-47494 ddimageortext: Fix codechecker and jshint issues. 2013-03-14 14:22:59 +00:00
Tim Hunt 8312572b8b MDL-47494 ddimageortext: Move lang strings to AMOS. 2013-03-14 14:22:04 +00:00
Tim Hunt 66d2356bd3 MDL-47494 ddimageortext: Clean up comments in unit tests. 2013-03-14 14:21:45 +00:00
Tim Hunt 46573340db MDL-47494 ddwtos: Bump version number. 2013-03-14 12:22:26 +00:00
Tim Hunt a5290cd828 MDL-47494 ddwtos: Fixup codechecker and jshint issues. 2013-03-14 12:21:02 +00:00
Tim Hunt 025589c7e1 MDL-47494 ddwtos: Ensure all tests are in group qtype_ddwtos. 2013-03-14 12:20:26 +00:00
Tim Hunt d65b9ec77f MDL-47494 ddwtos: Move translations to AMOS. 2013-03-14 12:19:54 +00:00
Tim Hunt 27fb64d890 MDL-47494 gapselect: Bump version number. 2013-03-14 11:47:20 +00:00
Tim Hunt bbe27b2d30 MDL-47494 gapselect: Ensure all unit tests are in a qtype_gapselect group. 2013-03-14 11:46:50 +00:00
Tim Hunt 8d6fb0c66a MDL-47494 gapselect: Fix codechecker issues.
Also remove old translations that are now in AMOS, and add some unit
tests.
2013-03-13 18:33:53 +00:00
Tim Hunt 4ff00ebb02 MDL-47494 ddimageortext: Merge pull request #17 from colchambers/MDL-37463
MDL-37463 Question: Drag drop image form lang capitalisation
2013-01-30 03:35:29 -08:00
Colin Chambers 784c54ea36 MDL-47494 ddimageortext: MDL-37463 Question: Drag drop image form lang capitalisation 2013-01-30 11:32:13 +00:00
Tim Hunt feab78b6a6 MDL-47494 ddimageortext: Merge pull request #16 from colchambers/MDL-37759
MDL-37759 Question: Drag Drop Images group add more link
2013-01-29 08:13:57 -08:00
Colin Chambers 0cf0f86041 MDL-47494 ddimageortext: MDL-37759 Question: Drag Drop Images group add more link 2013-01-29 15:45:58 +00:00
Tim Hunt 61ba43b0b3 MDL-47494 gapselect: Fix incorrect preg_quote usage. 2013-01-15 14:52:01 +00:00
Tim Hunt d5515e1df3 MDL-47494 ddwtos: Fix incorrect preg_quote usage. 2013-01-15 14:49:52 +00:00
Tim Hunt c0d7468e42 MDL-47494 ddmarker: Fix incorrect preg_quote usage. 2013-01-15 14:48:47 +00:00
Tim Hunt 7a6539401f MDL-47494 ddimageortext: Fix incorrect preg_quote without delimiter. 2013-01-15 14:47:36 +00:00
Tim Hunt 463f4b4c6a MDL-47494 ddimageortext: Merge branch 'MOODLE_22_STABLE' 2012-09-28 18:13:43 +01:00
Tim Hunt 7e6b0bc1f1 MDL-47494 ddimageortext: Merge branch 'MOODLE_21_STABLE' into MOODLE_22_STABLE 2012-09-28 18:13:28 +01:00
Tim Hunt ae64c68608 MDL-47494 ddimageortext: Form validation should ensure coordinates are ints. 2012-09-28 18:13:10 +01:00
Tim Hunt 8aaa057e3a MDL-47494 gapselect: Merge pull request #9 from ndunand/master
Added French translation.
2012-08-30 05:48:35 -07:00
Nicolas Dunand f1b241bcbf MDL-47494 gapselect: Added French translation 2012-08-30 14:47:37 +02:00
Tim Hunt 664a362d0c MDL-47494 ddwtos: Merge pull request #10 from ndunand/master
Added French translation.
2012-08-30 05:43:55 -07:00
Nicolas Dunand 227b7cb8cd MDL-47494 ddwtos: Added French translation 2012-08-30 14:42:52 +02:00
Tim Hunt 323869e159 MDL-47494 ddmarker: Merge pull request #18 from ndunand/master
Added French translation.
2012-08-30 05:40:11 -07:00
Nicolas Dunand 5d841ae48b MDL-47494 ddmarker: Added French translation 2012-08-30 14:38:55 +02:00
Tim Hunt 94c4876d65 MDL-47494 ddimageortext: Merge pull request #14 from ndunand/master
Added French translation.
2012-08-30 05:36:11 -07:00
Nicolas Dunand ad8234a323 MDL-47494 ddimageortext: Added French translation 2012-08-30 14:34:05 +02:00
Tim Hunt c3bb638a53 MDL-47494 gapselect: Merge branch 'MOODLE_22_STABLE' 2012-08-20 14:41:25 +01:00
Tim Hunt 2c627d24c4 MDL-47494 gapselect: New icon by Paul Hillery. 2012-08-20 14:41:25 +01:00
Tim Hunt 480efcf7c7 MDL-47494 ddmarker: Merge branch 'MOODLE_22_STABLE' 2012-08-20 14:39:54 +01:00
Tim Hunt 8abe8b670c MDL-47494 ddmarker: New icon by Paul Hillery. 2012-08-20 14:39:53 +01:00
Tim Hunt 599cad2bb2 MDL-47494 ddimageortext: Merge branch 'MOODLE_22_STABLE' 2012-08-20 14:39:07 +01:00
Tim Hunt 07ef9448bf MDL-47494 ddimageortext: New icon by Paul Hillery. 2012-08-20 14:38:44 +01:00
Tim Hunt 270a93ecfc MDL-47494 ddwtos: Merge branch 'MOODLE_22_STABLE' 2012-08-20 14:35:06 +01:00
Tim Hunt 7169a77abd MDL-47494 ddwtos: New icon by Paul Hillery. 2012-08-20 14:34:02 +01:00
Tim Hunt 77178d2d97 MDL-47494 ddwtos: Remove enums from install.xml 2012-08-20 10:54:33 +01:00
Tim Hunt 51ffcb950a MDL-47494 ddmarker: Update release information. 2012-08-16 16:41:59 +02:00
Tim Hunt 4553903ca0 MDL-47494 ddmarker: Update release information. 2012-08-16 16:41:15 +02:00
Tim Hunt 1f8e5648fb MDL-47494 ddimageortext: Fix required version. 2012-08-16 16:38:16 +02:00
Tim Hunt 95fe59ff62 MDL-47494 ddimageortext: Update release information. 2012-08-16 16:32:36 +02:00
Tim Hunt 39a6b826d2 MDL-47494 ddimageortext: Update release information. 2012-08-16 16:31:46 +02:00
Tim Hunt cd7cce9593 MDL-47494 ddwtos: Update release information. 2012-08-16 12:24:01 +02:00
Tim Hunt 5cd80c75c5 MDL-47494 ddwtos: Update release information. 2012-08-16 12:22:45 +02:00
Tim Hunt 90b4b3fef1 MDL-47494 gapselect: Update release information. 2012-08-16 11:59:32 +02:00
Tim Hunt 457af23a50 MDL-47494 gapselect: Update release information. 2012-08-16 11:58:38 +02:00
Tim Hunt 34632b52d6 MDL-47494 ddmarker: Merge pull request #17 from jamiepratt/wip_js_fix
Wip js fix
2012-08-08 04:14:33 -07:00
Tim Hunt 6cbe5bb3b2 MDL-47494 ddmarker: Merge pull request #16 from jamiepratt/wip_js_fix_22
Wip js fix 22
2012-08-08 04:14:22 -07:00
Jamie Pratt 701baddf73 MDL-47494 ddmarker: Merge branch 'wip_js_fix_22' into wip_js_fix 2012-08-08 16:06:25 +07:00
Jamie Pratt d99d47fdca MDL-47494 ddmarker: Merge branch 'wip_js_fix_21' into wip_js_fix_22 2012-08-08 16:05:10 +07:00
Jamie Pratt b2500c880b MDL-47494 ddmarker: NOBUG fixing redundant empty divs every 2 secs 2012-08-08 16:01:33 +07:00
Tim Hunt 5355d9557b MDL-47494 ddimageortext: Merge branch 'MOODLE_22_STABLE' 2012-08-07 17:39:16 +01:00
Tim Hunt 148c37f7d7 MDL-47494 ddimageortext: Merge branch 'MOODLE_21_STABLE' into MOODLE_22_STABLE 2012-08-07 17:37:30 +01:00
Tim Hunt 727d8c94ab MDL-47494 ddimageortext: Russian translation, thanks to Sergey Zolotykhin. 2012-08-07 17:32:21 +01:00
Tim Hunt 2da2c6d949 MDL-47494 ddmarker: Merge branch 'MOODLE_22_STABLE' 2012-08-06 16:06:31 +01:00
Tim Hunt 5fb9aa82c7 MDL-47494 ddmarker: Merge branch 'MOODLE_21_STABLE' into MOODLE_22_STABLE 2012-08-06 16:05:35 +01:00
Tim Hunt 1e83b54f66 MDL-47494 ddmarker: Fix shuffle drag items + show misplaced bug. #4274 2012-08-06 16:04:16 +01:00
Tim Hunt 13fb133365 MDL-47494 ddmarker: Merge pull request #14 from jamiepratt/wip_ou-4201_php_strict_notices
OU-4201 fixing php strict notices
2012-07-30 03:27:39 -07:00
Tim Hunt bc1937e8cb MDL-47494 ddimageortext: Merge pull request #13 from jamiepratt/wip_highlight
NOBUG Hilight drop target, and use YUI dd groups.
2012-07-30 03:26:48 -07:00
Jamie Pratt 15c668b0d6 MDL-47494 ddimageortext: NOBUG Hilight drop target, and use YUI dd groups. 2012-07-30 13:09:21 +07:00
Jamie Pratt 326d8f8d3f MDL-47494 ddmarker: OU-4201 fixing php strict notices 2012-07-29 13:00:54 +07:00
Tim Hunt 3045d510d7 MDL-47494 ddwtos: Hilight drop target, and use YUI dd groups. 2012-07-27 16:15:59 +01:00
Tim Hunt 1577cd61c8 MDL-47494 ddwtos: Merge pull request #9 from jamiepratt/wip_ou-4202_version_fixes
OU-4202 fix version no to require Moodle 2.3
2012-07-27 06:01:23 -07:00
Tim Hunt bc338a5b27 MDL-47494 ddwtos: Merge pull request #8 from jamiepratt/wip_ou-4200_ddfix
OU-4200 Fix for broken drag and drop with YUI 3.5.1
2012-07-27 05:58:58 -07:00
Tim Hunt f4a48bfc0b MDL-47494 gapselect: Merge pull request #7 from jamiepratt/wip_ou-4202_version_fixes
OU-4202 fix version no to require Moodle 2.3
2012-07-27 05:58:31 -07:00
Tim Hunt 09c8445abf MDL-47494 ddimageortext: Merge pull request #11 from jamiepratt/wip_ou-4193_ddfix
OU-4193 Fix for broken drag and drop with YUI 3.5.1
2012-07-27 05:57:32 -07:00
Tim Hunt c5c1a3d694 MDL-47494 ddimageortext: Merge pull request #12 from jamiepratt/wip_ou-4202_version_fix
OU-4202 fix version no to require Moodle 2.3
2012-07-27 05:57:05 -07:00
Tim Hunt 1fd56de47f MDL-47494 ddmarker: Merge pull request #13 from jamiepratt/wip_ou-4202_version_fixes
OU-4202 fix version no to require Moodle 2.3
2012-07-27 05:56:49 -07:00
Jamie Pratt c9af2d68c3 MDL-47494 ddwtos: OU-4202 fix version no to require Moodle 2.3 2012-07-27 14:23:49 +07:00
Jamie Pratt dbca110a81 MDL-47494 gapselect: OU-4202 fix version no to require Moodle 2.3 2012-07-27 14:23:49 +07:00
Jamie Pratt 3d0b5fc7c0 MDL-47494 ddmarker: OU-4202 fix version no to require Moodle 2.3 2012-07-27 14:23:49 +07:00
Jamie Pratt 4e4b48a478 MDL-47494 ddimageortext: OU-4202 fix version no to require Moodle 2.3 2012-07-27 13:38:51 +07:00
Jamie Pratt 34826a67c3 MDL-47494 ddwtos: OU-4200 Fix for broken drag and drop with YUI 3.5.1 2012-07-27 12:54:50 +07:00
Jamie Pratt 93905b6881 MDL-47494 ddimageortext: OU-4193 Fix for broken drag and drop with YUI 3.5.1 2012-07-27 12:54:21 +07:00
Tim Hunt 9cc064abf8 MDL-47494 gapselect: Merge remote-tracking branch 'ou/MOODLE_21_STABLE' into MOODLE_22_STABLE 2012-06-21 10:24:40 +01:00
Tim Hunt 78393112f3 MDL-47494 gapselect: Merge pull request #6 from jamiepratt/wip_lib_php_fixes_2_1
Wip lib php fixes 2 1
2012-06-21 02:24:05 -07:00
Tim Hunt d958b90765 MDL-47494 gapselect: Merge pull request #5 from jamiepratt/wip_lib_fixes
Wip lib fixes
2012-06-21 02:23:51 -07:00
Tim Hunt 857b88d252 MDL-47494 ddwtos: Merge remote-tracking branch 'ou/MOODLE_21_STABLE' into MOODLE_22_STABLE 2012-06-21 10:22:31 +01:00
Tim Hunt 4b7850c8ef MDL-47494 ddwtos: Merge pull request #7 from jamiepratt/wip_lib_php_fixes_2_1
Wip lib php fixes 2 1
2012-06-21 02:21:51 -07:00
Tim Hunt 3f7251bbe9 MDL-47494 ddwtos: Merge pull request #6 from jamiepratt/wip_lib_fixes
Wip lib fixes
2012-06-21 02:21:45 -07:00
Tim Hunt 3de985b747 MDL-47494 ddimageortext: Merge pull request #9 from jamiepratt/wip_lib_php_fixes_2_1
NOBUG fixes for fileaccess through lib.php
2012-06-21 02:19:47 -07:00
Tim Hunt 9a25a40521 MDL-47494 ddimageortext: Merge pull request #10 from jamiepratt/wip_lib_fixes
Wip lib fixes
2012-06-21 02:19:42 -07:00
Jamie Pratt 3505610d11 MDL-47494 gapselect: Merge branch 'wip_lib_php_fixes_2_1' into wip_lib_fixes
Conflicts:
	lib.php
Merge branch 'wip_lib_php_fixes_2_1' into wip_lib_fixes

Conflicts:
	lib.php
2012-06-21 14:22:00 +07:00
Jamie Pratt b0da01d272 MDL-47494 ddwtos: Merge branch 'wip_lib_php_fixes_2_1' into wip_lib_fixes
Conflicts:
	lib.php
Merge branch 'wip_lib_php_fixes_2_1' into wip_lib_fixes

Conflicts:
	lib.php
2012-06-21 14:21:59 +07:00
Jamie Pratt 5901152a05 MDL-47494 gapselect: NOBUG oops. Forgot to change plug in name inside function 2012-06-21 14:17:27 +07:00
Jamie Pratt 0ac7a9be18 MDL-47494 ddwtos: NOBUG oops. Forgot to change plug in name inside function 2012-06-21 14:17:26 +07:00
Jamie Pratt c48797ac26 MDL-47494 gapselect: NOBUG added extra options param for file access 2012-06-21 14:07:42 +07:00
Jamie Pratt 6ab6252f8a MDL-47494 ddwtos: NOBUG added extra options param for file access 2012-06-21 14:07:41 +07:00
Jamie Pratt 940c0c76cb MDL-47494 gapselect: Merge branch 'wip_lib_php_fixes_2_1' into wip_lib_fixes 2012-06-21 13:42:52 +07:00
Jamie Pratt 5de5ae31ee MDL-47494 ddwtos: Merge branch 'wip_lib_php_fixes_2_1' into wip_lib_fixes 2012-06-21 13:42:44 +07:00
Jamie Pratt db344be62c MDL-47494 ddimageortext: Merge branch 'wip_lib_php_fixes_2_1' into wip_lib_fixes 2012-06-21 13:40:01 +07:00
Jamie Pratt 0749cc7c30 MDL-47494 ddimageortext: NOBUG fixes for fileaccess through lib.php
added missing lib.php files and fixed comments
2012-06-21 12:45:11 +07:00
Jamie Pratt 981f50588d MDL-47494 gapselect: NOBUG fixes for fileaccess through lib.php
added missing lib.php files and fixed comments
2012-06-21 12:45:11 +07:00
Jamie Pratt ceb9e80486 MDL-47494 ddwtos: NOBUG fixes for fileaccess through lib.php
added missing lib.php files and fixed comments
2012-06-21 12:45:11 +07:00
Tim Hunt 08b47def1f MDL-47494 ddwtos: Merge pull request #4 from jamiepratt/wip_unittestconversions
NOBUG changed unit tests to use PHPUnit
2012-06-20 04:21:55 -07:00
Tim Hunt 1b9d6bb270 MDL-47494 ddwtos: Merge pull request #3 from chillofoctober/master
Translate qtype ddwtos to russian language
2012-06-20 04:21:40 -07:00
Tim Hunt d33e1b6a78 MDL-47494 gapselect: Merge pull request #4 from jamiepratt/wip_unittestconversions
NOBUG changed unit tests to use PHPUnit
2012-06-20 04:18:33 -07:00
Tim Hunt 77192cf305 MDL-47494 ddmarker: Merge remote-tracking branch 'jp/wip_unittestconversions'
Conflicts:
	tests/question_test.php
	tests/questiontype_test.php
	tests/shapes_test.php
	tests/walkthrough_test.php
2012-06-20 10:54:05 +01:00
Tim Hunt 521f92010e MDL-47494 ddmarker: Merge pull request #9 from jamiepratt/wip_readme_2_1
Wip readme 2 1
2012-06-20 02:47:14 -07:00
Tim Hunt 41db46c6f9 MDL-47494 ddmarker: Merge pull request #7 from jamiepratt/wip_readme
Wip readme
2012-06-20 02:46:47 -07:00
Tim Hunt 75ba4c5576 MDL-47494 ddmarker: Merge pull request #12 from jamiepratt/wip_file_access_2_3
NOBUG change in file access api in 2.3
2012-06-20 02:42:55 -07:00
Tim Hunt f44c7f1998 MDL-47494 ddimageortext: Merge pull request #7 from jamiepratt/wip_file_access_2_3
NOBUG change in file access api in 2.3
2012-06-20 02:40:10 -07:00
Jamie Pratt bd6d6e4a87 MDL-47494 ddmarker: NOBUG change in file access api in 2.3 2012-06-19 20:11:44 +07:00
Jamie Pratt 4c0f4ffe8e MDL-47494 ddimageortext: NOBUG change in file access api in 2.3 2012-06-19 20:11:24 +07:00
Jamie Pratt 0291aa6672 MDL-47494 ddmarker: Merge branch 'wip_readme_2_1' into wip_readme 2012-06-19 19:16:09 +07:00
Jamie Pratt d7423110fd MDL-47494 ddmarker: NOBUG fixing sql for mysql. Thanks to Alain Roussel.
removed usage of 'drop' keyword as table alias
2012-06-19 19:14:08 +07:00
Jamie Pratt b3adccfb61 MDL-47494 gapselect: NOBUG changed unit tests to use PHPUnit 2012-06-19 14:55:21 +07:00
Jamie Pratt 543e4deef1 MDL-47494 ddwtos: NOBUG changed unit tests to use PHPUnit 2012-06-19 14:53:53 +07:00
Jamie Pratt 4c72a49cd7 MDL-47494 ddmarker: NOBUG using phpunit instead of simpletest library 2012-06-19 14:41:31 +07:00
Tim Hunt 3f22d29cce MDL-47494 gapselect: Merge pull request #3 from chillofoctober/master
Translate gapselect to russian language
2012-06-18 08:40:10 -07:00
Tim Hunt 0c859404c9 MDL-47494 ddimageortext: Merge pull request #6 from jamiepratt/wip_unittestconversions
NOBUG changed unit tests to use PHPUnit
2012-06-18 08:34:34 -07:00
Jamie Pratt c7b2d1fbd9 MDL-47494 ddimageortext: NOBUG changed unit tests to use PHPUnit 2012-06-16 16:57:53 +07:00
Eugene Shwab ae486a635a MDL-47494 ddwtos: Translate to russian language 2012-06-14 14:01:17 +04:00
Tim Hunt 8ece5d73a0 MDL-47494 ddmarker: Merge pull request #10 from chillofoctober/master
Translate qtype ddmarker to russian language
2012-06-13 03:48:58 -07:00
Eugene Shwab 8c743d7d8d MDL-47494 ddmarker: Translate to russian language 2012-06-13 14:45:23 +04:00
Tim Hunt 201061d943 MDL-47494 ddimageortext: Merge pull request #3 from jamiepratt/master
NOBUG adding an alt tag to drag and drop background image - master branch
2012-06-08 05:19:55 -07:00
Eugene Shwab 2029b1d80e MDL-47494 gapselect: Translate to russian language 2012-06-08 16:06:38 +04:00
Jamie Pratt 6521797d7b MDL-47494 ddimageortext: Merge branch 'master' of git://github.com/moodleou/moodle-qtype_ddimageortext 2012-05-08 12:42:39 +07:00
Jamie Pratt 6396b9342f MDL-47494 ddmarker: Merge branch 'wip_readme_2_1' into wip_readme 2012-04-10 20:29:06 +07:00
Jamie Pratt aee03a6b74 MDL-47494 ddmarker: NOBUG added instructions to README about converting imagetarget qs
and renamed README.txt to README.md
2012-04-10 20:28:00 +07:00
Jamie Pratt 19f5c30c25 MDL-47494 ddmarker: Merge branch 'wip_imagetargetupgrader_2_1' into wip_imagetargetupgrader 2012-04-08 19:29:10 +07:00
Jamie Pratt ac4abff022 MDL-47494 ddmarker: NOBUG couple of small fixes 2012-04-08 19:28:06 +07:00
Jamie Pratt 4a1582ab7c MDL-47494 ddmarker: Merge branch 'wip_imagetargetupgrader_2_1' into wip_imagetargetupgrader 2012-04-08 18:17:55 +07:00
Jamie Pratt 73f356a4ee MDL-47494 ddmarker: NOBUG converted question conversion code to use a renderer 2012-04-08 18:16:38 +07:00
Jamie Pratt 2578a29ac2 MDL-47494 ddmarker: Merge branch 'wip_imagetargetupgrader_2_1' into wip_imagetargetupgrader 2012-04-07 14:37:29 +07:00
Jamie Pratt b409f1990e MDL-47494 ddmarker: NOBUG fixing and updating tags in phpdoc comments 2012-04-07 14:34:58 +07:00
Jamie Pratt 6a3b599366 MDL-47494 ddmarker: NOBUG added progress bar for question conversion during upgrade 2012-04-07 14:24:25 +07:00
Jamie Pratt 34ec5ad14d MDL-47494 ddmarker: NOBUG made string for label into a constant so it is easy to change 2012-04-07 14:23:18 +07:00
Tim Hunt 344d774ecd MDL-47494 gapselect: Fix PHP strict errors. 2012-04-05 13:42:25 +01:00
Tim Hunt 81d1cac12b MDL-47494 ddimageortext: Fix PHP strict errors. 2012-04-05 13:40:12 +01:00
Tim Hunt 5b8460a374 MDL-47494 ddwtos: Fix PHP strict errors. 2012-04-05 13:35:37 +01:00
Jamie Pratt 86529cb3ab MDL-47494 ddmarker: NOBUG refactoring so that automatic and manual conversion code is shared 2012-04-04 14:42:40 +07:00
Jamie Pratt d544fb24ce MDL-47494 ddmarker: NOBUG added script to do upgrade automatically during 2.1 site upgrade 2012-04-04 12:58:02 +07:00
Jamie Pratt 4b47ad4623 MDL-47494 ddmarker: Merge branch 'wip_imagetargetconverter_2_1' into wip_imagetargetconverter 2012-04-02 18:59:10 +07:00
Jamie Pratt 5153be2b26 MDL-47494 ddmarker: NOBUG not using list progress trace any more as it is has a bug 2012-04-02 17:20:12 +07:00
Jamie Pratt 35c7dea6d2 MDL-47494 ddmarker: NOBUG added script needed for upgrading attempt data from imagetarget qs 2012-04-02 16:33:09 +07:00
Jamie Pratt a79d43fe9c MDL-47494 ddmarker: NOBUG adding a condition to catch if there are no questions to convert 2012-04-01 17:30:42 +07:00
Jamie Pratt 874007d480 MDL-47494 ddmarker: Merge branch 'wip_imagetargetconverter_2_1' into wip_imagetargetconverter
Conflicts:
	imagetargetconverter.php
2012-03-31 18:54:49 +07:00
Jamie Pratt 45766c517a MDL-47494 ddmarker: NOBUG implemented conversion of question itself 2012-03-31 18:47:15 +07:00
Jamie Pratt c3efffdb72 MDL-47494 ddmarker: NOBUG improvement in wording of messages for the user 2012-03-31 18:13:22 +07:00
Jamie Pratt 864e786019 MDL-47494 ddmarker: NOBUG make it possible to select just one question for processing 2012-03-31 14:23:25 +07:00
Jamie Pratt e1bd1cf6e3 MDL-47494 ddmarker: NOBUG loading imagetarget and answers records all before processing 2012-03-31 14:09:31 +07:00
Jamie Pratt f26e975dd5 MDL-47494 ddmarker: NOBUG subclass list and list item classes to add specific processing 2012-03-31 10:52:28 +07:00
Jamie Pratt 44f16ef16d MDL-47494 ddmarker: NOBUG some fixes to php doc comments 2012-03-31 10:25:13 +07:00
Jamie Pratt d4e4c3131d MDL-47494 ddmarker: NOBUG moved list classes to new file 2012-03-31 10:04:15 +07:00
Jamie Pratt d0c2245757 MDL-47494 ddmarker: NOBUG adding method to process questions. 2012-03-31 09:46:23 +07:00
Tim Hunt 995d770e66 MDL-47494 gapselect: Files in hints were not moved or deleted properly for OU qtypes. #3478 2012-03-30 10:32:13 +01:00
Tim Hunt 5110ed6134 MDL-47494 ddmarker: Files in hints were not moved or deleted properly for OU qtypes. #3478 2012-03-30 10:30:52 +01:00
Tim Hunt daac3bb85e MDL-47494 ddimageortext: Files in hints were not moved or deleted properly for OU qtypes. #3478 2012-03-30 10:29:30 +01:00
Jamie Pratt 9437265e8b MDL-47494 ddmarker: NOBUG restructuring if conditions to interpret page params 2012-03-29 16:31:43 +07:00
Jamie Pratt 2de9e082ee MDL-47494 ddmarker: NOBUG fixing error in sql to fetch relevant questions 2012-03-29 15:29:06 +07:00
Jamie Pratt b30cfa2c4f MDL-47494 ddmarker: Merge branch 'wip_imagetargetconverter_2_1' into wip_imagetargetconverter 2012-03-29 14:07:44 +07:00
Jamie Pratt af9d63a8dc MDL-47494 ddmarker: NOBUG list questions in categories in category / context selection UI 2012-03-29 14:05:57 +07:00
Jamie Pratt a83fc46784 MDL-47494 ddmarker: NOBUG fixing white space issue 2012-03-27 18:22:49 +07:00
Jamie Pratt a922c16cb7 MDL-47494 ddmarker: Merge branch 'wip_imagetargetconverter_2_1' into wip_imagetargetconverter 2012-03-27 18:22:09 +07:00
Jamie Pratt e1e835e727 MDL-47494 ddmarker: NOBUG fixing coding style deviations found by code checker. 2012-03-27 18:20:14 +07:00
Jamie Pratt 466faa083a MDL-47494 ddmarker: Merge branch 'wip_imagetargetconverter_2_1' into wip_imagetargetconverter 2012-03-27 17:35:35 +07:00
Jamie Pratt 2379439f63 MDL-47494 ddmarker: NOBUG change API calls that only work post 2.1
This need to be merged into master branch because we want to keep the
2.1 branch mergeable but then we will merge with 'ours' strategy,
effectively discarding changes.
2012-03-27 17:32:51 +07:00
Jamie Pratt 49d7891f60 MDL-47494 ddmarker: Merge branch 'wip_imagetargetconverter_2_1' into wip_imagetargetconverter 2012-03-22 09:53:48 +07:00
Jamie Pratt 5e37b1f0f7 MDL-47494 ddmarker: NOBUG further work on adminpage 2012-03-22 09:52:56 +07:00
Jamie Pratt f22414b1e5 MDL-47494 ddmarker: Merge branch 'wip_imagetargetconverter_2_1' into wip_imagetargetconverter 2012-02-28 13:07:45 +07:00
Jamie Pratt 6bdb7323ae MDL-47494 ddmarker: NOBUG admin page that lists contexts and categories
and the number of questions contained in them.
2012-02-28 13:05:45 +07:00
Tim Hunt 876b295595 MDL-47494 gapselect: Fix incorrect foreign key declaration. 2012-02-21 22:56:51 +00:00
Tim Hunt aad328b21d MDL-47494 ddmarker: Merge branch 'MOODLE_21_STABLE' 2012-02-10 16:25:40 +00:00
Tim Hunt 03337d8bab MDL-47494 ddmarker: Add extra pluginname string to appease the plugins DB 2012-02-10 16:25:23 +00:00
Tim Hunt d8555d4a9f MDL-47494 ddmarker: Merge branch 'MOODLE_21_STABLE'
Conflicts:
	version.php
2012-02-10 16:22:23 +00:00
Tim Hunt 141233ed2c MDL-47494 ddmarker: Merge remote-tracking branch 'jp/master' 2012-02-10 16:20:27 +00:00
Tim Hunt 2a71bf53d2 MDL-47494 ddmarker: Clean up version.php and comments. 2012-02-10 16:20:14 +00:00
Tim Hunt 0a32d51a33 MDL-47494 ddmarker: Merge remote-tracking branch 'jp/MOODLE_21_STABLE' into MOODLE_21_STABLE 2012-02-10 16:13:00 +00:00
Tim Hunt eeb58297a6 MDL-47494 ddimageortext: Merge branch 'MOODLE_21_STABLE'
Conflicts:
	README.txt
	lang/en/qtype_ddimageortext.php
	version.php
2012-02-10 16:00:47 +00:00
Tim Hunt c109c9012e MDL-47494 ddimageortext: Fix version.php, and wrong qtype name in comments. 2012-02-10 15:52:42 +00:00
Tim Hunt fee4224fcc MDL-47494 ddimageortext: Merge remote-tracking branch 'jp/MOODLE_21_STABLE' into MOODLE_21_STABLE 2012-02-10 15:45:07 +00:00
Tim Hunt 90e64ecb4e MDL-47494 ddwtos: Merge branch 'MOODLE_21_STABLE'
Conflicts:
	lang/en/qtype_ddwtos.php
	version.php
2012-02-10 15:14:51 +00:00
Tim Hunt 12d0d76b90 MDL-47494 ddwtos: Update version.php 2012-02-10 15:13:02 +00:00
Tim Hunt 61809dfaaa MDL-47494 gapselect: Merge branch 'MOODLE_21_STABLE'
Conflicts:
	lang/en/qtype_gapselect.php
2012-02-10 14:46:42 +00:00
Tim Hunt be806cc405 MDL-47494 gapselect: Merge remote-tracking branch 'jp/master'
Conflicts:
	lang/en/qtype_gapselect.php
2012-02-10 14:45:04 +00:00
Tim Hunt 11f623878d MDL-47494 gapselect: Update version.php and readme. 2012-02-10 14:42:32 +00:00
Tim Hunt 89ad73e6b1 MDL-47494 gapselect: Update language strings to work with Moodle 2.2. 2012-02-06 07:58:50 +01:00
Jamie Pratt 81b0d1a70f MDL-47494 ddimageortext: NOBUG adding an alt tag to drag and drop background image 2012-02-05 19:04:53 +07:00
Jamie Pratt 5f924369ce MDL-47494 ddimageortext: NOBUG adding an alt tag to drag and drop background image 2012-02-05 19:03:11 +07:00
Jamie Pratt 415893bb24 MDL-47494 ddmarker: Merge branch 'MOODLE_21_STABLE' 2012-02-05 18:44:23 +07:00
Jamie Pratt 612607d66c MDL-47494 ddmarker: NOBUG adding an alt tag to drag and drop background image 2012-02-05 18:43:31 +07:00
Tim Hunt 063ce1658b MDL-47494 ddmarker: Merge pull request #1 from jamiepratt/master
changed repo url in readme
2012-02-04 23:31:36 -08:00
Tim Hunt 218d0acb98 MDL-47494 ddmarker: Merge pull request #2 from jamiepratt/MOODLE_21_STABLE
Change in url in Moodle 21 stable
2012-02-04 23:27:31 -08:00
Tim Hunt 9fde49522d MDL-47494 ddimageortext: Merge pull request #1 from jamiepratt/master
Changed repo url in the README.
2012-02-04 23:26:43 -08:00
Tim Hunt aa9ab4a474 MDL-47494 ddimageortext: Merge pull request #2 from jamiepratt/MOODLE_21_STABLE
Fixing the repo url in MOODLE_21_STABLE
2012-02-04 23:25:47 -08:00
Jamie Pratt 8f042b5159 MDL-47494 ddwtos: Merge branch 'MOODLE_21_STABLE' 2012-02-05 14:12:19 +07:00
Jamie Pratt dce199af16 MDL-47494 ddwtos: NOBUG updating repo url in installation instructions 2012-02-05 14:10:43 +07:00
Jamie Pratt 266eade0cd MDL-47494 gapselect: Merge branch 'MOODLE_21_STABLE' 2012-02-05 12:57:56 +07:00
Jamie Pratt ce6bc6c673 MDL-47494 gapselect: NOBUG updating repo url in installation instructions 2012-02-05 12:57:05 +07:00
Jamie Pratt 6420d735b1 MDL-47494 ddmarker: Merge branch 'MOODLE_21_STABLE' 2012-02-05 12:56:06 +07:00
Jamie Pratt c710a1ebdb MDL-47494 ddmarker: NOBUG updating repo url in installation instructions 2012-02-05 12:51:40 +07:00
Jamie Pratt a9975ec074 MDL-47494 ddimageortext: NOBUG updating installations instruction with moodleou repo url 2012-02-05 12:38:16 +07:00
Jamie Pratt 5cf31e57d5 MDL-47494 ddimageortext: NOBUG updating installations instruction with moodleou repo url 2012-02-05 12:10:13 +07:00
Jamie Pratt 533a0aa2be MDL-47494 gapselect: Merge branch 'diff_2_2' changes for Moodle 2.2+
Conflicts:
	lang/en/qtype_gapselect.php
2012-02-04 18:27:11 +07:00
Jamie Pratt f37cb12ed0 MDL-47494 gapselect: NOBUG change to string identifiers 2012-02-04 18:20:46 +07:00
Jamie Pratt 801012aaaf MDL-47494 gapselect: NOBUG fixing unit tests related to change in default for hint format 2012-02-04 18:20:45 +07:00
Tim Hunt 7421dafa8f MDL-47494 ddmarker: Fix default text format when importing hints. 2012-02-03 19:18:13 +01:00
Tim Hunt 445143ef48 MDL-47494 ddmarker: Fix default text format when importing hints. 2012-02-03 19:14:11 +01:00
Jamie Pratt 3683ba61e7 MDL-47494 ddwtos: NOBUG change to string identifiers 2012-02-03 13:02:41 +07:00
Jamie Pratt 209d3e7ad5 MDL-47494 ddmarker: Merge branch 'MOODLE_21_STABLE' 2012-02-03 12:55:34 +07:00
Jamie Pratt bfd69fe659 MDL-47494 ddmarker: NOBUG updating README.txt installation instructions to include 2.1 branch 2012-02-03 12:54:22 +07:00
Jamie Pratt 9c6e2570be MDL-47494 ddmarker: NOBUG change to string identifiers 2012-01-31 18:00:59 +07:00
Jamie Pratt 77328c4143 MDL-47494 ddimageortext: NOBUG change to string identifiers 2012-01-31 18:00:04 +07:00
Jamie Pratt bb6427e31d MDL-47494 ddwtos: NOBUG change in dependency code for qtypes 2012-01-31 17:04:12 +07:00
Jamie Pratt 1f92921f6f MDL-47494 ddimageortext: NOBUG change in dependency code in qtypes 2012-01-31 16:59:04 +07:00
Jamie Pratt 4dafd7aa56 MDL-47494 ddmarker: NOBUG change in dependency code for qtypes 2012-01-31 16:43:00 +07:00
Jamie Pratt d82d9b649f MDL-47494 ddimageortext: Merge branch 'MOODLE_21_STABLE' of github.com:jamiepratt/moodle-qtype_ddimageortext into MOODLE_21_STABLE 2012-01-31 16:23:11 +07:00
Jamie Pratt 9a94582b0a MDL-47494 ddimageortext: NOBUG requires the gapselect question type to be installed 2012-01-31 16:15:31 +07:00
Jamie Pratt 551fdcc830 MDL-47494 ddmarker: NOBUG fixing unit tests in testwalkthrough.php 2012-01-30 21:00:04 +07:00
Jamie Pratt 389c6f5589 MDL-47494 ddmarker: NOBUG fixing testquestion.php unit tests 2012-01-29 17:23:01 +07:00
Jamie Pratt 317caf1150 MDL-47494 ddmarker: NOBUG fixing potential issue with use of core php array_intersect func 2012-01-29 15:14:02 +07:00
Jamie Pratt cf25df7a30 MDL-47494 ddmarker: NOBUG fixing obvious typo and redundant logic test. 2012-01-29 15:11:33 +07:00
Jamie Pratt 1cae63adf7 MDL-47494 ddmarker: NOBUG making polygon::is_point_in_shape more robust 2012-01-26 18:00:45 +07:00
Jamie Pratt 0aa089c778 MDL-47494 ddmarker: NOBUG return null for random_guess_score as it is incalculable
there are no shown drop zones and we don't know how many drag items have to be
dragged to the image. We could do the complicated calculation to find the area
of a polygon and compare it to the area of the image but it is an overly
complex a calculation I feel outside the scope of the current project.
2012-01-26 17:00:10 +07:00
Jamie Pratt a681f140a8 MDL-47494 ddwtos: OU-2666 Fixed problem when drag misplaced from drop and not dragged off 2011-12-23 14:48:13 +07:00
Jamie Pratt 5be9d2a2f1 MDL-47494 ddwtos: NOBUG css to fix alignment when superscripts and subscripts in drag boxes
Fixes weird layout bug with web browsers that means the boxes will not line up.
2011-12-13 15:52:50 +07:00
Jamie Pratt edf84c8c63 MDL-47494 ddwtos: NOBUG removing unused ie7fix code that is no longer needed
thanks to Tim's fix to sub sup alignment.
2011-12-13 15:40:14 +07:00
Tim Hunt f1034eee15 MDL-47494 ddwtos: Align drag boxes containing sup and sub better. #2094 2011-12-09 17:05:34 +00:00
Tim Hunt 48b3936649 MDL-47494 ddimageortext: Fix import/export and unit tests. 2011-12-09 13:04:14 +07:00
jamiepratt 16be22cd31 MDL-47494 ddimageortext: Merge pull request #6 from timhunt/MOODLE_21_STABLE
Fix unit tests
2011-12-08 22:00:46 -08:00
Tim Hunt 5283ee02c1 MDL-47494 gapselect: Blank menus should say 'Choose ...'.
Also fix unit tests and import.
2011-12-06 14:52:58 +00:00
Tim Hunt 548071f614 MDL-47494 ddimageortext: Fix import/export and unit tests. 2011-12-06 14:50:19 +00:00
Tim Hunt efff972a54 MDL-47494 ddwtos: Fix unit tests 2011-12-06 14:45:33 +00:00
Tim Hunt afc09933e6 MDL-47494 gapselect: Select menus should start saying 'Choose ...', not blank. 2011-12-05 12:51:08 +00:00
Tim Hunt 1371d090c8 MDL-47494 gapselect: Fix export of combined feedback. 2011-12-05 12:50:24 +00:00
Jamie Pratt 50f0ab7f6e MDL-47494 ddmarker: OU-2488 Proper British English 2011-12-02 22:59:15 +07:00
Tim Hunt 6c6fc62627 MDL-47494 ddimageortext: Remove redundant line of code. Hints are automatically output anyway. 2011-12-02 20:36:35 +07:00
jamiepratt a26cec5a41 MDL-47494 ddimageortext: Merge pull request #5 from timhunt/MOODLE_21_STABLE
Moodle 21 stable
2011-12-02 05:35:01 -08:00
Jamie Pratt ac9c8df673 MDL-47494 ddmarker: OU-2489 Using js instead of styling to position markers correctly
on home
2011-12-02 20:20:19 +07:00
Jamie Pratt 53c8848761 MDL-47494 ddmarker: OU-2493 Assigned some extra keys to move markers about the screen 2011-12-02 20:19:30 +07:00
Jamie Pratt 6daf12fe14 MDL-47494 ddmarker: OU-2488 Improved English in coordinate validation error messages. 2011-12-02 16:44:39 +07:00
Jamie Pratt f76c454b04 MDL-47494 ddmarker: OU-2409 fixed punctuation and style in auto generated hints
for wrongly placed drags
2011-12-02 16:07:31 +07:00
Tim Hunt 8c0650fc4a MDL-47494 ddimageortext: Remove redundant line of code. Hints are automatically output anyway. 2011-12-01 11:49:21 +00:00
Jamie Pratt 6e96abb029 MDL-47494 ddmarker: OU-2453 Fixed drag redraw so now there are no duplicate drag items 2011-11-30 08:21:52 +07:00
Jamie Pratt 8d5d2155e4 MDL-47494 ddmarker: OU-2454 Fix for text boxes in feedback in IE7 being broken in half by br 2011-11-30 08:09:19 +07:00
Jamie Pratt 9a0723c5d6 MDL-47494 ddmarker: OU-2426 Work around bug seen in IE7
Graphics.destroy function was throwing an error. Seems there is a bug in the
YUI library affecting IE 7 and 8.
2011-11-29 19:26:05 +07:00
Jamie Pratt d89a348524 MDL-47494 ddmarker: OU-2422 Added 20px margin between drag items and image above 2011-11-29 14:44:06 +07:00
Jamie Pratt 5a34e0b037 MDL-47494 ddmarker: OU-2407 allow tags in markers
relaxed form validation and hardened js
2011-11-29 14:29:34 +07:00
Jamie Pratt 7401a9146b MDL-47494 ddmarker: OU-2409 adding a comma between misplaced markers in feedback 2011-11-29 14:28:35 +07:00
Jamie Pratt f00f4682d9 MDL-47494 ddimageortext: Merge branch 'master' into MOODLE_21_STABLE 2011-11-29 07:07:26 +07:00
Jamie Pratt f8f8163e94 MDL-47494 ddimageortext: NOBUG lang string changes 2011-11-29 07:06:24 +07:00
Jamie Pratt 3ed6823de4 MDL-47494 ddmarker: NOBUG some lang string changes 2011-11-29 07:05:28 +07:00
Jamie Pratt a709dca58b MDL-47494 ddmarker: NOBUG adding gridline overlay to drop background image in ddmarker. 2011-11-25 17:50:40 +07:00
Tim Hunt 7547c32aa4 MDL-47494 ddwtos: Summarise response did not work when choices contained HTML. #2009 2011-11-24 16:45:31 +00:00
Tim Hunt a719f4d218 MDL-47494 gapselect: Bug fixes: #2009
1. Automatic display of right answer did not work if question text
contained images.

2. A choice of '0' was rejected by the form validation.

3. Hard coded strings moved to lang strings.
2011-11-24 16:43:12 +00:00
Tim Hunt 1e62114e5d MDL-47494 ddimageortext: Fix invalid HTML caused by empty_tag('div', ...). #2273 2011-11-24 00:14:17 +07:00
jamiepratt d857b79a55 MDL-47494 ddimageortext: Merge pull request #4 from timhunt/MOODLE_21_STABLE
Moodle 21 stable
2011-11-23 09:10:16 -08:00
Tim Hunt 39ed2eee2a MDL-47494 ddimageortext: Fix invalid HTML caused by empty_tag('div', ...). #2273 2011-11-23 17:04:35 +00:00
Jamie Pratt bd3406adf9 MDL-47494 ddmarker: NOBUG fix to silly typo that was causing response summary not to be shown 2011-11-23 20:16:39 +07:00
Jamie Pratt a187ada8cf MDL-47494 ddimageortext: NOBUG if any choice is 'infinite' return null for random guess score 2011-11-23 13:44:15 +07:00
Jamie Pratt 172d6dfd12 MDL-47494 ddimageortext: NOBUG if any choice is 'infinite' return null for random guess score 2011-11-23 12:50:29 +07:00
Jamie Pratt 14230fd6dc MDL-47494 ddmarker: NOBUG fix question statistics in quiz statistics report 2011-11-23 12:31:24 +07:00
Jamie Pratt 5e0f5f52de MDL-47494 ddmarker: NOBUG fixing CSS selectors so that they apply style to highlighted marker text 2011-11-23 11:51:21 +07:00
Jamie Pratt fb15199865 MDL-47494 ddmarker: NOBUG implemented backup and restore. 2011-11-19 19:30:34 +07:00
Jamie Pratt fd1be85cbe MDL-47494 ddmarker: NOBUG implement import / export of question type 2011-11-19 17:59:56 +07:00
Jamie Pratt 615888af8e MDL-47494 ddimageortext: Merge branch 'master' into MOODLE_21_STABLE 2011-11-19 17:24:20 +07:00
Jamie Pratt 5b7d9decd9 MDL-47494 ddimageortext: NOBUG adding main question type table that needs deleting to question_delete 2011-11-19 17:23:32 +07:00
Jamie Pratt 3c63e5916e MDL-47494 ddimageortext: Merge branch 'master' into MOODLE_21_STABLE 2011-11-19 17:11:25 +07:00
Jamie Pratt cb5c4e62ac MDL-47494 ddimageortext: NOBUG fixing question tables referred to for question deleting 2011-11-19 17:10:19 +07:00
Jamie Pratt 2bd257656b MDL-47494 ddimageortext: Merge branch 'master' into MOODLE_21_STABLE
Conflicts:
	questiontype.php
2011-11-19 17:09:18 +07:00
Jamie Pratt d36f336d84 MDL-47494 ddimageortext: MDL-29058 change in api related to fix for saving feedback files 2011-11-19 17:00:51 +07:00
Jamie Pratt 267ccc7347 MDL-47494 ddmarker: NOBUG oops. Finish code for moving and deleting files related to question 2011-11-19 15:15:29 +07:00
Jamie Pratt 5356733eff MDL-47494 ddmarker: NOBUG suppress link in drag items in question editing form 2011-11-19 15:15:01 +07:00
Jamie Pratt c9cf5af4e5 MDL-47494 ddmarker: NOBUG fixed issue with occurances of html_writer::empty_tag('div'.....
Divs were being generated as <div /> which is probably illegal html and was not
getting correctly selected with YUI to add children.
2011-11-19 14:16:09 +07:00
Jamie Pratt 14fe3addd8 MDL-47494 ddmarker: NOBUG suppressing link in drag when using question editing form 2011-11-18 19:14:39 +07:00
Jamie Pratt c28563d2f0 MDL-47494 ddmarker: NOBUG suppress message about wrongly dragged question parts when there are none. 2011-11-18 18:40:50 +07:00
Jamie Pratt e8decd151d MDL-47494 ddmarker: Merge branch 'master' of git://github.com/jamiepratt/moodle-qtype_ddmarker
Conflicts:
	question.php
2011-11-18 18:37:57 +07:00
Jamie Pratt 8ed8434c63 MDL-47494 ddmarker: NOBUG string change 2011-11-18 13:19:33 +07:00
Jamie Pratt 6f6d6e2fbe MDL-47494 ddmarker: NOBUG fixed notice when hints are displayed 2011-11-18 13:17:27 +07:00
Jamie Pratt 6d6cda8902 MDL-47494 ddmarker: NOBUG fix for notices seen when pressing 'fill in correct response' in preview 2011-11-18 13:12:48 +07:00
Jamie Pratt 597a696a4a MDL-47494 ddmarker: NOBUG fixed some problems with response summaries 2011-11-18 13:12:10 +07:00
Jamie Pratt cb88dc139b MDL-47494 ddmarker: NOBUG fixed some problems with response summaries 2011-11-18 12:34:00 +07:00
Jamie Pratt d7625a96f1 MDL-47494 ddimageortext: NOBUG moving some methods from out of the question_type base class 2011-11-18 11:36:45 +07:00
Jamie Pratt c82675e06c MDL-47494 ddimageortext: NOBUG adding comments to identify keys for key numbers in keyboard listener 2011-11-18 11:30:28 +07:00
Tim Hunt 5a20554702 MDL-47494 ddimageortext: Tweak lang strings and fix file permissions. 2011-11-18 11:30:27 +07:00
Jamie Pratt fdaacb9e60 MDL-47494 ddimageortext: NOBUG adding some drop shadow to drags 2011-11-18 11:30:26 +07:00
Jamie Pratt b9640ba51f MDL-47494 ddimageortext: NOBUG moving some methods from out of the question_type base class 2011-11-18 11:15:08 +07:00
Jamie Pratt 374c250b51 MDL-47494 ddmarker: NOBUG added a border to draggable items 2011-11-17 16:17:06 +07:00
Jamie Pratt 67a2afa43e MDL-47494 ddmarker: NOBUG hopefully made some of the student facing messages more intelligible 2011-11-17 16:13:10 +07:00
Jamie Pratt 70c434ee5b MDL-47494 ddmarker: NOBUG implemented highlighting of incorrectly dragged drag items. 2011-11-17 16:08:02 +07:00
Jamie Pratt 43964253f3 MDL-47494 ddmarker: NOBUG control highlighting drops without hit by showmisplaced flag from form 2011-11-17 16:04:05 +07:00
Jamie Pratt e47c7eaec2 MDL-47494 ddmarker: NOBUG implemented the highlighting of drop zones with no drag hit 2011-11-17 13:20:43 +07:00
Jamie Pratt bcbe321a87 MDL-47494 ddmarker: NOBUG implemented 'Fill in correct responses' 2011-11-16 16:01:47 +07:00
Jamie Pratt 457c35b3dc MDL-47494 ddmarker: NOBUG increase opacity of marker text to 0.6 to make them more readable 2011-11-16 14:37:09 +07:00
Jamie Pratt a365808af1 MDL-47494 ddmarker: NOBUG fixed a couple of bugs displaying marker text 2011-11-16 14:32:23 +07:00
Jamie Pratt 5d76e39400 MDL-47494 ddmarker: NOBUG fixing PHP notice about missing label property. 2011-11-16 13:07:52 +07:00
Jamie Pratt 7792acc0a8 MDL-47494 ddmarker: NOBUG corrected grading equation to include penalty and clarified code
also removed debug code
2011-11-16 13:00:16 +07:00
Jamie Pratt b1d1ae5095 MDL-47494 ddmarker: NOBUG coded clear wrong from response 2011-11-15 17:40:33 +07:00
Jamie Pratt 33164c0424 MDL-47494 ddmarker: NOBUG coded question grading. 2011-11-15 17:09:09 +07:00
Jamie Pratt 6f789d3dbd MDL-47494 ddmarker: NOBUG more work on code to validate coordinates entered when editing question 2011-11-14 15:39:44 +07:00
Jamie Pratt 2b3e53b36f MDL-47494 ddimageortext: NOBUG adding comments to identify keys for key numbers in keyboard listener 2011-11-12 15:48:37 +07:00
Jamie Pratt f881a720ef MDL-47494 ddmarker: NOBUG implemented keyboard control of drag items for accessibility. 2011-11-12 15:21:50 +07:00
Jamie Pratt c278048873 MDL-47494 ddmarker: NOBUG adding some space between drag items so they can be easily distinguished 2011-11-10 13:48:00 +07:00
Jamie Pratt 197acdf79b MDL-47494 ddmarker: NOBUG removing console.log 2011-11-10 13:06:02 +07:00
Jamie Pratt b88753e448 MDL-47494 ddmarker: NOBUG no longer deleting dragged node 2011-11-10 13:04:13 +07:00
Jamie Pratt 450ecdea9d MDL-47494 ddmarker: NOBUG added code to reposition drags every 500ms 2011-11-10 12:41:23 +07:00
Jamie Pratt 054c1ce49a MDL-47494 ddmarker: NOBUG changed code for positioning drag items
Now it does not delete all drag items each time and reclone them. It repositions
existing items and deletes and creates new drag items as needed.
2011-11-10 12:35:40 +07:00
Jamie Pratt 3865a58874 MDL-47494 ddmarker: NOBUG use CSS to move target center to point at 0,0 of dragitem div
changed from calculating difference being drag item xy and target center xy
which was error prone.
2011-11-08 14:42:23 +07:00
Jamie Pratt 6409471538 MDL-47494 ddmarker: NOBUG rewrote code to save target center xy in hidden input tags
also bases position of drags on contents of hidden inputs ie. on target center
xy.
2011-11-08 12:59:04 +07:00
jamiepratt ef3bc620e9 MDL-47494 ddimageortext: Merge pull request #1 from timhunt/master
Just some minor tweaks to bring us into synch with the latest ouvle version.
2011-11-07 03:57:15 -08:00
Tim Hunt 0491945d58 MDL-47494 gapselect: Fix file-permissions. 2011-11-04 16:15:03 +00:00
Tim Hunt a8bc7c608d MDL-47494 ddwtos: Whitespace and file permission fixes. 2011-11-04 15:34:24 +00:00
Tim Hunt c56c771f9e MDL-47494 ddimageortext: Tweak lang strings and fix file permissions. 2011-11-04 14:20:00 +00:00
Jamie Pratt b5cdc3e7a7 MDL-47494 ddimageortext: NOBUG adding some drop shadow to drags 2011-11-04 17:49:38 +07:00
Jamie Pratt 44e47bd9a3 MDL-47494 ddmarker: NOBUG added drop shadow on marker text being dragged 2011-11-04 17:23:58 +07:00
Jamie Pratt 10cbf24afd MDL-47494 ddmarker: NOBUG added js functionality for 'infinite' drags. 2011-11-04 17:06:51 +07:00
Jamie Pratt bf2892c4fd MDL-47494 ddmarker: NOBUG oops. Just committing crosshairs.gif now 2011-11-04 10:16:25 +07:00
Jamie Pratt 477179666f MDL-47494 ddmarker: NOBUG dragging and dropping of non infinite choices is now working. 2011-11-03 19:47:54 +07:00
Jamie Pratt b1330fe887 MDL-47494 ddmarker: NOBUG some style improvements 2011-11-03 17:54:40 +07:00
Jamie Pratt a98db2a929 MDL-47494 ddmarker: NOBUG js for question renderer - cloning drags and storing drop coords 2011-11-03 16:22:56 +07:00
Jamie Pratt 5e0be900ae MDL-47494 ddimageortext: Merge branch 'master' into MOODLE_21_STABLE 2011-11-03 16:21:29 +07:00
Jamie Pratt 2a1ec7554c MDL-47494 ddimageortext: NOBUG allow sub classes to add class names to hidden input fields 2011-11-03 16:19:52 +07:00
Jamie Pratt e5c0a2c442 MDL-47494 ddwtos: OU-2004 Fixed the initial positioning of 'infinite' choices 2011-11-02 18:39:22 +07:00
Jamie Pratt e354ce47c2 MDL-47494 ddmarker: NOBUG adding target icon to drag items and some improvements to styles 2011-11-02 15:56:46 +07:00
Jamie Pratt f8d20b1f18 MDL-47494 ddimageortext: Merge branch 'master' into MOODLE_21_STABLE 2011-11-02 13:53:07 +07:00
Jamie Pratt 5429a22009 MDL-47494 ddimageortext: NOBUG have url generation code work in other question types that extend this 2011-11-02 13:51:05 +07:00
Jamie Pratt ddbea1ae6b MDL-47494 ddmarker: NOBUG have renderer output correct html and fix file access to bgimage 2011-11-02 13:49:54 +07:00
Jamie Pratt c77b71bc1b MDL-47494 ddimageortext: Merge branch 'master' into MOODLE_21_STABLE
Conflicts:
	edit_ddimageortext_form.php
2011-10-31 18:55:08 +07:00
Jamie Pratt 6aad8ee353 MDL-47494 ddimageortext: NOBUG fixed disabling of select options when the background image is not loaded 2011-10-31 17:38:28 +07:00
Jamie Pratt eab829f388 MDL-47494 ddimageortext: NOBUG removing unnecessary reference to obsolete head_code method 2011-10-31 16:20:21 +07:00
Jamie Pratt d164d09315 MDL-47494 ddimageortext: NOBUG removing unnecessary form input event responder that was causing errors 2011-10-31 16:19:04 +07:00
Jamie Pratt b34bc99705 MDL-47494 ddmarker: NOBUG moved colours out of css style sheet and into js
Need to be able to assign a colour to the fill of shapes displayed and this
cannot be done with css.
2011-10-31 16:14:52 +07:00
Jamie Pratt def5ae8de4 MDL-47494 ddmarker: NOBUG further styling adjustments 2011-10-31 12:31:07 +07:00
Jamie Pratt 3c023b916f MDL-47494 ddmarker: NOBUG some styling of marker text spans 2011-10-31 12:24:37 +07:00
Jamie Pratt 4b549f07a5 MDL-47494 ddmarker: NOBUG centering marker text. 2011-10-29 12:33:49 +07:00
Jamie Pratt 64b3d6e833 MDL-47494 ddmarker: NOBUG further developments 2011-10-29 12:19:21 +07:00
Jamie Pratt b2e57f524b MDL-47494 ddimageortext: NOBUG not using yui3-cssfonts or yui3-csssrest but forgot to remove class names 2011-10-29 12:07:50 +07:00
Jamie Pratt be132b50d5 MDL-47494 ddwtos: NOBUG changing unit tests to expect slightly different html output from renderer 2011-10-25 17:21:54 +07:00
Jamie Pratt 99c6577a94 MDL-47494 ddmarker: NOBUG added some unit tests for shape hit checks and fixed bugs I found. 2011-10-24 11:43:55 +07:00
Jamie Pratt 60c9d277da MDL-47494 ddmarker: NOBUG added class for hit testing in various shapes and unit tests for polygons 2011-10-22 20:29:36 +07:00
Jamie Pratt ead24b25b4 MDL-47494 ddwtos: NOBUG added drop shadow to drag items when they are being dragged 2011-10-19 11:50:46 +07:00
Jamie Pratt 6ce8469ad4 MDL-47494 ddwtos: NOBUG Reverting "new icon for question type"
This reverts commit 5e8d09377744cd83f84bb2c5330c53d463b151f6.
2011-10-17 19:26:52 +07:00
Jamie Pratt ecbdefb4ea MDL-47494 ddimageortext: NOBUG updated README with instructions about how to install 2.1+ version. 2011-10-14 13:29:06 +07:00
Jamie Pratt d39f90b34f MDL-47494 ddimageortext: NOBUG updated README with instructions about how to install 2.1+ version. 2011-10-14 13:27:46 +07:00
Jamie Pratt ed4d9c8f1d MDL-47494 ddwtos: NOBUG removing unused css clause. 2011-10-14 11:34:40 +07:00
Jamie Pratt fe25f5a0d0 MDL-47494 ddwtos: NOBUG tidying up padding calculation code, using same code for drags and drops 2011-10-14 11:32:01 +07:00
Tim Hunt 1d28421946 MDL-47494 ddwtos: Add a bit more padding in the drop-boxes. 2011-10-13 15:39:43 +01:00
Jamie Pratt 33be3558ee MDL-47494 gapselect: NOBUG took out the appended group no in box id. It is not needed place nos are
unique already.
2011-10-13 21:19:30 +07:00
Jamie Pratt 68cd4818c4 MDL-47494 gapselect: Merge branch 'master' of git://github.com/timhunt/moodle-qtype_gapselect 2011-10-13 19:07:43 +07:00
Tim Hunt 8edf95a2bc MDL-47494 ddwtos: Some minor coding style clean-up. 2011-10-12 17:46:38 +01:00
Tim Hunt ac6beb7511 MDL-47494 gapselect: Improve file handling in overall feedback. 2011-10-12 17:41:04 +01:00
Jamie Pratt 25d9b67ea8 MDL-47494 ddwtos: NOBUG fix for ie7 not correctly calculating height of span with sub and sup. 2011-10-11 13:01:11 +07:00
Jamie Pratt 20dc02a4a9 MDL-47494 ddwtos: Revert "NOBUG making hidden inputs visible for easy debugging during deve.."
This reverts commit 39eac49aed4ac985d56cef68f4cc8470443a04ec.
2011-10-08 15:18:26 +07:00
Jamie Pratt 095838849f MDL-47494 ddwtos: NOBUG fixed various problems by making border of dropped drag object invisible
Fixes problem not being able to see whether element has focus and ugly
appearance of double borders when drag element is slightly misplaced. Also
made drop a couple of pixels higher and wider than drag.
2011-10-08 14:55:26 +07:00
Jamie Pratt f631835500 MDL-47494 ddwtos: NOBUG new icon for question type 2011-10-08 13:12:19 +07:00
Jamie Pratt 70297e993d MDL-47494 ddwtos: NOBUG added keyboard support also removed use of not selector.
Not selector does not work in IE7 I think.
2011-10-07 20:26:55 +07:00
Jamie Pratt 8fee473050 MDL-47494 ddwtos: NOBUG combination fix for size of drag objects and ie issues
Drag box size was off by one pixel in some cases. In IE7 padding was not being
set correctly.
2011-10-07 13:34:51 +07:00
Jamie Pratt 54a5be5338 MDL-47494 ddwtos: NOBUG rewrite of js for YUI3 and also associated changes to styles and html 2011-10-07 13:11:23 +07:00
Jamie Pratt 0f5bb17587 MDL-47494 gapselect: NOBUG cannot select id with ':' in YUI3.
Moved calculation of id to a new method so that I can fetch it and pass it to
ddwtos js.
2011-10-06 16:19:21 +07:00
Jamie Pratt c3e7201a40 MDL-47494 ddwtos: NOBUG added a yui3 module skeleton.
Copied a couple of functions that might be needed. Removed script.js - old YUI2
code.
2011-10-06 15:50:24 +07:00
Jamie Pratt 022ab315dd MDL-47494 ddwtos: NOBUG making hidden inputs visible for easy debugging during developement 2011-10-06 14:45:07 +07:00
Jamie Pratt 8aae74a457 MDL-47494 ddmarker: NOBUG made a start to validation of shape coords saved and also at the same time
a start on code to interpret the coords for use in hit detection.
2011-10-05 20:11:54 +07:00
Jamie Pratt ae674bd250 MDL-47494 ddmarker: NOBUG added display of marker text at center of shape. 2011-10-05 20:09:48 +07:00
Jamie Pratt 81fa308cda MDL-47494 ddmarker: NOBUG Removed redundant code and reference to unused module. 2011-10-02 13:21:20 +07:00
Jamie Pratt f23600db44 MDL-47494 ddmarker: NOBUG changed to use change events on input elements to trigger repopulation of
Marker select box.
2011-10-02 13:19:40 +07:00
Jamie Pratt 57e3c7cfc3 MDL-47494 ddmarker: NOBUG drop zones now appearing where they are supposed to. 2011-10-01 21:23:36 +07:00
Jamie Pratt c2682aa64b MDL-47494 ddmarker: NOBUG displaying drop zones. But polygon drop zone is not in the right place! 2011-10-01 18:52:37 +07:00
Jamie Pratt bf442b625a MDL-47494 ddmarker: NOBUG removed drop->label property. 2011-10-01 18:51:35 +07:00
Jamie Pratt 6a69507ba8 MDL-47494 ddmarker: NOBUG changed to using checkbox instead of advcheckbox 2011-10-01 18:50:04 +07:00
Jamie Pratt c1bf167397 MDL-47494 ddimageortext: OU-1578 Also found that filepicker is not hidden correctly when label is '0' and
there is no file.
2011-09-28 19:41:41 +07:00
Jamie Pratt 3597982ab0 MDL-47494 ddimageortext: NOBUG further refactoring during development of ddmarker question type. 2011-09-28 19:38:19 +07:00
Jamie Pratt d2ac6cea2a MDL-47494 ddmarker: NOBUG question editing form is now working correctly. 2011-09-28 19:31:48 +07:00
Jamie Pratt 35d4aea953 MDL-47494 ddimageortext: OU-1597 Renaming question types. 2011-09-28 10:44:03 +07:00
Jamie Pratt 48980d9d60 MDL-47494 ddwtos: OU-1597 Renaming question types. 2011-09-28 10:41:49 +07:00
Jamie Pratt eaabb89113 MDL-47494 ddimageortext: OU-1578 A text drag item with label '0' was not getting saved. 2011-09-28 09:40:48 +07:00
Colin Chambers 22db3cad22 MDL-47494 ddwtos: Set ie7 drag drop players using onDomReady #738 2011-09-27 15:39:59 +01:00
Colin Chambers bcad586f2d MDL-47494 ddwtos: now prevents event on key down using ddwtos qtype #740 2011-09-27 15:39:57 +01:00
Jamie Pratt bc1bcf6e33 MDL-47494 ddimageortext: NOBUG more refactoring 2011-09-27 19:40:41 +07:00
Jamie Pratt eb4b065ade MDL-47494 ddmarker: NOBUG fixing case of ddmarker where it should be upper case. 2011-09-27 17:40:54 +07:00
Jamie Pratt dda954a26c MDL-47494 ddmarker: NOBUG extending functionality from ddimageortext question type. 2011-09-26 14:29:44 +07:00
Jamie Pratt 878ecb4804 MDL-47494 ddmarker: NOBUG first try at an icon for the question type. 2011-09-26 14:29:20 +07:00
Jamie Pratt d2c112fd8c MDL-47494 ddimageortext: NOBUG moved functionality for questions into base classes that can be
extended by other question types.
2011-09-26 14:27:35 +07:00
Jamie Pratt 8e1d95beb1 MDL-47494 ddmarker: NOBUG edited README.txt 2011-09-24 15:57:31 +07:00
Jamie Pratt b3878dbdb8 MDL-47494 ddmarker: NOBUG initial commit of new ddmarker code. Have changed file names and
occurances of 'ddmarker' in code. Also changed relevant tables and table
contents in install.xml and changed file names.
2011-09-24 15:47:37 +07:00
Jamie Pratt e522e6c3e6 MDL-47494 ddimageortext: OU-1549 "Is question text line spacing in drag and drop questions larger than
normal?" Missed one selector in style.css
2011-09-21 09:16:35 +07:00
Jamie Pratt 27c106ad40 MDL-47494 ddimageortext: OU-1549 "Is question text line spacing in drag and drop questions larger than
normal?" Missed one selector in style.css
2011-09-20 13:15:42 +07:00
Jamie Pratt fda1da57e1 MDL-47494 ddimageortext: OU-1549 Double line spacing was accidentally copied over from ddwtos question
type.
2011-09-16 16:18:53 +07:00
Jamie Pratt 649e99a8c9 MDL-47494 ddimageortext: OU-1549 Double line spacing was accidentally copied over from ddwtos question
type.
2011-09-16 16:16:22 +07:00
Jamie Pratt 7c0a4f54df MDL-47494 ddimageortext: NOBUG fixing a 1 pixel jump downwards and to the right seen on dropping drag
items when form editing in IE9 and Chrome.
2011-09-15 16:24:22 +07:00
Jamie Pratt 7d35968d74 MDL-47494 ddimageortext: NOBUG fixing a 1 pixel jump downwards and to the right seen on dropping drag
items when form editing in IE9 and Chrome.
2011-09-15 16:21:47 +07:00
Jamie Pratt ce6d6b175b MDL-47494 ddimageortext: NOBUG optional_param_array is not available in MOODLE 2.1 but must be used in
MOODLE 2.2 on.
2011-09-15 12:11:45 +07:00
Jamie Pratt 59932119c8 MDL-47494 ddimageortext: NOBUG I realised that the yui css I was using didn't actually do a lot. Instead
of including yui css I copied the relevant style to the question style sheet.
2011-09-15 10:33:20 +07:00
Jamie Pratt 0957568d3a MDL-47494 ddimageortext: NOBUG need to use 3.2 yui url to access 3.2 yui which is the latest available in
MOODLE_21_STABLE
2011-09-14 19:46:23 +07:00
Jamie Pratt e58d0a2d58 MDL-47494 ddimageortext: NOBUG removing unnecessary declaration of dependencies. 2011-09-14 19:37:22 +07:00
Jamie Pratt 38955535bd MDL-47494 ddimageortext: NOBUG fixed some whitespace and coding guideline issues found by codechecker. 2011-09-13 20:41:07 +07:00
Jamie Pratt 7e2699d919 MDL-47494 ddimageortext: NOBUG fixed broken unit tests. 2011-09-13 20:27:38 +07:00
Jamie Pratt ea9bec768a MDL-47494 ddimageortext: NOBUG fixing typo in code for course restore. 2011-09-13 20:13:58 +07:00
Jamie Pratt e05bd4be13 MDL-47494 ddimageortext: NOBUG fixing import of text as well as image based drag items. 2011-09-13 20:13:31 +07:00
Jamie Pratt 06f00779cf MDL-47494 ddimageortext: NOBUG fixing code that constrains xy coords to within the background image.
And also fixed links to css to standardize character metrics.
2011-09-13 19:42:37 +07:00
Jamie Pratt 9593b7206e MDL-47494 ddimageortext: NOBUG removing erroneous require of YUI 2 code. 2011-09-12 20:20:41 +07:00
Jamie Pratt 0a65100c42 MDL-47494 ddimageortext: NOBUG changing url to css from yui 3.4 build 2011-09-12 20:16:40 +07:00
Jamie Pratt 73b6f0006b MDL-47494 ddimageortext: NOBUG couple of small bug fixes. 2011-09-12 20:12:55 +07:00
Jamie Pratt 31077627c3 MDL-47494 ddimageortext: NOBUG renaming of files and string replacement to change name of question type. 2011-09-12 18:57:02 +07:00
Jamie Pratt c4d8ad0eda MDL-47494 ddimageortext: NOBUG continued converting functionality of question type so it can be used
with either image or text drag items.
2011-09-12 17:37:41 +07:00
Jamie Pratt 42167fc493 MDL-47494 ddimageortext: NOBUG added select drag item type selector and js code to hide the filepicker. 2011-09-09 18:51:50 +07:00
Jamie Pratt 1a17df84de MDL-47494 ddimageortext: NOBUG removed help button as it does not work on a submit button anyway. 2011-09-09 15:23:57 +07:00
Jamie Pratt 97bb83259f MDL-47494 ddimageortext: NOBUG hardened code that waits for images loaded before going on. 2011-09-09 13:03:11 +07:00
Jamie Pratt a3be6d9da1 MDL-47494 ddimageortext: NOBUG started making this a mixed question type with draggable text as welll as
draggable images.
2011-09-08 19:22:46 +07:00
Jamie Pratt 50000b74d8 MDL-47494 ddimageortext: NOBUG added and amended code to allow a teacher to create questions with
draggable text mixed with images.
2011-09-08 10:35:32 +07:00
Jamie Pratt 43281f4b28 MDL-47494 ddimageortext: OU-1442 <br /> does not work well in a form field label across browsers and
themes.
2011-09-06 17:50:42 +07:00
Jamie Pratt 7643f065d9 MDL-47494 ddimageortext: OU-1442 unordered lists will not work in many themes / browser combinations
inside a form.
2011-09-03 15:21:14 +07:00
Jamie Pratt d22736bfe5 MDL-47494 ddimageortext: NOBUG problems with IE 9 mean I had to remove this code that checks that coords
in the form places drag image on bg image.
2011-09-03 15:01:29 +07:00
Jamie Pratt f15a56df11 MDL-47494 ddimageortext: OU-1441 added a refresh button to reload page and especially preview area. 2011-09-02 21:28:51 +07:00
Jamie Pratt 6ff680a7ad MDL-47494 ddimageortext: OU-1443 Correcting spelling mistake. 2011-09-02 21:04:30 +07:00
Jamie Pratt 1f82adbe9c MDL-47494 ddimageortext: NOBUG using same concept as used in question editing form to reduce delays in
repositioning drags.
2011-09-02 21:00:42 +07:00
Jamie Pratt 8d24c8c6f8 MDL-47494 ddimageortext: NOBUG removing some commented out code. 2011-09-02 20:33:52 +07:00
Jamie Pratt 1025d075c8 MDL-47494 ddimageortext: NOBUG noticed that when dragging and dropping drag item was off by 1 pixel
in both x and y axis.
2011-09-02 20:13:05 +07:00
Jamie Pratt 79594d6018 MDL-47494 ddimageortext: OU-1430 changing from repositioning drags when needed to repositioning every 1/2
second. This solves the problem of being able to detect when html editor has
upset the x y coords on a page.
2011-09-02 20:12:14 +07:00
Jamie Pratt 5445febbc8 MDL-47494 ddimageortext: NOBUG fixing an issue with refactoring. 2011-09-02 18:38:08 +07:00
Jamie Pratt a116cdfa3d MDL-47494 ddimageortext: NOBUG refactored backup and restore code so it can be reused by ddwordtoimage 2011-09-01 18:32:12 +07:00
Jamie Pratt dd6550e23b MDL-47494 ddimageortext: NOBUG should say drag images to image not images to images. 2011-09-01 18:07:32 +07:00
Jamie Pratt 8c2bf1f0d7 MDL-47494 ddimageortext: NOBUG wait a little longer for page to settle down after images loaded. This
seems to be necessary because after the tinymce editor loads xy coords all
change.
2011-09-01 17:19:24 +07:00
Jamie Pratt 5a641fe31e MDL-47494 ddimageortext: NOBUG change to use id to find form in a way that works with IE7. 2011-08-25 18:17:13 +07:00
Jamie Pratt 3637ee1686 MDL-47494 ddimageortext: NOBUG implemented question walkthrough unit tests. 2011-08-25 13:37:38 +07:00
Jamie Pratt dfd89ae5a2 MDL-47494 ddimageortext: NOBUG removed exception as it messes up unit tests where files do not exist and
are not needed.
2011-08-24 19:48:46 +07:00
Jamie Pratt 769fd123e4 MDL-47494 gapselect: Merge branch 'master' of git://github.com/timhunt/moodle-qtype_gapselect 2011-08-24 18:42:01 +07:00
Jamie Pratt c1844f5be8 MDL-47494 ddimageortext: NOBUG updating README file with up to date installation instructions. 2011-08-24 18:30:12 +07:00
Jamie Pratt 87c64021c2 MDL-47494 ddimageortext: NOBUG mainly white space changes to fix code formatting issues highlighted by
code checker.
2011-08-24 18:25:53 +07:00
Jamie Pratt e074cd91ea MDL-47494 ddimageortext: NOBUG "Typo in DDWtoS foreign key definition #874" applying a small fix for
a typo from a fix to the ddwtos code that this code is based on.
2011-08-24 17:52:53 +07:00
Jamie Pratt bfe791348d MDL-47494 ddimageortext: NOBUG made changes to Tim's ddwtos unit tests so that they can be used with
this question type.
2011-08-24 17:48:28 +07:00
Jamie Pratt 104059b342 MDL-47494 ddimageortext: NOBUG little bit of rejigging of question and response summarising. 2011-08-23 13:19:35 +07:00
Jamie Pratt 5fd925aaa9 MDL-47494 ddimageortext: NOBUG added key handlers for arrow keys, space key and escape key to select
drags for drop zones.
2011-08-22 22:23:35 +07:00
Jamie Pratt dbf87f16be MDL-47494 ddimageortext: NOBUG a few comments for js classes. 2011-08-22 14:51:18 +07:00
Jamie Pratt 8bfaad3b5b MDL-47494 ddimageortext: NOBUG removing 'correct answer is' textual feedback to student as it is
unintelligible and improving summarising of response. Fixed random guess
score in statistics that was showing zero. Fixed statistics for question
parts.
2011-08-21 20:57:29 +07:00
Jamie Pratt da102a7fe4 MDL-47494 ddimageortext: NOBUG moved student attempt code into same module as base class in order to
reduce the ammount of files that must be loaded. Teacher editing form code is
still separate.
2011-08-21 17:16:13 +07:00
Jamie Pratt 59a4937f0a MDL-47494 ddimageortext: NOBUG fixed typo that was causing intermittent problems with poll_image_loading. 2011-08-21 16:18:17 +07:00
Jamie Pratt 26295e67a9 MDL-47494 ddimageortext: NOBUG converted js from static code to modular code. As well as making code
clearer this also made it so we use different instances of the same
code for the several questions on the same page.
2011-08-21 16:17:42 +07:00
Jamie Pratt 9b2ccabae8 MDL-47494 ddimageortext: NOBUG added feedback for student when they have not dragged an image to each
drop zone.
2011-08-20 20:52:38 +07:00
Jamie Pratt f65546366d MDL-47494 ddimageortext: NOBUG fixed shuffle choices value not being imported. 2011-08-20 20:36:05 +07:00
Jamie Pratt cc5a1217e6 MDL-47494 ddimageortext: NOBUG implemented import and export to Moodle XML format. 2011-08-20 18:13:20 +07:00
Jamie Pratt de1291955f MDL-47494 ddimageortext: NOBUG implementing question back up and restore. 2011-08-20 12:55:47 +07:00
Jamie Pratt f8db311062 MDL-47494 ddimageortext: NOBUG implemented moving and deleting files associated with question when
question is moved or deleted.
2011-08-20 11:16:36 +07:00
Jamie Pratt 3c2b258d19 MDL-47494 ddimageortext: NOBUG changed to using dragimage as filearea for dragimages and using drag id as
item id instead of using file area dragimage_[a-j] etc.
2011-08-20 10:36:50 +07:00
Jamie Pratt 7cac27f4e1 MDL-47494 ddimageortext: NOBUG issue with padding updating when uploading a new image in the same group. 2011-08-19 19:31:44 +07:00
Jamie Pratt 372aad7a96 MDL-47494 ddimageortext: NOBUG needed to switch to using drag id as item id for drag image fileareas. 2011-08-19 18:18:18 +07:00
Jamie Pratt 61c6aed4c8 MDL-47494 ddimageortext: NOBUG previous commit which changed the way padding update worked broke padding
setting in preview mode. Fixed now.
2011-08-19 15:27:13 +07:00
Jamie Pratt 950ce13961 MDL-47494 ddimageortext: NOBUG fixed (non)updating of padding size when group is changed. 2011-08-19 15:07:20 +07:00
Jamie Pratt 14178839d9 MDL-47494 ddimageortext: NOBUG fixed bug seen in IE7 with poll_image_load and with padding sizes. 2011-08-19 14:41:45 +07:00
Jamie Pratt 23f1e8f539 MDL-47494 ddimageortext: NOBUG renamed module.js to dd.js to make it easier to find in list of js files
in js debugger, makes sense to have a more descriptive name I think.
2011-08-19 13:05:34 +07:00
Jamie Pratt 1f6d7f5f26 MDL-47494 ddimageortext: NOBUG further hardening of JS. Fixed bugs in poll_for_image_load and fixed error
in IE7 about undefined parameters.
2011-08-19 12:59:30 +07:00
Jamie Pratt 09a9329a5a MDL-47494 ddimageortext: NOBUG removing some of the redundant node clones. 2011-08-18 22:28:15 +07:00
Jamie Pratt a8be2699a9 MDL-47494 ddimageortext: NOBUG more work to make JS more reliable across browsers. 2011-08-18 18:44:40 +07:00
Jamie Pratt dbe2635db6 MDL-47494 ddimageortext: NOBUG using polling of complete js property to test for image loading, seems to
be more reliable.
2011-08-18 16:46:45 +07:00
Jamie Pratt 152045b331 MDL-47494 ddimageortext: NOBUG trying to get padding to work correctly in IE7. 2011-08-18 16:31:46 +07:00
Jamie Pratt aa854a768a MDL-47494 ddimageortext: NOBUG some polishing of code. 2011-08-17 10:08:51 +07:00
Jamie Pratt a135d087d6 MDL-47494 ddimageortext: NOBUG further refactoring and changes to make the code work in IE too. 2011-08-16 18:47:27 +07:00
Jamie Pratt f20ac87f23 MDL-47494 ddimageortext: NOBUG refactored js and added disabling of options in select boxes dependent of
whether the image is 'infinite' or not and whether it is selected elsewhere.
2011-08-15 21:55:24 +07:00
Jamie Pratt 8f1c40332f MDL-47494 ddimageortext: NOBUG javascript almost done but needs refactoring hopefully to simplify it. 2011-08-14 15:55:17 +07:00
Jamie Pratt 9e5f72e116 MDL-47494 ddimageortext: NOBUG adding output of question text. 2011-08-11 18:44:24 +07:00
Jamie Pratt 1d5ba96423 MDL-47494 ddimageortext: NOBUG ironed out a few bugs with drag item choice nos. 2011-08-11 18:22:27 +07:00
Jamie Pratt 9ba6e055cc MDL-47494 ddimageortext: NOBUG file access function that I forgot to add and commit earlier. 2011-08-11 17:40:02 +07:00
Jamie Pratt 770e940684 MDL-47494 ddimageortext: NOBUG make the cursor not change to the move cursor over drag objects when
in readonly mode.
2011-08-11 17:39:11 +07:00
Jamie Pratt 5c951453e0 MDL-47494 ddimageortext: NOBUG fixed problems with hint options 'show number correct' and 'clear wrong
answers'.
2011-08-11 16:13:30 +07:00
Jamie Pratt b79b7fb6d5 MDL-47494 ddimageortext: NOBUG small fix to ignore invalid values in hidden fields. 2011-08-11 14:56:38 +07:00
Jamie Pratt b59900489a MDL-47494 ddimageortext: NOBUG js for form and question pretty much finished. Some debugging still
necessary.
2011-08-11 14:17:43 +07:00
Jamie Pratt 3fbd84d956 MDL-47494 ddimageortext: NOBUG new icon for question type 2011-08-08 15:38:07 +07:00
Jamie Pratt 8262ace5d0 MDL-47494 ddimageortext: NOBUG added server side resizing of oversize images. 2011-08-02 09:18:32 +07:00
Jamie Pratt a61b274b69 MDL-47494 ddimageortext: NOBUG passing values of max heights and widths into js from PHP constants. 2011-08-01 21:12:45 +07:00
Jamie Pratt 649e58e904 MDL-47494 ddimageortext: NOBUG implemented resizing of images,validity checks on form data, different
sizes for margins so all items in a group take up the same screen real estate.
2011-08-01 20:42:18 +07:00
Jamie Pratt 0fe992a97d MDL-47494 ddimageortext: NOBUG made a lot of progress with javascript necessary for question editing form
and question attempt UI.
2011-07-22 16:25:14 +07:00
Tim Hunt fd670f534a MDL-47494 ddwtos: Also, fix the ou-qtype unit test failures. #940 2011-07-05 18:03:10 +01:00
Tim Hunt 0023a1ec77 MDL-47494 ddwtos: Fix ddwtos and gapselect unit tests #67 2011-07-05 17:09:02 +01:00
Tim Hunt f1f181f4b0 MDL-47494 gapselect: Latest gapselect qtype fixes from Jamie. #23 2011-07-05 16:45:23 +01:00
Tim Hunt 4ce6bba9a0 MDL-47494 gapselect: Fix ddwtos and gapselect unit tests #67 2011-07-05 16:36:39 +01:00
Jamie Pratt dd9ae7a0d7 MDL-47494 gapselect: NOBUG noticed use of deprecated database function. 2011-07-05 16:31:59 +01:00
Colin Chambers 287273c60c MDL-47494 ddwtos: ddwtos fix problems in Firefox. #383 2011-07-05 16:19:15 +01:00
Colin Chambers 5a28b55573 MDL-47494 ddwtos: used longer timeout for xy resize function on ie7 #738 2011-07-05 16:19:05 +01:00
Jamie Pratt e79dad73e1 MDL-47494 ddimageortext: NOBUG completed most of the basics of the question editing form and saving of
data in database.
2011-06-30 16:43:33 +07:00
Tim Hunt 8e4e31fb3d MDL-47494 ddwtos: Typo in DDWtoS foreign key definition #874 2011-06-28 11:06:37 +01:00
Jamie Pratt a821983e4e MDL-47494 gapselect: NOBUG noticed use of deprecated database function. 2011-06-27 15:12:57 +07:00
Jamie Pratt 943b33da7e MDL-47494 ddimageortext: NOBUG changing file names to qtype name 2011-06-23 15:06:56 +07:00
Jamie Pratt b0a8a7ebbd MDL-47494 ddimageortext: NOBUG adding a TODO.txt to track tasks. 2011-06-23 14:58:20 +07:00
Jamie Pratt 1d41020572 MDL-47494 ddimageortext: NOBUG db structure for this question type. 2011-06-23 14:57:35 +07:00
Jamie Pratt a709851155 MDL-47494 ddimageortext: NOBUG search and replace for ddwtos, replaced with ddimagetoimage 2011-06-21 19:45:14 +07:00
Jamie Pratt 339481f106 MDL-47494 ddimageortext: NOBUG new README.txt for new question type ddimagetoimage - Darg and Drop Image
to Image. I forked the existing ddwtos question type which has a lot in common
with this new question type to give me a quick start setting up the needed
infrastructure for a Moodle question type plug in.
2011-06-21 19:37:24 +07:00
Tim Hunt a2d6ea7a41 MDL-47494 gapselect: Implement the new variants handling. 2011-05-26 22:10:13 +01:00
Tim Hunt 1b7e0abcb8 MDL-47494 ddwtos: Implement the new variants handling. 2011-05-26 22:09:46 +01:00
Tim Hunt a8448b3f79 MDL-47494 ddimageortext: Implement the new variants handling. 2011-05-26 22:09:46 +01:00
Tim Hunt 0d881bcff9 MDL-47494 ddwtos: Updated the readme file to add install instructions. 2011-05-16 05:01:14 -07:00
Tim Hunt 47b5deb6ae MDL-47494 ddimageortext: Updated the readme file to add install instructions. 2011-05-16 05:01:14 -07:00
Tim Hunt 083cf9f317 MDL-47494 gapselect: Added install instructions to the README.txt file. 2011-05-16 04:58:45 -07:00
Tim Hunt 8654d04080 MDL-47494 ddwtos: Add a readme file. 2011-05-15 23:07:56 +01:00
Tim Hunt 3ea20c8f7f MDL-47494 ddimageortext: Add a readme file. 2011-05-15 23:07:56 +01:00
Tim Hunt 1421af37ad MDL-47494 gapselect: Add a readme. 2011-05-15 22:48:45 +01:00
Tim Hunt 9fe4dd964b MDL-47494 ddwtos: Fix some more codechecker issues. 2011-05-14 22:53:25 +01:00
Tim Hunt fa4a86a3e5 MDL-47494 ddimageortext: Fix some more codechecker issues. 2011-05-14 22:53:25 +01:00
Tim Hunt 17fdaa42f6 MDL-47494 gapselect: Fix some more codechecker issues. 2011-05-14 22:53:25 +01:00
Tim Hunt 13d7b21968 MDL-47494 ddwtos: MDL-27408 update all question and quiz plugin version.php files. 2011-05-12 23:18:47 +01:00
Tim Hunt bc4f8bcb79 MDL-47494 ddimageortext: MDL-27408 update all question and quiz plugin version.php files. 2011-05-12 23:18:47 +01:00
Tim Hunt 895a2d9538 MDL-47494 gapselect: MDL-27408 update all question and quiz plugin version.php files. 2011-05-12 23:18:47 +01:00
Wale Olujide 4aeb04bba4 MDL-47494 gapselect: Fix for minor css issue for wip#372 2011-05-10 11:45:08 +01:00
Tim Hunt 77812de332 MDL-47494 ddwtos: Finished backup and restore of attempt data. Yay 2011-05-05 21:26:25 +01:00
Tim Hunt f32281ebf6 MDL-47494 ddimageortext: Finished backup and restore of attempt data. Yay 2011-05-05 21:26:25 +01:00
Tim Hunt 7b4805d6e2 MDL-47494 gapselect: Finished backup and restore of attempt data. Yay 2011-05-05 21:26:25 +01:00
Tim Hunt dfccb172a4 MDL-47494 ddwtos: numerical qtype: assorted changes
1. database upgrade to merge instructions into the questiontext field,
and remove the UNITDISPLAY option.

2. Changes to the validation in deferred feedback mode, so students
are warned about incomplete answers.

3. Using this to wark students if they enter an answer that is not
recognised as a number.
2011-04-28 20:06:47 +01:00
Tim Hunt 332641ac72 MDL-47494 ddimageortext: numerical qtype: assorted changes
1. database upgrade to merge instructions into the questiontext field,
and remove the UNITDISPLAY option.

2. Changes to the validation in deferred feedback mode, so students
are warned about incomplete answers.

3. Using this to wark students if they enter an answer that is not
recognised as a number.
2011-04-28 20:06:47 +01:00
Tim Hunt 6229791a29 MDL-47494 ddwtos: Better way of handling the creation of test questions for different question types. 2011-04-28 20:06:37 +01:00
Tim Hunt 46b0a9735c MDL-47494 ddimageortext: Better way of handling the creation of test questions for different question types. 2011-04-28 20:06:37 +01:00
Tim Hunt 060e029448 MDL-47494 gapselect: Fix codechecker issues in qtype_gapselect. 2011-04-08 05:05:22 +01:00
Tim Hunt 29929b5b2c MDL-47494 ddwtos: Fix codechecker problems in match, description and ddwtos qtypes. 2011-04-05 17:54:39 +01:00
Tim Hunt 944829e930 MDL-47494 ddimageortext: Fix codechecker problems in match, description and ddwtos qtypes. 2011-04-05 17:54:39 +01:00
Tim Hunt 046d8165f8 MDL-47494 gapselect: Add lots of missing public/protected/private. 2011-03-23 16:22:25 +00:00
Tim Hunt 092c416ebc MDL-47494 ddwtos: Add lots of missing public/protected/private. 2011-03-23 16:22:25 +00:00
Tim Hunt adebc4e51d MDL-47494 ddimageortext: Add lots of missing public/protected/private. 2011-03-23 16:22:25 +00:00
Tim Hunt aa6a0ff0f8 MDL-47494 gapselect: Question import, support for files in hints.
Also fix some minor bugs and unit tests.
2011-03-23 14:27:22 +00:00
Tim Hunt 0234ddc87f MDL-47494 ddwtos: Question import, support for files in hints.
Also fix some minor bugs and unit tests.
2011-03-23 14:27:22 +00:00
Tim Hunt c9826b0a30 MDL-47494 ddimageortext: Question import, support for files in hints.
Also fix some minor bugs and unit tests.
2011-03-23 14:27:22 +00:00
Tim Hunt 75cd9829a3 MDL-47494 gapselect: Update quiz and questions backup and restore.
This does not include user data yet, and it needs more testing.
2011-03-02 17:42:51 +00:00
Tim Hunt a74bf71919 MDL-47494 ddwtos: Update quiz and questions backup and restore.
This does not include user data yet, and it needs more testing.
2011-03-02 17:42:51 +00:00
Tim Hunt 01bac81a41 MDL-47494 ddimageortext: Update quiz and questions backup and restore.
This does not include user data yet, and it needs more testing.
2011-03-02 17:42:51 +00:00
Tim Hunt 4ffe7ac4d6 MDL-47494 gapselect: Review and fix the format parameter to all calls to format_text. 2011-02-24 20:18:16 +00:00
Tim Hunt 1de3265e50 MDL-47494 ddwtos: Split question_definition::init_first_step into start_attempt and apply_attempt_state. 2011-02-24 19:12:42 +00:00
Tim Hunt 81f5dc53f1 MDL-47494 ddimageortext: Split question_definition::init_first_step into start_attempt and apply_attempt_state. 2011-02-24 19:12:42 +00:00
Tim Hunt 6ec101ac94 MDL-47494 gapselect: Split question_definition::init_first_step into start_attempt and apply_attempt_state. 2011-02-24 19:12:42 +00:00
Tim Hunt 468dfe7d77 MDL-47494 ddwtos: Massively reduce the number of references to quiz in the question code.
This mostly involves moving lang strings around, but I don't have time to do an AMOS script now.
2011-02-23 18:53:50 +00:00
Tim Hunt 453aded6c2 MDL-47494 ddimageortext: Massively reduce the number of references to quiz in the question code.
This mostly involves moving lang strings around, but I don't have time to do an AMOS script now.
2011-02-23 18:53:50 +00:00
Tim Hunt 462c5539b9 MDL-47494 gapselect: Eliminate integer and boolean in PHPdoc comments. should be int and bool. 2011-02-23 16:25:25 +00:00
Tim Hunt 9d55f4a5ce MDL-47494 ddwtos: Add missing defined('MOODLE_INTERNAL') || die(); 2011-02-23 16:00:20 +00:00
Tim Hunt 425362802e MDL-47494 ddimageortext: Add missing defined('MOODLE_INTERNAL') || die(); 2011-02-23 16:00:20 +00:00
Tim Hunt b28ad86a28 MDL-47494 gapselect: Add missing defined('MOODLE_INTERNAL') || die(); 2011-02-23 16:00:20 +00:00
Tim Hunt 3a4ac328c5 MDL-47494 ddwtos: Fix @package names and PHPdoc layout. 2011-02-23 13:38:16 +00:00
Tim Hunt 5b4602d267 MDL-47494 ddimageortext: Fix @package names and PHPdoc layout. 2011-02-23 13:38:16 +00:00
Tim Hunt 9df0480d48 MDL-47494 gapselect: Fix @package names and PHPdoc layout. 2011-02-23 13:38:16 +00:00
Tim Hunt cb30b30f97 MDL-47494 ddwtos: Add @package and GPL boiler-plate to files in /question. 2011-02-22 19:59:12 +00:00
Tim Hunt c205413ad9 MDL-47494 ddimageortext: Add @package and GPL boiler-plate to files in /question. 2011-02-22 19:59:12 +00:00
Tim Hunt f7dd2d4447 MDL-47494 gapselect: Add @package and GPL boiler-plate to files in /question. 2011-02-22 19:59:12 +00:00
Tim Hunt 60cbb9edb2 MDL-47494 ddwtos: Fix new stdClass -> stdClass(), and trailing whitespace. 2011-02-21 18:10:19 +00:00
Tim Hunt 3919f482a7 MDL-47494 ddimageortext: Fix new stdClass -> stdClass(), and trailing whitespace. 2011-02-21 18:10:19 +00:00
Tim Hunt 5fa78cb4a2 MDL-47494 gapselect: Fix new stdClass -> stdClass(), and trailing whitespace. 2011-02-21 18:10:19 +00:00
Tim Hunt 03269a959e MDL-47494 gapselect: Quiz editing now works, as does the random question type.
However, all this needs more testing.

Also, a bit of a purge of training whitespace and global .
2011-02-10 20:50:18 +00:00
Tim Hunt f7ecca1ccd MDL-47494 ddwtos: Images in questions now work in quiz attempts. 2011-02-09 20:33:51 +00:00
Tim Hunt 7368987a5f MDL-47494 ddimageortext: Images in questions now work in quiz attempts. 2011-02-09 20:33:51 +00:00
Tim Hunt 7c98182ebd MDL-47494 gapselect: Images in questions now work in quiz attempts. 2011-02-09 20:33:51 +00:00
Tim Hunt 5ac7176c7b MDL-47494 ddwtos: Finish making ddwtos work, mostly. Also various other JS fixes.
This JavaScript really needs to be rewritten to use YUI3.
2011-02-02 19:03:38 +00:00
Tim Hunt 303bf01902 MDL-47494 ddimageortext: Finish making ddwtos work, mostly. Also various other JS fixes.
This JavaScript really needs to be rewritten to use YUI3.
2011-02-02 19:03:38 +00:00
Tim Hunt e45d37bbf3 MDL-47494 gapselect: Finish making ddwtos work, mostly. Also various other JS fixes.
This JavaScript really needs to be rewritten to use YUI3.
2011-02-02 19:03:38 +00:00
Tim Hunt 6c5435420f MDL-47494 ddwtos: ddwtos and gapselect qtypes now very nearly work.
Todo rendering questions with files, and ddwtos javascript.
2011-02-01 23:44:40 +00:00
Tim Hunt 428b36687d MDL-47494 ddimageortext: ddwtos and gapselect qtypes now very nearly work.
Todo rendering questions with files, and ddwtos javascript.
2011-02-01 23:44:40 +00:00
Tim Hunt 721ef2ea31 MDL-47494 gapselect: ddwtos and gapselect qtypes now very nearly work.
Todo rendering questions with files, and ddwtos javascript.
2011-02-01 23:44:40 +00:00
Tim Hunt 5f5ee7d76a MDL-47494 ddwtos: Now all the unit tests for the the ddwtos and gapselect qtypes pass. 2011-02-01 11:40:29 +00:00
Tim Hunt 08c1d356eb MDL-47494 ddimageortext: Now all the unit tests for the the ddwtos and gapselect qtypes pass. 2011-02-01 11:40:29 +00:00
Tim Hunt 7540fcdcc2 MDL-47494 gapselect: Now all the unit tests for the the ddwtos and gapselect qtypes pass. 2011-02-01 11:40:29 +00:00
Tim Hunt e9cd990297 MDL-47494 ddwtos: More work on the ddwtos and gapselect qtypes.
Now there are no longer fatal errors that break other qtypes, but these two qtypes still not work completely. More to come.
2011-01-31 18:07:38 +00:00
Tim Hunt 77e268e1e9 MDL-47494 ddimageortext: More work on the ddwtos and gapselect qtypes.
Now there are no longer fatal errors that break other qtypes, but these two qtypes still not work completely. More to come.
2011-01-31 18:07:38 +00:00
Tim Hunt 43df6cac07 MDL-47494 gapselect: More work on the ddwtos and gapselect qtypes.
Now there are no longer fatal errors that break other qtypes, but these two qtypes still not work completely. More to come.
2011-01-31 18:07:38 +00:00
Tim Hunt 61381e5066 MDL-47494 ddwtos: work-in-progress converting the ddwtos and gapselect qtypes. 2011-01-28 19:07:33 +00:00
Tim Hunt a2bb148ae3 MDL-47494 ddimageortext: work-in-progress converting the ddwtos and gapselect qtypes. 2011-01-28 19:07:33 +00:00
Tim Hunt 0d24b17a89 MDL-47494 gapselect: work-in-progress converting the ddwtos and gapselect qtypes. 2011-01-28 19:07:33 +00:00
4524 changed files with 368974 additions and 155222 deletions
+2 -1
View File
@@ -35,7 +35,8 @@
"plusplus": false,
"predef": [
"M",
"define"
"define",
"require"
],
"proto": false,
"regexdash": false,
+175
View File
@@ -0,0 +1,175 @@
# PLEASE NOTE: Travis is not currently utilised by the Moodle core integration
# process (which uses our internal CI system) this file is here for the benefit
# of community developers git clones - see MDL-51458.
sudo: false
# We currently disable Travis notifications entirely until https://github.com/travis-ci/travis-ci/issues/4976
# is fixed.
notifications:
email: false
language: php
php:
# We only run the highest and lowest supported versions to reduce the load on travis-ci.org.
- 7.0
# - 5.6
# - 5.5
- 5.4
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 5.6, 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.
# Run unit tests on MySQL
- DB=mysqli PHPUNIT=true INSTALL=false CITEST=false
# Run CI Tests without running PHPUnit.
- DB=none PHPUNIT=false INSTALL=false CITEST=true
# Run unit tests on Postgres
- DB=pgsql PHPUNIT=true INSTALL=false CITEST=false
matrix:
# Enable fast finish.
# This will fail the build if a single job fails (except those in allow_failures).
# It will not stop the jobs from running.
fast_finish: true
exclude:
# MySQL - it's just too slow.
# Exclude it on all versions except for 7.0
# - env: DB=mysqli PHPUNIT=true INSTALL=false CITEST=false
# php: 5.6
#
# - env: DB=mysqli PHPUNIT=true INSTALL=false CITEST=false
# php: 5.5
- env: DB=mysqli PHPUNIT=true INSTALL=false CITEST=false
php: 5.4
cache:
directories:
- $HOME/.composer/cache
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
# Set the encrypted GITHUB_TOKEN if it's available to raise the API limit.
- if [ -n "$GITHUB_APITOKEN" ]; then composer config github-oauth.github.com $GITHUB_APITOKEN; fi
# Install composer dependencies.
# We need --no-interaction in case we hit API limits for composer. This causes it to fall back to a standard clone.
# Typically it should be able to use the Composer cache if any other job has already completed before we started here.
- travis_retry composer install --prefer-dist --no-interaction
before_script:
- >
if [ "$INSTALL" = 'true' -o "$PHPUNIT" = 'true' ];
then
# Copy generic configuration in place.
cp config-dist.php config.php ;
# Create the moodledata directory.
mkdir -p "$HOME"/roots/base
# The database name and password.
sed -i \
-e "s%= 'moodle'%= 'travis_ci_test'%" \
-e "s%= 'password'%= ''%" \
config.php ;
# The wwwroot and dataroot.
sed -i \
-e "s%http://example.com/moodle%http://localhost%" \
-e "s%/home/example/moodledata%/home/travis/roots/base%" \
config.php ;
if [ "$DB" = 'pgsql' ];
then
# Postgres-specific setup.
sed -i \
-e "s%= 'username'%= 'postgres'%" \
config.php ;
psql -c 'CREATE DATABASE travis_ci_test;' -U postgres;
fi
if [ "$DB" = 'mysqli' ];
then
# MySQL-specific setup.
sed -i \
-e "s%= 'pgsql'%= 'mysqli'%" \
-e "s%= 'username'%= 'travis'%" \
config.php;
mysql -u root -e 'SET GLOBAL innodb_file_format=barracuda;' ;
mysql -u root -e 'SET GLOBAL innodb_file_per_table=ON;' ;
mysql -e 'CREATE DATABASE travis_ci_test DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;' ;
fi
if [ "$PHPUNIT" = 'true' ];
then
# Create a directory for the phpunit dataroot.
mkdir -p "$HOME"/roots/phpunit
# The phpunit dataroot and prefix..
sed -i \
-e "/require_once/i \\\$CFG->phpunit_dataroot = '\/home\/travis\/roots\/phpunit';" \
-e "/require_once/i \\\$CFG->phpunit_prefix = 'p_';" \
config.php ;
# Initialise PHPUnit for Moodle.
php admin/tool/phpunit/cli/init.php
fi
fi
script:
########################################################################
# PHPUnit
########################################################################
- >
if [ "$PHPUNIT" = 'true' ];
then
vendor/bin/phpunit;
fi
########################################################################
# CI Tests
########################################################################
- >
if [ "$CITEST" = 'true' ];
then
# Note - this is deliberately placed in the script section as we
# should not add any code until after phpunit has run.
# The following repositories are required.
# The local_ci repository does the actual checking.
git clone https://github.com/moodlehq/moodle-local_ci.git local/ci
# We need the official upstream for comparison
git remote add upstream https://github.com/moodle/moodle.git;
git fetch upstream MOODLE_30_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`
# Variables required by our linter.
export gitcmd=`which git`;
export gitdir="$TRAVIS_BUILD_DIR";
export phpcmd=`which php`;
fi
# Actually run the CI Tests - do this outside of the main test to make output clearer.
- >
if [ "$CITEST" = 'true' ];
then
bash local/ci/php_lint/php_lint.sh;
fi
+122 -21
View File
@@ -24,6 +24,7 @@
module.exports = function(grunt) {
var path = require('path'),
fs = require('fs'),
tasks = {},
cwd = process.env.PWD || process.cwd();
@@ -49,6 +50,17 @@ module.exports = function(grunt) {
}
)
}
},
less: {
bootstrapbase: {
files: {
"theme/bootstrapbase/style/moodle.css": "theme/bootstrapbase/less/moodle.less",
"theme/bootstrapbase/style/editor.css": "theme/bootstrapbase/less/editor.less",
},
options: {
compress: true
}
}
}
});
@@ -102,22 +114,107 @@ module.exports = function(grunt) {
args.push('--lint-stderr');
}
// Actually run shifter.
shifter = exec("node", args, {
cwd: cwd,
stdio: 'inherit',
env: process.env
});
if (grunt.option('no-color')) {
args.push('--color=false');
}
// Tidy up after exec.
shifter.on('exit', function (code) {
if (code) {
grunt.fail.fatal('Shifter failed with code: ' + code);
} else {
grunt.log.ok('Shifter build complete.');
done();
}
});
var execShifter = function() {
shifter = exec("node", args, {
cwd: cwd,
stdio: 'inherit',
env: process.env
});
// Tidy up after exec.
shifter.on('exit', function (code) {
if (code) {
grunt.fail.fatal('Shifter failed with code: ' + code);
} else {
grunt.log.ok('Shifter build complete.');
done();
}
});
};
// Actually run shifter.
if (!options.recursive) {
execShifter();
} else {
// Check that there are yui modules otherwise shifter ends with exit code 1.
var found = false;
var hasYuiModules = function(directory, callback) {
fs.readdir(directory, function(err, files) {
if (err) {
return callback(err, null);
}
// If we already found a match there is no need to continue scanning.
if (found === true) {
return;
}
// We need to track the number of files to know when we return a result.
var pending = files.length;
// We first check files, so if there is a match we don't need further
// async calls and we just return a true.
for (var i = 0; i < files.length; i++) {
if (files[i] === 'yui') {
return callback(null, true);
}
}
// Iterate through subdirs if there were no matches.
files.forEach(function (file) {
var p = path.join(directory, file);
stat = fs.statSync(p);
if (!stat.isDirectory()) {
pending--;
} else {
// We defer the pending-1 until we scan the whole dir and subdirs.
hasYuiModules(p, function(err, result) {
if (err) {
return callback(err);
}
if (result === true) {
// Once we get a true we notify the caller.
found = true;
return callback(null, true);
}
pending--;
if (pending === 0) {
// Notify the caller that the whole dir has been scaned and there are no matches.
return callback(null, false);
}
});
}
// No subdirs here, otherwise the return would be deferred until all subdirs are scanned.
if (pending === 0) {
return callback(null, false);
}
});
});
};
hasYuiModules(cwd, function(err, result) {
if (err) {
grunt.fail.fatal(err.message);
}
if (result === true) {
execShifter();
} else {
grunt.log.ok('No YUI modules to build.');
done();
}
});
}
};
tasks.startup = function() {
@@ -126,13 +223,11 @@ module.exports = function(grunt) {
grunt.task.run('shifter');
// Are we in an AMD directory?
} else if (path.basename(cwd) == 'amd') {
grunt.task.run('jshint');
grunt.task.run('uglify');
grunt.task.run('amd');
} else {
// Run them all!.
grunt.task.run('shifter');
grunt.task.run('jshint');
grunt.task.run('uglify');
grunt.task.run('css');
grunt.task.run('js');
}
};
@@ -140,9 +235,15 @@ module.exports = function(grunt) {
// Register NPM tasks.
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-less');
// Register the shifter task.
// Register JS tasks.
grunt.registerTask('shifter', 'Run Shifter against the current directory', tasks.shifter);
grunt.registerTask('amd', ['jshint', 'uglify']);
grunt.registerTask('js', ['amd', 'shifter']);
// Register CSS taks.
grunt.registerTask('css', ['less:bootstrapbase']);
// Register the startup task.
grunt.registerTask('startup', 'Run the correct tasks for the current directory', tasks.startup);
+2 -2
View File
@@ -64,6 +64,8 @@ echo "<form id=\"authmenu\" method=\"post\" action=\"auth_config.php\">\n";
echo "<div>\n";
echo "<input type=\"hidden\" name=\"sesskey\" value=\"".sesskey()."\" />\n";
echo "<input type=\"hidden\" name=\"auth\" value=\"".$auth."\" />\n";
// HACK to prevent browsers from automatically inserting the user's password into the wrong fields.
echo prevent_form_autofill_password();
// auth plugin description
echo $OUTPUT->box_start();
@@ -146,8 +148,6 @@ function print_auth_lock_options($auth, $user_fields, $helptext, $retrieveopts,
// If custom field then pick name from database.
$fieldshortname = str_replace('profile_field_', '', $fieldname);
$fieldname = $customfieldname[$fieldshortname]->name;
} elseif (preg_match('/^(.+?)(\d+)$/', $fieldname, $matches)) {
$fieldname = get_string($matches[1]) . ' ' . $matches[2];
} elseif ($fieldname == 'url') {
$fieldname = get_string('webpage');
} else {
+2 -1
View File
@@ -155,7 +155,8 @@
} else if ($blocksettings instanceof admin_settingpage) {
$settings = '<a href="'.$CFG->wwwroot.'/'.$CFG->admin.'/settings.php?section=blocksetting'.$block->name.'">'.$strsettings.'</a>';
} else {
$settings = '<a href="block.php?block='.$blockid.'">'.$strsettings.'</a>';
debugging('Warning: block_'.$block->name.' returns true in has_config() but does not provide a settings.php file',
DEBUG_DEVELOPER);
}
}
@@ -0,0 +1,103 @@
<?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/>.
/**
* This script fixes orphaned question categories.
*
* Orphaned question categories have had their associated context deleted
* but the category itself remains in the database with an invalid context.
*
* @package core
* @subpackage cli
* @copyright 2013 Tyler Bannister (tyler.bannister@remote-learner.net)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('CLI_SCRIPT', true);
require(__DIR__.'/../../config.php');
require_once($CFG->libdir.'/clilib.php');
require_once($CFG->libdir.'/questionlib.php');
$long = array('fix' => false, 'help' => false);
$short = array('f' => 'fix', 'h' => 'help');
// Now get cli options.
list($options, $unrecognized) = cli_get_params($long, $short);
if ($unrecognized) {
$unrecognized = implode("\n ", $unrecognized);
cli_error(get_string('cliunknowoption', 'admin', $unrecognized));
}
if ($options['help']) {
$help =
"Fix orphaned question categories.
This scripts detects question categories that have had their
context deleted, thus severing them from their original purpose.
This script will find the orphaned categories and delete the unused
questions in each category found. Used questions will not be
deleted, instead they will be moved to a rescue question category.
Options:
-h, --help Print out this help
-f, --fix Fix the orphaned question categories in the DB.
If not specified only check and report problems to STDERR.
Example:
\$sudo -u www-data /usr/bin/php admin/cli/fix_orphaned_question_categories.php
\$sudo -u www-data /usr/bin/php admin/cli/fix_orphaned_question_categories.php -f
";
echo $help;
die;
}
cli_heading('Checking for orphaned categories');
$sql = 'SELECT qc.id, qc.contextid, qc.name
FROM {question_categories} qc
LEFT JOIN {context} c ON qc.contextid = c.id
WHERE c.id IS NULL';
$categories = $DB->get_recordset_sql($sql);
$i = 0;
foreach ($categories as $category) {
$i += 1;
echo "Found orphaned category: {$category->name}\n";
if (!empty($options['fix'])) {
echo "Cleaning...";
// One transaction per category.
$transaction = $DB->start_delegated_transaction();
question_category_delete_safe($category);
$transaction->allow_commit();
echo " Done!\n";
}
}
if (($i > 0) && !empty($options['fix'])) {
echo "Found and removed {$i} orphaned question categories\n";
} else if ($i > 0) {
echo "Found {$i} orphaned question categories. To fix, run:\n";
echo "\$sudo -u www-data /usr/bin/php admin/cli/fix_orphaned_question_categories.php --fix\n";
} else {
echo "No orphaned question categories found.\n";
}
$categories->close();
+50 -10
View File
@@ -74,12 +74,14 @@ Options:
--adminpass=PASSWORD Password for the moodle admin account,
required in non-interactive mode.
--adminemail=STRING Email address for the moodle admin account.
--upgradekey=STRING The upgrade key to be set in the config.php, leave empty to not set it.
--non-interactive No interactive questions, installation fails if any
problem encountered.
--agree-license Indicates agreement with software license,
required in non-interactive mode.
--allow-unstable Install even if the version is not marked as stable yet,
required in non-interactive mode.
--skip-database Stop the installation before installing the database.
-h, --help Print out this help
Example:
@@ -257,9 +259,11 @@ list($options, $unrecognized) = cli_get_params(
'adminuser' => 'admin',
'adminpass' => '',
'adminemail' => '',
'upgradekey' => '',
'non-interactive' => false,
'agree-license' => false,
'allow-unstable' => false,
'skip-database' => false,
'help' => false
),
array(
@@ -271,7 +275,8 @@ $interactive = empty($options['non-interactive']);
// set up language
$lang = clean_param($options['lang'], PARAM_SAFEDIR);
if (file_exists($CFG->dirroot.'/install/lang/'.$lang)) {
$languages = get_string_manager()->get_list_of_translations();
if (array_key_exists($lang, $languages)) {
$CFG->lang = $lang;
}
@@ -286,28 +291,41 @@ if ($options['help']) {
}
//Print header
cli_logo();
echo PHP_EOL;
echo get_string('cliinstallheader', 'install', $CFG->target_release)."\n";
//Fist select language
if ($interactive) {
cli_separator();
$languages = get_string_manager()->get_list_of_translations();
// Do not put the langs into columns because it is not compatible with RTL.
$langlist = implode("\n", $languages);
$default = $CFG->lang;
cli_heading(get_string('availablelangs', 'install'));
echo $langlist."\n";
cli_heading(get_string('chooselanguagehead', 'install'));
if (array_key_exists($default, $languages)) {
echo $default.' - '.$languages[$default]."\n";
}
if ($default !== 'en') {
echo 'en - English (en)'."\n";
}
echo '? - '.get_string('availablelangs', 'install')."\n";
$prompt = get_string('clitypevaluedefault', 'admin', $CFG->lang);
$error = '';
do {
echo $error;
$input = cli_input($prompt, $default);
$input = clean_param($input, PARAM_SAFEDIR);
if (!file_exists($CFG->dirroot.'/install/lang/'.$input)) {
$error = get_string('cliincorrectvalueretry', 'admin')."\n";
if ($input === '?') {
echo implode("\n", $languages)."\n";
$error = "\n";
} else {
$error = '';
$input = clean_param($input, PARAM_SAFEDIR);
if (!array_key_exists($input, $languages)) {
$error = get_string('cliincorrectvalueretry', 'admin')."\n";
} else {
$error = '';
}
}
} while ($error !== '');
$CFG->lang = $input;
@@ -706,6 +724,24 @@ if (!empty($options['adminemail']) && !validate_email($options['adminemail'])) {
cli_error(get_string('cliincorrectvalueerror', 'admin', $a));
}
// Ask for the upgrade key.
if ($interactive) {
cli_separator();
cli_heading(get_string('upgradekeyset', 'admin'));
if ($options['upgradekey'] !== '') {
$prompt = get_string('clitypevaluedefault', 'admin', $options['upgradekey']);
$options['upgradekey'] = cli_input($prompt, $options['upgradekey']);
} else {
$prompt = get_string('clitypevalue', 'admin');
$options['upgradekey'] = cli_input($prompt);
}
}
// Set the upgrade key if it was provided.
if ($options['upgradekey'] !== '') {
$CFG->upgradekey = $options['upgradekey'];
}
if ($interactive) {
if (!$options['agree-license']) {
cli_separator();
@@ -770,7 +806,11 @@ if (!core_plugin_manager::instance()->all_plugins_ok($version, $failed)) {
cli_error(get_string('pluginschecktodo', 'admin'));
}
install_cli_database($options, $interactive);
if (!$options['skip-database']) {
install_cli_database($options, $interactive);
} else {
echo get_string('cliskipdatabase', 'install')."\n";
}
echo get_string('cliinstallfinished', 'install')."\n";
exit(0); // 0 means success
+161
View File
@@ -1027,6 +1027,7 @@
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="5.4.4" level="required">
<RESTRICT function="restrict_php_version_7" message="unsupportedphpversion7" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -1134,6 +1135,16 @@
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="2.8" requires="2.2">
@@ -1150,6 +1161,7 @@
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="5.4.4" level="required">
<RESTRICT function="restrict_php_version_7" message="unsupportedphpversion7" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -1257,9 +1269,158 @@
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="2.9" requires="2.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="5.5.31" />
<VENDOR name="mysql" version="5.5.31" />
<VENDOR name="postgres" version="9.1" />
<VENDOR name="mssql" version="10.0" />
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="5.4.4" level="required">
<RESTRICT function="restrict_php_version_7" message="unsupportedphpversion7" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
<FEEDBACK>
<ON_CHECK message="mbstringrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
<FEEDBACK>
<ON_CHECK message="opensslrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlrpc" level="optional">
<FEEDBACK>
<ON_CHECK message="xmlrpcrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="optional">
<FEEDBACK>
<ON_CHECK message="intlrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="3.0" requires="2.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
+303 -53
View File
@@ -54,6 +54,16 @@ if (!function_exists('json_encode') || !function_exists('json_decode')) {
define('NO_OUTPUT_BUFFERING', true);
if (isset($_POST['upgradekey'])) {
// Before you start reporting issues about the collision attacks against
// SHA-1, you should understand that we are not actually attempting to do
// any cryptography here. This is hashed purely so that the key is not
// that apparent in the address bar itself. Anyone who catches the HTTP
// traffic can immediately use it as a valid admin key.
header('Location: index.php?cache=0&upgradekeyhash='.sha1($_POST['upgradekey']));
die();
}
if ((isset($_GET['cache']) and $_GET['cache'] === '0')
or (isset($_POST['cache']) and $_POST['cache'] === '0')
or (!isset($_POST['cache']) and !isset($_GET['cache']) and empty($_GET['sesskey']) and empty($_POST['sesskey']))) {
@@ -88,22 +98,51 @@ core_component::get_core_subsystems();
require_once($CFG->libdir.'/adminlib.php'); // various admin-only functions
require_once($CFG->libdir.'/upgradelib.php'); // general upgrade/install related functions
$confirmupgrade = optional_param('confirmupgrade', 0, PARAM_BOOL);
$confirmrelease = optional_param('confirmrelease', 0, PARAM_BOOL);
$confirmplugins = optional_param('confirmplugincheck', 0, PARAM_BOOL);
$showallplugins = optional_param('showallplugins', 0, PARAM_BOOL);
$agreelicense = optional_param('agreelicense', 0, PARAM_BOOL);
$fetchupdates = optional_param('fetchupdates', 0, PARAM_BOOL);
$newaddonreq = optional_param('installaddonrequest', null, PARAM_RAW);
$confirmupgrade = optional_param('confirmupgrade', 0, PARAM_BOOL); // Core upgrade confirmed?
$confirmrelease = optional_param('confirmrelease', 0, PARAM_BOOL); // Core release info and server checks confirmed?
$confirmplugins = optional_param('confirmplugincheck', 0, PARAM_BOOL); // Plugins check page confirmed?
$showallplugins = optional_param('showallplugins', 0, PARAM_BOOL); // Show all plugins on the plugins check page?
$agreelicense = optional_param('agreelicense', 0, PARAM_BOOL); // GPL license confirmed for installation?
$fetchupdates = optional_param('fetchupdates', 0, PARAM_BOOL); // Should check for available updates?
$newaddonreq = optional_param('installaddonrequest', null, PARAM_RAW); // Plugin installation requested at moodle.org/plugins.
$upgradekeyhash = optional_param('upgradekeyhash', null, PARAM_ALPHANUM); // Hash of provided upgrade key.
$installdep = optional_param('installdep', null, PARAM_COMPONENT); // Install given missing dependency (required plugin).
$installdepx = optional_param('installdepx', false, PARAM_BOOL); // Install all missing dependencies.
$confirminstalldep = optional_param('confirminstalldep', false, PARAM_BOOL); // Installing dependencies confirmed.
$abortinstall = optional_param('abortinstall', null, PARAM_COMPONENT); // Cancel installation of the given new plugin.
$abortinstallx = optional_param('abortinstallx', null, PARAM_BOOL); // Cancel installation of all new plugins.
$confirmabortinstall = optional_param('confirmabortinstall', false, PARAM_BOOL); // Installation cancel confirmed.
$abortupgrade = optional_param('abortupgrade', null, PARAM_COMPONENT); // Cancel upgrade of the given existing plugin.
$abortupgradex = optional_param('abortupgradex', null, PARAM_BOOL); // Cancel upgrade of all upgradable plugins.
$confirmabortupgrade = optional_param('confirmabortupgrade', false, PARAM_BOOL); // Upgrade cancel confirmed.
$installupdate = optional_param('installupdate', null, PARAM_COMPONENT); // Install given available update.
$installupdateversion = optional_param('installupdateversion', null, PARAM_INT); // Version of the available update to install.
$installupdatex = optional_param('installupdatex', false, PARAM_BOOL); // Install all available plugin updates.
$confirminstallupdate = optional_param('confirminstallupdate', false, PARAM_BOOL); // Available update(s) install confirmed?
if (!empty($CFG->disableupdateautodeploy)) {
// Invalidate all requests to install plugins via the admin UI.
$newaddonreq = null;
$installdep = null;
$installdepx = false;
$abortupgrade = null;
$abortupgradex = null;
$installupdate = null;
$installupdateversion = null;
$installupdatex = false;
}
// Set up PAGE.
$url = new moodle_url('/admin/index.php');
$url->param('cache', $cache);
if (isset($upgradekeyhash)) {
$url->param('upgradekeyhash', $upgradekeyhash);
}
$PAGE->set_url($url);
unset($url);
// Are we returning from an add-on installation request at moodle.org/plugins?
if ($newaddonreq and !$cache and empty($CFG->disableonclickaddoninstall)) {
if ($newaddonreq and !$cache and empty($CFG->disableupdateautodeploy)) {
$target = new moodle_url('/admin/tool/installaddon/index.php', array(
'installaddonrequest' => $newaddonreq,
'confirm' => 0));
@@ -174,7 +213,6 @@ if (!core_tables_exist()) {
$PAGE->set_heading($strinstallation);
$PAGE->set_cacheable(false);
/** @var core_admin_renderer $output */
$output = $PAGE->get_renderer('core', 'admin');
echo $output->install_licence_page();
die();
@@ -189,7 +227,6 @@ if (!core_tables_exist()) {
$PAGE->set_heading($strinstallation . ' - Moodle ' . $CFG->target_release);
$PAGE->set_cacheable(false);
/** @var core_admin_renderer $output */
$output = $PAGE->get_renderer('core', 'admin');
echo $output->install_environment_page($maturity, $envstatus, $environment_results, $release);
die();
@@ -203,7 +240,7 @@ if (!core_tables_exist()) {
$PAGE->set_heading($strinstallation . ' - Moodle ' . $CFG->target_release);
$output = $PAGE->get_renderer('core', 'admin');
$url = new moodle_url('/admin/index.php', array('agreelicense' => 1, 'confirmrelease' => 1, 'lang' => $CFG->lang));
$url = new moodle_url($PAGE->url, array('agreelicense' => 1, 'confirmrelease' => 1, 'lang' => $CFG->lang));
echo $output->unsatisfied_dependencies_page($version, $failed, $url);
die();
}
@@ -253,11 +290,19 @@ if (empty($CFG->version)) {
// Detect config cache inconsistency, this happens when you switch branches on dev servers.
if ($CFG->version != $DB->get_field('config', 'value', array('name'=>'version'))) {
purge_all_caches();
redirect(new moodle_url('/admin/index.php'), 'Config cache inconsistency detected, resetting caches...');
redirect(new moodle_url($PAGE->url), 'Config cache inconsistency detected, resetting caches...');
}
if (!$cache and $version > $CFG->version) { // upgrade
$PAGE->set_url(new moodle_url($PAGE->url, array(
'confirmupgrade' => $confirmupgrade,
'confirmrelease' => $confirmrelease,
'confirmplugincheck' => $confirmplugins,
)));
check_upgrade_key($upgradekeyhash);
// Warning about upgrading a test site.
$testsite = false;
if (defined('BEHAT_SITE_RUNNING')) {
@@ -273,7 +318,6 @@ if (!$cache and $version > $CFG->version) { // upgrade
// We then purge the regular caches.
purge_all_caches();
/** @var core_admin_renderer $output */
$output = $PAGE->get_renderer('core', 'admin');
if (upgrade_stale_php_files_present()) {
@@ -318,40 +362,137 @@ if (!$cache and $version > $CFG->version) { // upgrade
$PAGE->set_heading($strplugincheck);
$PAGE->set_cacheable(false);
$reloadurl = new moodle_url('/admin/index.php', array('confirmupgrade' => 1, 'confirmrelease' => 1, 'cache' => 0));
$pluginman = core_plugin_manager::instance();
// Check for available updates.
if ($fetchupdates) {
// No sesskey support guaranteed here, because sessions might not work yet.
$updateschecker = \core\update\checker::instance();
if ($updateschecker->enabled()) {
$updateschecker->fetch();
}
redirect($reloadurl);
redirect($PAGE->url);
}
$deployer = \core\update\deployer::instance();
if ($deployer->enabled()) {
$deployer->initialize($reloadurl, $reloadurl);
// Cancel all plugin installations.
if ($abortinstallx) {
// No sesskey support guaranteed here, because sessions might not work yet.
$abortables = $pluginman->list_cancellable_installations();
if ($abortables) {
if ($confirmabortinstall) {
foreach ($abortables as $plugin) {
$pluginman->cancel_plugin_installation($plugin->component);
}
redirect($PAGE->url);
} else {
$continue = new moodle_url($PAGE->url, array('abortinstallx' => $abortinstallx, 'confirmabortinstall' => 1));
echo $output->upgrade_confirm_abort_install_page($abortables, $continue);
die();
}
}
redirect($PAGE->url);
}
$deploydata = $deployer->submitted_data();
if (!empty($deploydata)) {
// No sesskey support guaranteed here, because sessions might not work yet.
echo $output->upgrade_plugin_confirm_deploy_page($deployer, $deploydata);
die();
// Cancel single plugin installation.
if ($abortinstall) {
// No sesskey support guaranteed here, because sessions might not work yet.
if ($confirmabortinstall) {
$pluginman->cancel_plugin_installation($abortinstall);
redirect($PAGE->url);
} else {
$continue = new moodle_url($PAGE->url, array('abortinstall' => $abortinstall, 'confirmabortinstall' => 1));
$abortable = $pluginman->get_plugin_info($abortinstall);
if ($pluginman->can_cancel_plugin_installation($abortable)) {
echo $output->upgrade_confirm_abort_install_page(array($abortable), $continue);
die();
}
redirect($PAGE->url);
}
}
// Cancel all plugins upgrades (that is, restore archived versions).
if ($abortupgradex) {
// No sesskey support guaranteed here, because sessions might not work yet.
$restorable = $pluginman->list_restorable_archives();
if ($restorable) {
upgrade_install_plugins($restorable, $confirmabortupgrade,
get_string('cancelupgradehead', 'core_plugin'),
new moodle_url($PAGE->url, array('abortupgradex' => 1, 'confirmabortupgrade' => 1))
);
}
redirect($PAGE->url);
}
// Cancel single plugin upgrade (that is, install the archived version).
if ($abortupgrade) {
// No sesskey support guaranteed here, because sessions might not work yet.
$restorable = $pluginman->list_restorable_archives();
if (isset($restorable[$abortupgrade])) {
$restorable = array($restorable[$abortupgrade]);
upgrade_install_plugins($restorable, $confirmabortupgrade,
get_string('cancelupgradehead', 'core_plugin'),
new moodle_url($PAGE->url, array('abortupgrade' => $abortupgrade, 'confirmabortupgrade' => 1))
);
}
redirect($PAGE->url);
}
// Install all available missing dependencies.
if ($installdepx) {
// No sesskey support guaranteed here, because sessions might not work yet.
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
upgrade_install_plugins($installable, $confirminstalldep,
get_string('dependencyinstallhead', 'core_plugin'),
new moodle_url($PAGE->url, array('installdepx' => 1, 'confirminstalldep' => 1))
);
}
// Install single available missing dependency.
if ($installdep) {
// No sesskey support guaranteed here, because sessions might not work yet.
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
if (!empty($installable[$installdep])) {
$installable = array($installable[$installdep]);
upgrade_install_plugins($installable, $confirminstalldep,
get_string('dependencyinstallhead', 'core_plugin'),
new moodle_url($PAGE->url, array('installdep' => $installdep, 'confirminstalldep' => 1))
);
}
}
// Install all available updates.
if ($installupdatex) {
// No sesskey support guaranteed here, because sessions might not work yet.
$installable = $pluginman->filter_installable($pluginman->available_updates());
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdatex' => 1, 'confirminstallupdate' => 1))
);
}
// Install single available update.
if ($installupdate and $installupdateversion) {
// No sesskey support guaranteed here, because sessions might not work yet.
if ($pluginman->is_remote_plugin_installable($installupdate, $installupdateversion)) {
$installable = array($pluginman->get_remote_plugin_info($installupdate, $installupdateversion, true));
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdate' => $installupdate,
'installupdateversion' => $installupdateversion, 'confirminstallupdate' => 1)
)
);
}
}
echo $output->upgrade_plugin_check_page(core_plugin_manager::instance(), \core\update\checker::instance(),
$version, $showallplugins, $reloadurl,
new moodle_url('/admin/index.php', array('confirmupgrade'=>1, 'confirmrelease'=>1, 'confirmplugincheck'=>1, 'cache'=>0)));
$version, $showallplugins, $PAGE->url, new moodle_url($PAGE->url, array('confirmplugincheck' => 1)));
die();
} else {
// Always verify plugin dependencies!
$failed = array();
if (!core_plugin_manager::instance()->all_plugins_ok($version, $failed)) {
$reloadurl = new moodle_url('/admin/index.php', array('confirmupgrade' => 1, 'confirmrelease' => 1, 'cache' => 0));
echo $output->unsatisfied_dependencies_page($version, $failed, $reloadurl);
echo $output->unsatisfied_dependencies_page($version, $failed, $PAGE->url);
die();
}
unset($failed);
@@ -374,9 +515,17 @@ if (!$cache and $branch <> $CFG->branch) { // Update the branch
}
if (!$cache and moodle_needs_upgrading()) {
$PAGE->set_url(new moodle_url($PAGE->url, array('confirmplugincheck' => $confirmplugins)));
check_upgrade_key($upgradekeyhash);
if (!$PAGE->headerprinted) {
// means core upgrade or installation was not already done
$pluginman = core_plugin_manager::instance();
$output = $PAGE->get_renderer('core', 'admin');
if (!$confirmplugins) {
$strplugincheck = get_string('plugincheck');
@@ -385,6 +534,7 @@ if (!$cache and moodle_needs_upgrading()) {
$PAGE->set_heading($strplugincheck);
$PAGE->set_cacheable(false);
// Check for available updates.
if ($fetchupdates) {
require_sesskey();
$updateschecker = \core\update\checker::instance();
@@ -394,36 +544,130 @@ if (!$cache and moodle_needs_upgrading()) {
redirect($PAGE->url);
}
/** @var core_admin_renderer $output */
$output = $PAGE->get_renderer('core', 'admin');
// Cancel all plugin installations.
if ($abortinstallx) {
require_sesskey();
$abortables = $pluginman->list_cancellable_installations();
if ($abortables) {
if ($confirmabortinstall) {
foreach ($abortables as $plugin) {
$pluginman->cancel_plugin_installation($plugin->component);
}
redirect($PAGE->url);
} else {
$continue = new moodle_url($PAGE->url, array('abortinstallx' => $abortinstallx,
'confirmabortinstall' => 1));
echo $output->upgrade_confirm_abort_install_page($abortables, $continue);
die();
}
}
redirect($PAGE->url);
}
$deployer = \core\update\deployer::instance();
if ($deployer->enabled()) {
$deployer->initialize($PAGE->url, $PAGE->url);
// Cancel single plugin installation.
if ($abortinstall) {
require_sesskey();
if ($confirmabortinstall) {
$pluginman->cancel_plugin_installation($abortinstall);
redirect($PAGE->url);
} else {
$continue = new moodle_url($PAGE->url, array('abortinstall' => $abortinstall, 'confirmabortinstall' => 1));
$abortable = $pluginman->get_plugin_info($abortinstall);
if ($pluginman->can_cancel_plugin_installation($abortable)) {
echo $output->upgrade_confirm_abort_install_page(array($abortable), $continue);
die();
}
redirect($PAGE->url);
}
}
$deploydata = $deployer->submitted_data();
if (!empty($deploydata)) {
require_sesskey();
echo $output->upgrade_plugin_confirm_deploy_page($deployer, $deploydata);
die();
// Cancel all plugins upgrades (that is, restore archived versions).
if ($abortupgradex) {
require_sesskey();
$restorable = $pluginman->list_restorable_archives();
if ($restorable) {
upgrade_install_plugins($restorable, $confirmabortupgrade,
get_string('cancelupgradehead', 'core_plugin'),
new moodle_url($PAGE->url, array('abortupgradex' => 1, 'confirmabortupgrade' => 1))
);
}
redirect($PAGE->url);
}
// Cancel single plugin upgrade (that is, install the archived version).
if ($abortupgrade) {
require_sesskey();
$restorable = $pluginman->list_restorable_archives();
if (isset($restorable[$abortupgrade])) {
$restorable = array($restorable[$abortupgrade]);
upgrade_install_plugins($restorable, $confirmabortupgrade,
get_string('cancelupgradehead', 'core_plugin'),
new moodle_url($PAGE->url, array('abortupgrade' => $abortupgrade, 'confirmabortupgrade' => 1))
);
}
redirect($PAGE->url);
}
// Install all available missing dependencies.
if ($installdepx) {
require_sesskey();
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
upgrade_install_plugins($installable, $confirminstalldep,
get_string('dependencyinstallhead', 'core_plugin'),
new moodle_url($PAGE->url, array('installdepx' => 1, 'confirminstalldep' => 1))
);
}
// Install single available missing dependency.
if ($installdep) {
require_sesskey();
$installable = $pluginman->filter_installable($pluginman->missing_dependencies(true));
if (!empty($installable[$installdep])) {
$installable = array($installable[$installdep]);
upgrade_install_plugins($installable, $confirminstalldep,
get_string('dependencyinstallhead', 'core_plugin'),
new moodle_url($PAGE->url, array('installdep' => $installdep, 'confirminstalldep' => 1))
);
}
}
// Install all available updates.
if ($installupdatex) {
require_sesskey();
$installable = $pluginman->filter_installable($pluginman->available_updates());
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdatex' => 1, 'confirminstallupdate' => 1))
);
}
// Install single available update.
if ($installupdate and $installupdateversion) {
require_sesskey();
if ($pluginman->is_remote_plugin_installable($installupdate, $installupdateversion)) {
$installable = array($pluginman->get_remote_plugin_info($installupdate, $installupdateversion, true));
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdate' => $installupdate,
'installupdateversion' => $installupdateversion, 'confirminstallupdate' => 1)
)
);
}
}
// Show plugins info.
echo $output->upgrade_plugin_check_page(core_plugin_manager::instance(), \core\update\checker::instance(),
echo $output->upgrade_plugin_check_page($pluginman, \core\update\checker::instance(),
$version, $showallplugins,
new moodle_url($PAGE->url),
new moodle_url('/admin/index.php', array('confirmplugincheck'=>1, 'cache'=>0)));
new moodle_url($PAGE->url, array('confirmplugincheck' => 1, 'cache' => 0)));
die();
}
// Make sure plugin dependencies are always checked.
$failed = array();
if (!core_plugin_manager::instance()->all_plugins_ok($version, $failed)) {
/** @var core_admin_renderer $output */
if (!$pluginman->all_plugins_ok($version, $failed)) {
$output = $PAGE->get_renderer('core', 'admin');
$reloadurl = new moodle_url('/admin/index.php', array('cache' => 0));
echo $output->unsatisfied_dependencies_page($version, $failed, $reloadurl);
echo $output->unsatisfied_dependencies_page($version, $failed, $PAGE->url);
die();
}
unset($failed);
@@ -513,7 +757,15 @@ if (isguestuser()) {
redirect(get_login_url());
}
$context = context_system::instance();
require_capability('moodle/site:config', $context);
if (!has_capability('moodle/site:config', $context)) {
// Do not throw exception display an empty page with administration menu if visible for current user.
$PAGE->set_title($SITE->fullname);
$PAGE->set_heading($SITE->fullname);
echo $OUTPUT->header();
echo $OUTPUT->footer();
exit;
}
// check that site is properly customized
$site = get_site();
@@ -561,7 +813,7 @@ $updateschecker = \core\update\checker::instance();
$availableupdates = array();
$availableupdatesfetch = null;
if (empty($CFG->disableupdatenotifications)) {
if ($updateschecker->enabled()) {
// Only compute the update information when it is going to be displayed to the user.
$availableupdates['core'] = $updateschecker->get_update_info('core',
array('minmaturity' => $CFG->updateminmaturity, 'notifybuilds' => $CFG->updatenotifybuilds));
@@ -570,14 +822,13 @@ if (empty($CFG->disableupdatenotifications)) {
$pluginman = core_plugin_manager::instance();
foreach ($pluginman->get_plugins() as $plugintype => $plugintypeinstances) {
foreach ($plugintypeinstances as $pluginname => $plugininfo) {
if (!empty($plugininfo->availableupdates)) {
foreach ($plugininfo->availableupdates as $pluginavailableupdate) {
if ($pluginavailableupdate->version > $plugininfo->versiondisk) {
if (!isset($availableupdates[$plugintype.'_'.$pluginname])) {
$availableupdates[$plugintype.'_'.$pluginname] = array();
}
$availableupdates[$plugintype.'_'.$pluginname][] = $pluginavailableupdate;
$pluginavailableupdates = $plugininfo->available_updates();
if (!empty($pluginavailableupdates)) {
foreach ($pluginavailableupdates as $pluginavailableupdate) {
if (!isset($availableupdates[$plugintype.'_'.$pluginname])) {
$availableupdates[$plugintype.'_'.$pluginname] = array();
}
$availableupdates[$plugintype.'_'.$pluginname][] = $pluginavailableupdate;
}
}
}
@@ -595,7 +846,6 @@ $cachewarnings = cache_helper::warnings();
admin_externalpage_setup('adminnotifications');
/* @var core_admin_renderer $output */
$output = $PAGE->get_renderer('core', 'admin');
echo $output->admin_notifications_page($maturity, $insecuredataroot, $errorsdisplayed, $cronoverdue, $dbproblems,
+1 -1
View File
@@ -11,7 +11,7 @@
echo '<div class="phpinfo">';
ob_start();
phpinfo(INFO_GENERAL + INFO_CONFIGURATION + INFO_MODULES);
phpinfo(INFO_GENERAL + INFO_CONFIGURATION + INFO_MODULES + INFO_VARIABLES);
$html = ob_get_contents();
ob_end_clean();
+62 -53
View File
@@ -18,15 +18,6 @@
/**
* UI for general plugins management
*
* Supported HTTP parameters:
*
* ?fetchremote=1 - check for available updates
* ?updatesonly=1 - display plugins with available update only
* ?contribonly=1 - display non-standard add-ons only
* ?uninstall=foo_bar - uninstall the given plugin
* ?delete=foo_bar - delete the plugin folder (it must not be installed)
* &confirm=1 - confirm the uninstall or delete action
*
* @package core
* @subpackage admin
* @copyright 2011 David Mudrak <david@moodle.com>
@@ -37,13 +28,17 @@ require_once(dirname(dirname(__FILE__)) . '/config.php');
require_once($CFG->libdir . '/adminlib.php');
require_once($CFG->libdir . '/filelib.php');
$fetchremote = optional_param('fetchremote', false, PARAM_BOOL);
$updatesonly = optional_param('updatesonly', false, PARAM_BOOL);
$contribonly = optional_param('contribonly', false, PARAM_BOOL);
$uninstall = optional_param('uninstall', '', PARAM_COMPONENT);
$delete = optional_param('delete', '', PARAM_COMPONENT);
$confirmed = optional_param('confirm', false, PARAM_BOOL);
$return = optional_param('return', 'overview', PARAM_ALPHA);
$fetchupdates = optional_param('fetchupdates', false, PARAM_BOOL); // Check for available plugins updates.
$updatesonly = optional_param('updatesonly', false, PARAM_BOOL); // Show updateable plugins only.
$contribonly = optional_param('contribonly', false, PARAM_BOOL); // Show additional plugins only.
$uninstall = optional_param('uninstall', '', PARAM_COMPONENT); // Uninstall the plugin.
$delete = optional_param('delete', '', PARAM_COMPONENT); // Delete the plugin folder after it is uninstalled.
$confirmed = optional_param('confirm', false, PARAM_BOOL); // Confirm the uninstall/delete action.
$return = optional_param('return', 'overview', PARAM_ALPHA); // Where to return after uninstall.
$installupdate = optional_param('installupdate', null, PARAM_COMPONENT); // Install given available update.
$installupdateversion = optional_param('installupdateversion', null, PARAM_INT); // Version of the available update to install.
$installupdatex = optional_param('installupdatex', false, PARAM_BOOL); // Install all available plugin updates.
$confirminstallupdate = optional_param('confirminstallupdate', false, PARAM_BOOL); // Available update(s) install confirmed?
// NOTE: do not use admin_externalpage_setup() here because it loads
// full admin tree which is not possible during uninstallation.
@@ -52,15 +47,19 @@ require_login();
$syscontext = context_system::instance();
require_capability('moodle/site:config', $syscontext);
// URL params we want to maintain on redirects.
$pageparams = array('updatesonly' => $updatesonly, 'contribonly' => $contribonly);
$pageurl = new moodle_url('/admin/plugins.php', $pageparams);
$pluginman = core_plugin_manager::instance();
if ($uninstall) {
require_sesskey();
if (!$confirmed) {
admin_externalpage_setup('pluginsoverview');
admin_externalpage_setup('pluginsoverview', '', $pageparams);
} else {
$PAGE->set_url('/admin/plugins.php');
$PAGE->set_url($pageurl);
$PAGE->set_context($syscontext);
$PAGE->set_pagelayout('maintenance');
$PAGE->set_popup_notification_allowed(false);
@@ -122,7 +121,7 @@ if ($uninstall) {
if ($delete and $confirmed) {
require_sesskey();
$PAGE->set_url('/admin/plugins.php');
$PAGE->set_url($pageurl);
$PAGE->set_context($syscontext);
$PAGE->set_pagelayout('maintenance');
$PAGE->set_popup_notification_allowed(false);
@@ -149,13 +148,6 @@ if ($delete and $confirmed) {
'core_plugin_manager::get_plugin_info() returned not-null versiondb for the plugin to be deleted');
}
// Make sure the folder is removable.
if (!$pluginman->is_plugin_folder_removable($pluginfo->component)) {
throw new moodle_exception('err_removing_unremovable_folder', 'core_plugin', '',
array('plugin' => $pluginfo->component, 'rootdir' => $pluginfo->rootdir),
'plugin root folder is not removable as expected');
}
// Make sure the folder is within Moodle installation tree.
if (strpos($pluginfo->rootdir, $CFG->dirroot) !== 0) {
throw new moodle_exception('err_unexpected_plugin_rootdir', 'core_plugin', '',
@@ -164,44 +156,61 @@ if ($delete and $confirmed) {
}
// So long, and thanks for all the bugs.
fulldelete($pluginfo->rootdir);
// Reset op code caches.
if (function_exists('opcache_reset')) {
opcache_reset();
}
$pluginman->remove_plugin_folder($pluginfo);
// We need to execute upgrade to make sure everything including caches is up to date.
redirect(new moodle_url('/admin/index.php'));
}
admin_externalpage_setup('pluginsoverview');
// Install all avilable updates.
if ($installupdatex) {
require_once($CFG->libdir.'/upgradelib.php');
require_sesskey();
$PAGE->set_url($pageurl);
$PAGE->set_context($syscontext);
$PAGE->set_pagelayout('maintenance');
$PAGE->set_popup_notification_allowed(false);
$installable = $pluginman->filter_installable($pluginman->available_updates());
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdatex' => 1, 'confirminstallupdate' => 1))
);
}
// Install single available update.
if ($installupdate and $installupdateversion) {
require_once($CFG->libdir.'/upgradelib.php');
require_sesskey();
$PAGE->set_url($pageurl);
$PAGE->set_context($syscontext);
$PAGE->set_pagelayout('maintenance');
$PAGE->set_popup_notification_allowed(false);
if ($pluginman->is_remote_plugin_installable($installupdate, $installupdateversion)) {
$installable = array($pluginman->get_remote_plugin_info($installupdate, $installupdateversion, true));
upgrade_install_plugins($installable, $confirminstallupdate,
get_string('updateavailableinstallallhead', 'core_admin'),
new moodle_url($PAGE->url, array('installupdate' => $installupdate,
'installupdateversion' => $installupdateversion, 'confirminstallupdate' => 1)
)
);
}
}
admin_externalpage_setup('pluginsoverview', '', $pageparams);
/** @var core_admin_renderer $output */
$output = $PAGE->get_renderer('core', 'admin');
$checker = \core\update\checker::instance();
// Filtering options.
$options = array(
'updatesonly' => $updatesonly,
'contribonly' => $contribonly,
);
if ($fetchremote) {
if ($fetchupdates) {
require_sesskey();
$checker->fetch();
redirect(new moodle_url($PAGE->url, $options));
redirect($PAGE->url);
}
$deployer = \core\update\deployer::instance();
if ($deployer->enabled()) {
$myurl = new moodle_url($PAGE->url, array('updatesonly' => $updatesonly, 'contribonly' => $contribonly));
$deployer->initialize($myurl, new moodle_url('/admin'));
$deploydata = $deployer->submitted_data();
if (!empty($deploydata)) {
echo $output->upgrade_plugin_confirm_deploy_page($deployer, $deploydata);
die();
}
}
echo $output->plugin_management_page($pluginman, $checker, $options);
echo $output->plugin_management_page($pluginman, $checker, $pageparams);
+2
View File
@@ -39,6 +39,8 @@ require_once($CFG->dirroot . '/' . $CFG->admin . '/registration/forms.php');
require_once($CFG->dirroot . '/webservice/lib.php');
require_once($CFG->dirroot . '/' . $CFG->admin . '/registration/lib.php');
require_sesskey();
$huburl = required_param('huburl', PARAM_URL);
$huburl = rtrim($huburl, "/");
+646 -282
View File
File diff suppressed because it is too large Load Diff
+6 -2
View File
@@ -50,7 +50,8 @@ $table->set_attribute('class', 'admintable generaltable');
$table->setup();
$plugins = array();
foreach (core_component::get_plugin_list('report') as $plugin => $plugindir) {
$availableplugins = core_component::get_plugin_list('report');
foreach ($availableplugins as $plugin => $plugindir) {
if (get_string_manager()->string_exists('pluginname', 'report_' . $plugin)) {
$strpluginname = get_string('pluginname', 'report_' . $plugin);
} else {
@@ -80,7 +81,10 @@ foreach ($plugins as $plugin => $name) {
$uninstall = html_writer::link($uninstallurl, $struninstall);
}
$stores = $logmanager->get_supported_logstores('report_' . $plugin);
$stores = array();
if (isset($availableplugins[$plugin])) {
$stores = $logmanager->get_supported_logstores('report_' . $plugin);
}
if ($stores === false) {
$supportedstores = get_string('logstorenotrequired', 'admin');
} else if (!empty($stores)) {
+81
View File
@@ -0,0 +1,81 @@
<?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/>.
/**
* This file processes AJAX requests and returns JSON
*
* This is a server part of yui permissions manager module
*
* @package core_role
* @copyright 2015 Martin Mastny
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('AJAX_SCRIPT', true);
require(__DIR__ . '/../../config.php');
$contextid = required_param('contextid', PARAM_INT);
$getroles = optional_param('getroles', 0, PARAM_BOOL);
list($context, $course, $cm) = get_context_info_array($contextid);
require_login($course, false, $cm);
require_capability('moodle/role:review', $context);
require_sesskey();
list($overridableroles, $overridecounts, $nameswithcounts) = get_overridable_roles($context,
ROLENAME_BOTH, true);
if ($getroles) {
echo json_encode($overridableroles);
die();
}
$capability = required_param('capability', PARAM_CAPABILITY);
$roleid = required_param('roleid', PARAM_INT);
$action = required_param('action', PARAM_ALPHA);
$capability = $DB->get_record('capabilities', array('name' => $capability), '*', MUST_EXIST);
if (!isset($overridableroles[$roleid])) {
throw new moodle_exception('invalidarguments');
}
if (!has_capability('moodle/role:override', $context)) {
if (!has_capability('moodle/role:safeoverride', $context) || !is_safe_capability($capability)) {
require_capability('moodle/role:override', $context);
}
}
switch ($action) {
case 'allow':
role_change_permission($roleid, $context, $capability->name, CAP_ALLOW);
break;
case 'prevent':
role_change_permission($roleid, $context, $capability->name, CAP_PREVENT);
break;
case 'prohibit':
role_change_permission($roleid, $context, $capability->name, CAP_PROHIBIT);
break;
case 'unprohibit':
role_change_permission($roleid, $context, $capability->name, CAP_INHERIT);
break;
default:
throw new moodle_exception('invalidarguments');
}
echo json_encode($action);
die();
+22 -6
View File
@@ -106,18 +106,22 @@ abstract class core_role_capability_table_base {
$component = $capability->component;
// Start the row.
echo '<tr class="' . implode(' ', array_unique(array_merge(array('rolecap'),
$this->get_row_classes($capability)))) . '">';
$rowattributes = $this->get_row_attributes($capability);
// Handle class attributes same as other.
$rowclasses = array_unique(array_merge(array('rolecap'), $this->get_row_classes($capability)));
if (array_key_exists('class', $rowattributes)) {
$rowclasses = array_unique(array_merge($rowclasses, array($rowattributes['class'])));
}
$rowattributes['class'] = implode(' ', $rowclasses);
// Table cell for the capability name.
echo '<th scope="row" class="name"><span class="cap-desc">' . get_capability_docs_link($capability) .
$contents = '<th scope="row" class="name"><span class="cap-desc">' . get_capability_docs_link($capability) .
'<span class="cap-name">' . $capability->name . '</span></span></th>';
// Add the cells specific to this table.
$this->add_row_cells($capability);
$contents .= $this->add_row_cells($capability);
// End the row.
echo "</tr>\n";
echo html_writer::tag('tr', $contents, $rowattributes);
}
// End of the table.
@@ -167,6 +171,17 @@ abstract class core_role_capability_table_base {
return array();
}
/**
* For subclasses to override. Additional attributes to be added to
* each table row for the capability
*
* @param stdClass $capability the capability this row relates to.
* @return array attribute names and their values.
*/
protected function get_row_attributes($capability) {
return array();
}
/**
* For subclasses to override. Output the data cells for this capability. The
* capability name cell will already have been output.
@@ -174,6 +189,7 @@ abstract class core_role_capability_table_base {
* You can rely on get_row_classes always being called before add_row_cells.
*
* @param stdClass $capability the capability this row relates to.
* @return string html of row cells
*/
protected abstract function add_row_cells($capability);
}
@@ -163,15 +163,16 @@ abstract class core_role_capability_table_with_risks extends core_role_capabilit
protected abstract function add_permission_cells($capability);
protected function add_row_cells($capability) {
$this->add_permission_cells($capability);
$cells = $this->add_permission_cells($capability);
// One cell for each possible risk.
foreach ($this->allrisks as $riskname => $risk) {
echo '<td class="risk ' . str_replace('risk', '', $riskname) . '">';
$cells .= '<td class="risk ' . str_replace('risk', '', $riskname) . '">';
if ($risk & (int)$capability->riskbitmask) {
echo $this->get_risk_icon($riskname);
$cells .= $this->get_risk_icon($riskname);
}
echo '</td>';
$cells .= '</td>';
}
return $cells;
}
/**
@@ -79,6 +79,6 @@ class core_role_check_capability_table extends core_role_capability_table_base {
$a->fullname = $this->fullname;
$a->capability = $capability->name;
$a->context = $this->contextname;
echo '<td>' . $result . '</td>';
return '<td>' . $result . '</td>';
}
}
@@ -422,6 +422,12 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
} else {
// Updating role.
$DB->update_record('role', $this->role);
// This will ensure the course contacts cache is purged so name changes get updated in
// the UI. It would be better to do this only when we know that fields affected are
// updated. But thats getting into the weeds of the coursecat cache and role edits
// should not be that frequent, so here is the ugly brutal approach.
coursecat::role_assignment_changed($this->role->id, context_system::instance());
}
// Assignable contexts.
@@ -472,7 +478,9 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
}
protected function get_description_field($id) {
return print_textarea(true, 10, 50, 50, 10, 'description', $this->role->description, 0, true);
return '<textarea class="form-textarea" id="'. s($id) .'" name="description" rows="10" cols="50">' .
htmlspecialchars($this->role->description) .
'</textarea>';
}
protected function get_archetype_field($id) {
@@ -626,6 +634,7 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
protected function add_permission_cells($capability) {
// One cell for each possible permission.
$content = '';
foreach ($this->displaypermissions as $perm => $permname) {
$strperm = $this->strperms[$permname];
$extraclass = '';
@@ -636,11 +645,12 @@ class core_role_define_role_table_advanced extends core_role_capability_table_wi
if ($this->permissions[$capability->name] == $perm) {
$checked = 'checked="checked" ';
}
echo '<td class="' . $permname . $extraclass . '">';
echo '<label><input type="radio" name="' . $capability->name .
$content .= '<td class="' . $permname . $extraclass . '">';
$content .= '<label><input type="radio" name="' . $capability->name .
'" value="' . $perm . '" ' . $checked . '/> ';
echo '<span class="note">' . $strperm . '</span>';
echo '</label></td>';
$content .= '<span class="note">' . $strperm . '</span>';
$content .= '</label></td>';
}
return $content;
}
}
@@ -45,19 +45,20 @@ class core_role_define_role_table_basic extends core_role_define_role_table_adva
$perm = $this->permissions[$capability->name];
$permname = $this->allpermissions[$perm];
$defaultperm = $this->allpermissions[$this->parentpermissions[$capability->name]];
echo '<td class="' . $permname . '">';
$content = '<td class="' . $permname . '">';
if ($perm == CAP_ALLOW || $perm == CAP_INHERIT) {
$checked = '';
if ($perm == CAP_ALLOW) {
$checked = 'checked="checked" ';
}
echo '<input type="hidden" name="' . $capability->name . '" value="' . CAP_INHERIT . '" />';
echo '<label><input type="checkbox" name="' . $capability->name .
$content .= '<input type="hidden" name="' . $capability->name . '" value="' . CAP_INHERIT . '" />';
$content .= '<label><input type="checkbox" name="' . $capability->name .
'" value="' . CAP_ALLOW . '" ' . $checked . '/> ' . $this->strallow . '</label>';
} else {
echo '<input type="hidden" name="' . $capability->name . '" value="' . $perm . '" />';
echo $this->strperms[$permname] . '<span class="note">' . $this->stradvmessage . '</span>';
$content .= '<input type="hidden" name="' . $capability->name . '" value="' . $perm . '" />';
$content .= $this->strperms[$permname] . '<span class="note">' . $this->stradvmessage . '</span>';
}
echo '</td>';
$content .= '</td>';
return $content;
}
}
@@ -73,6 +73,7 @@ class core_role_override_permissions_table_advanced extends core_role_capability
}
// One cell for each possible permission.
$content = '';
foreach ($this->displaypermissions as $perm => $permname) {
$strperm = $this->strperms[$permname];
$extraclass = '';
@@ -83,8 +84,8 @@ class core_role_override_permissions_table_advanced extends core_role_capability
if ($this->permissions[$capability->name] == $perm) {
$checked = 'checked="checked" ';
}
echo '<td class="' . $permname . $extraclass . '">';
echo '<label><input type="radio" name="' . $capability->name .
$content .= '<td class="' . $permname . $extraclass . '">';
$content .= '<label><input type="radio" name="' . $capability->name .
'" value="' . $perm . '" ' . $checked . $disabled . '/> ';
if ($perm == CAP_INHERIT) {
$inherited = $this->parentpermissions[$capability->name];
@@ -95,8 +96,9 @@ class core_role_override_permissions_table_advanced extends core_role_capability
}
$strperm .= ' (' . $inherited . ')';
}
echo '<span class="note">' . $strperm . '</span>';
echo '</label></td>';
$content .= '<span class="note">' . $strperm . '</span>';
$content .= '</label></td>';
}
return $content;
}
}
+41 -16
View File
@@ -67,6 +67,8 @@ class core_role_permissions_table extends core_role_capability_table_base {
protected function add_row_cells($capability) {
global $OUTPUT, $PAGE;
$renderer = $PAGE->get_renderer('core');
$adminurl = new moodle_url("/admin/");
$context = $this->context;
$contextid = $this->context->id;
@@ -75,7 +77,6 @@ class core_role_permissions_table extends core_role_capability_table_base {
$overridableroles = $this->overridableroles;
$roles = $this->roles;
list($needed, $forbidden) = get_roles_with_cap_in_context($context, $capability->name);
$neededroles = array();
$forbiddenroles = array();
@@ -91,40 +92,50 @@ class core_role_permissions_table extends core_role_capability_table_base {
foreach ($roles as $id => $name) {
if (isset($needed[$id])) {
$neededroles[$id] = $roles[$id];
$templatecontext = array("rolename" => $name, "roleid" => $id, "action" => "prevent", "spanclass" => "allowed",
"linkclass" => "preventlink", "adminurl" => $adminurl->out(), "imageurl" => "");
if (isset($overridableroles[$id]) and ($allowoverrides or ($allowsafeoverrides and is_safe_capability($capability)))) {
$preventurl = new moodle_url($PAGE->url, array('contextid'=>$contextid, 'roleid'=>$id, 'capability'=>$capability->name, 'prevent'=>1));
$neededroles[$id] .= $OUTPUT->action_icon($preventurl, new pix_icon('t/delete', get_string('prevent', 'core_role')));
$templatecontext['imageurl'] = $renderer->pix_url('t/delete');
}
$neededroles[$id] = $renderer->render_from_template('core/permissionmanager_role', $templatecontext);
}
}
$neededroles = implode(', ', $neededroles);
$neededroles = implode(' ', $neededroles);
foreach ($roles as $id => $name) {
if (isset($forbidden[$id]) and ($allowoverrides or ($allowsafeoverrides and is_safe_capability($capability)))) {
$forbiddenroles[$id] = $roles[$id];
$templatecontext = array("rolename" => $name, "roleid" => $id, "action" => "unprohibit",
"spanclass" => "forbidden", "linkclass" => "unprohibitlink", "adminurl" => $adminurl->out(),
"imageurl" => "");
if (isset($overridableroles[$id]) and prohibit_is_removable($id, $context, $capability->name)) {
$unprohibiturl = new moodle_url($PAGE->url, array('contextid'=>$contextid, 'roleid'=>$id, 'capability'=>$capability->name, 'unprohibit'=>1));
$forbiddenroles[$id] .= $OUTPUT->action_icon($unprohibiturl, new pix_icon('t/delete', get_string('delete')));
$templatecontext['imageurl'] = $renderer->pix_url('t/delete');
}
$forbiddenroles[$id] = $renderer->render_from_template('core/permissionmanager_role', $templatecontext);
}
}
$forbiddenroles = implode(', ', $forbiddenroles);
$forbiddenroles = implode(' ', $forbiddenroles);
if ($allowable and ($allowoverrides or ($allowsafeoverrides and is_safe_capability($capability)))) {
$allowurl = new moodle_url($PAGE->url, array('contextid'=>$contextid, 'capability'=>$capability->name, 'allow'=>1));
$neededroles .= '<div class="allowmore">'.$OUTPUT->action_icon($allowurl, new pix_icon('t/add', get_string('allow', 'core_role'))).'</div>';
$allowurl = new moodle_url($PAGE->url, array('contextid' => $contextid,
'capability' => $capability->name, 'allow' => 1));
$allowicon = $OUTPUT->action_icon($allowurl, new pix_icon('t/add', get_string('allow', 'core_role')), null,
array('class' => 'allowlink', 'data-action' => 'allow'));
$neededroles .= html_writer::div($allowicon, 'allowmore');
}
if ($forbitable and ($allowoverrides or ($allowsafeoverrides and is_safe_capability($capability)))) {
$prohibiturl = new moodle_url($PAGE->url, array('contextid'=>$contextid, 'capability'=>$capability->name, 'prohibit'=>1));
$forbiddenroles .= '<div class="prohibitmore">'.$OUTPUT->action_icon($prohibiturl, new pix_icon('t/add', get_string('prohibit', 'core_role'))).'</div>';
$prohibiturl = new moodle_url($PAGE->url, array('contextid' => $contextid,
'capability' => $capability->name, 'prohibit' => 1));
$prohibiticon = $OUTPUT->action_icon($prohibiturl, new pix_icon('t/add', get_string('prohibit', 'core_role')), null,
array('class' => 'prohibitlink', 'data-action' => 'prohibit'));
$forbiddenroles .= html_writer::div($prohibiticon, 'prohibitmore');
}
$risks = $this->get_risks($capability);
echo '<td>' . $risks . '</td>';
echo '<td>' . $neededroles . '</td>';
echo '<td>' . $forbiddenroles . '</td>';
$contents = html_writer::tag('td', $risks, array('class' => 'risks'));
$contents .= html_writer::tag('td', $neededroles, array('class' => 'allowedroles'));
$contents .= html_writer::tag('td', $forbiddenroles, array('class' => 'forbiddenroles'));
return $contents;
}
protected function get_risks($capability) {
@@ -147,4 +158,18 @@ class core_role_permissions_table extends core_role_capability_table_base {
return $return;
}
/**
* Add additional attributes to row
*
* @param stdClass $capability capability that this table row relates to.
* @return array key value pairs of attribute names and values.
*/
protected function get_row_attributes($capability) {
return array(
'data-id' => $capability->id,
'data-name' => $capability->name,
'data-humanname' => get_capability_string($capability->name),
);
}
}
@@ -129,7 +129,7 @@ class core_role_view_role_definition_table extends core_role_define_role_table_a
} else {
$default = "&#xa0;";
}
echo '<td class="' . $permname . '">' . $this->strperms[$permname] . '<span class="note">' .
return '<td class="' . $permname . '">' . $this->strperms[$permname] . '<span class="note">' .
$default . '</span></td>';
}
+9
View File
@@ -195,6 +195,15 @@ if ($capability && ($allowoverrides || ($allowsafeoverrides && is_safe_capabilit
echo $OUTPUT->header();
echo $OUTPUT->heading($title);
$adminurl = new moodle_url('/admin/');
$arguments = array('contextid' => $contextid,
'contextname' => $contextname,
'adminurl' => $adminurl->out());
$PAGE->requires->strings_for_js(
array('roleprohibitinfo', 'roleprohibitheader', 'roleallowinfo', 'roleallowheader',
'confirmunassigntitle', 'confirmroleunprohibit', 'confirmroleprevent', 'confirmunassignyes',
'confirmunassignno'), 'core_role');
$PAGE->requires->js_call_amd('core/permissionmanager', 'initialize', array($arguments));
$table = new core_role_permissions_table($context, $contextname, $allowoverrides, $allowsafeoverrides, $overridableroles);
echo $OUTPUT->box_start('generalbox capbox');
// Print link to advanced override page.
+2
View File
@@ -46,6 +46,8 @@ $resultshtml = admin_search_settings_html($query); // case insensitive search on
echo '<form action="' . $PAGE->url->out(true) . '" method="post" id="adminsettings">';
echo '<div>';
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
// HACK to prevent browsers from automatically inserting the user's password into the wrong fields.
echo prevent_form_autofill_password();
echo '</div>';
echo '<fieldset>';
echo '<div class="clearer"><!-- --></div>';
+4
View File
@@ -77,6 +77,8 @@ if (empty($SITE->fullname)) {
echo html_writer::input_hidden_params($PAGE->url);
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<input type="hidden" name="return" value="'.$return.'" />';
// HACK to prevent browsers from automatically inserting the user's password into the wrong fields.
echo prevent_form_autofill_password();
echo $settingspage->output_html();
@@ -119,6 +121,8 @@ if (empty($SITE->fullname)) {
echo html_writer::input_hidden_params($PAGE->url);
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<input type="hidden" name="return" value="'.$return.'" />';
// HACK to prevent browsers from automatically inserting the user's password into the wrong fields.
echo prevent_form_autofill_password();
echo $OUTPUT->heading($settingspage->visiblename);
echo $settingspage->output_html();
+2 -1
View File
@@ -64,7 +64,8 @@ preferences,moodle|/user/preferences.php|preferences',
array('0' => new lang_string('default', 'calendar'),
'%I:%M %p' => new lang_string('timeformat_12', 'calendar'),
'%H:%M' => new lang_string('timeformat_24', 'calendar'))));
$temp->add(new admin_setting_configselect('calendar_startwday', new lang_string('configstartwday', 'admin'), new lang_string('helpstartofweek', 'admin'), 0,
$temp->add(new admin_setting_configselect('calendar_startwday', new lang_string('configstartwday', 'admin'),
new lang_string('helpstartofweek', 'admin'), get_string('firstdayofweek', 'langconfig'),
array(
0 => new lang_string('sunday', 'calendar'),
1 => new lang_string('monday', 'calendar'),
+41 -3
View File
@@ -46,7 +46,7 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
$ADMIN->add('courses',
new admin_externalpage('restorecourse', new lang_string('restorecourse', 'admin'),
new moodle_url('/backup/restorefile.php', array('contextid' => context_system::instance()->id)),
array('moodle/course:create')
array('moodle/restore:restorecourse')
)
);
@@ -226,7 +226,8 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
);
$temp->add(new admin_setting_configselect('backup/backup_auto_storage', new lang_string('automatedstorage', 'backup'), new lang_string('automatedstoragehelp', 'backup'), 0, $storageoptions));
$temp->add(new admin_setting_special_backup_auto_destination());
$keepoptoins = array(
$maxkeptoptions = array(
0 => new lang_string('all'), 1 => '1',
2 => '2',
5 => '5',
@@ -240,7 +241,44 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) {
300 => '300',
400 => '400',
500 => '500');
$temp->add(new admin_setting_configselect('backup/backup_auto_keep', new lang_string('keep'), new lang_string('backupkeephelp'), 1, $keepoptoins));
$temp->add(new admin_setting_configselect('backup/backup_auto_max_kept', new lang_string('automatedmaxkept', 'backup'),
new lang_string('automatedmaxkepthelp', 'backup'), 1, $maxkeptoptions));
$automateddeletedaysoptions = array(
0 => new lang_string('never'),
1000 => new lang_string('numdays', '', 1000),
365 => new lang_string('numdays', '', 365),
180 => new lang_string('numdays', '', 180),
150 => new lang_string('numdays', '', 150),
120 => new lang_string('numdays', '', 120),
90 => new lang_string('numdays', '', 90),
60 => new lang_string('numdays', '', 60),
35 => new lang_string('numdays', '', 35),
10 => new lang_string('numdays', '', 10),
5 => new lang_string('numdays', '', 5),
2 => new lang_string('numdays', '', 2)
);
$temp->add(new admin_setting_configselect('backup/backup_auto_delete_days', new lang_string('automateddeletedays', 'backup'),
'', 0, $automateddeletedaysoptions));
$minkeptoptions = array(
0 => new lang_string('none'),
1 => '1',
2 => '2',
5 => '5',
10 => '10',
20 => '20',
30 => '30',
40 => '40',
50 => '50',
100 => '100',
200 => '200',
300 => '300',
400 => '400'
);
$temp->add(new admin_setting_configselect('backup/backup_auto_min_kept', new lang_string('automatedminkept', 'backup'),
new lang_string('automatedminkepthelp', 'backup'), 0, $minkeptoptions));
$temp->add(new admin_setting_configcheckbox('backup/backup_shortname', new lang_string('backup_shortname', 'admin'), new lang_string('backup_shortnamehelp', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('backup/backup_auto_skip_hidden', new lang_string('skiphidden', 'backup'), new lang_string('skiphiddenhelp', 'backup'), 1));
$temp->add(new admin_setting_configselect('backup/backup_auto_skip_modif_days', new lang_string('skipmodifdays', 'backup'), new lang_string('skipmodifdayshelp', 'backup'), 30, array(
+2
View File
@@ -76,6 +76,8 @@ if (has_capability('moodle/grade:manage', $systemcontext)
$temp->add(new admin_setting_special_gradepointdefault());
$temp->add(new admin_setting_special_grademinmaxtouse());
$temp->add(new admin_setting_my_grades_report());
$temp->add(new admin_setting_configtext('gradereport_mygradeurl', new lang_string('externalurl', 'grades'),
+17 -7
View File
@@ -33,13 +33,13 @@ if ($hassiteconfig) {
// activity modules
$ADMIN->add('modules', new admin_category('modsettings', new lang_string('activitymodules')));
$temp = new admin_settingpage('managemodulescommon', new lang_string('commonsettings', 'admin'));
$ADMIN->add('modsettings', new admin_page_managemods());
$temp = new admin_settingpage('managemodulescommon', new lang_string('commonactivitysettings', 'admin'));
$temp->add(new admin_setting_configcheckbox('requiremodintro',
get_string('requiremodintro', 'admin'), get_string('requiremodintro_desc', 'admin'), 0));
$ADMIN->add('modsettings', $temp);
$ADMIN->add('modsettings', new admin_page_managemods());
foreach (core_plugin_manager::instance()->get_plugins_of_type('mod') as $plugin) {
/** @var \core\plugininfo\mod $plugin */
$plugin->load_settings($ADMIN, 'modsettings', $hassiteconfig);
@@ -80,6 +80,9 @@ if ($hassiteconfig) {
$temp->add(new admin_setting_heading('manageauthscommonheading', new lang_string('commonsettings', 'admin'), ''));
$temp->add(new admin_setting_special_registerauth());
$temp->add(new admin_setting_configcheckbox('authloginviaemail', new lang_string('authloginviaemail', 'core_auth'), new lang_string('authloginviaemail_desc', 'core_auth'), 0));
$temp->add(new admin_setting_configcheckbox('allowaccountssameemail',
new lang_string('allowaccountssameemail', 'core_auth'),
new lang_string('allowaccountssameemail_desc', 'core_auth'), 0));
$temp->add(new admin_setting_configcheckbox('authpreventaccountcreation', new lang_string('authpreventaccountcreation', 'admin'), new lang_string('authpreventaccountcreation_help', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('loginpageautofocus', new lang_string('loginpageautofocus', 'admin'), new lang_string('loginpageautofocus_help', 'admin'), 0));
$temp->add(new admin_setting_configselect('guestloginbutton', new lang_string('guestloginbutton', 'auth'),
@@ -274,11 +277,18 @@ if ($hassiteconfig) {
$ADMIN->add('modules', new admin_category('webservicesettings', new lang_string('webservices', 'webservice')));
// Mobile
$temp = new admin_settingpage('mobile', new lang_string('mobile','admin'), 'moodle/site:config', false);
$enablemobiledocurl = new moodle_url(get_docs_url('Enable_mobile_web_services'));
$enablemobiledoclink = html_writer::link($enablemobiledocurl, new lang_string('documentation'));
$temp->add(new admin_setting_enablemobileservice('enablemobilewebservice',
new lang_string('enablemobilewebservice', 'admin'),
new lang_string('configenablemobilewebservice', 'admin', $enablemobiledoclink), 0));
// We should wait to the installation to finish since we depend on some configuration values that are set once
// the admin user profile is configured.
if (!during_initial_install()) {
$enablemobiledocurl = new moodle_url(get_docs_url('Enable_mobile_web_services'));
$enablemobiledoclink = html_writer::link($enablemobiledocurl, new lang_string('documentation'));
$default = is_https() ? 1 : 0;
$temp->add(new admin_setting_enablemobileservice('enablemobilewebservice',
new lang_string('enablemobilewebservice', 'admin'),
new lang_string('configenablemobilewebservice', 'admin', $enablemobiledoclink), $default));
}
$temp->add(new admin_setting_configtext('mobilecssurl', new lang_string('mobilecssurl', 'admin'), new lang_string('configmobilecssurl','admin'), '', PARAM_URL));
$ADMIN->add('webservicesettings', $temp);
/// overview page
+2 -1
View File
@@ -35,7 +35,8 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$params = new stdClass();
$params->bytes = $defaultuserquota;
$params->displaysize = display_size($defaultuserquota);
$temp->add(new admin_setting_configtext('userquota', new lang_string('userquota', 'admin'), new lang_string('configuserquota', 'admin', $params), $defaultuserquota));
$temp->add(new admin_setting_configtext('userquota', new lang_string('userquota', 'admin'),
new lang_string('configuserquota', 'admin', $params), $defaultuserquota, PARAM_INT, 30));
$temp->add(new admin_setting_configcheckbox('allowobjectembed', new lang_string('allowobjectembed', 'admin'), new lang_string('configallowobjectembed', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('enabletrusttext', new lang_string('enabletrusttext', 'admin'), new lang_string('configenabletrusttext', 'admin'), 0));
-4
View File
@@ -215,10 +215,6 @@ if (empty($CFG->disableupdatenotifications)) {
$temp = new admin_settingpage('updatenotifications', new lang_string('updatenotifications', 'core_admin'));
$temp->add(new admin_setting_configcheckbox('updateautocheck', new lang_string('updateautocheck', 'core_admin'),
new lang_string('updateautocheck_desc', 'core_admin'), 1));
if (empty($CFG->disableupdateautodeploy)) {
$temp->add(new admin_setting_configcheckbox('updateautodeploy', new lang_string('updateautodeploy', 'core_admin'),
new lang_string('updateautodeploy_desc', 'core_admin'), 0));
}
$temp->add(new admin_setting_configselect('updateminmaturity', new lang_string('updateminmaturity', 'core_admin'),
new lang_string('updateminmaturity_desc', 'core_admin'), MATURITY_STABLE,
array(
+1 -1
View File
@@ -11,7 +11,7 @@ $hassiteconfig = has_capability('moodle/site:config', $systemcontext);
$ADMIN->add('root', new admin_externalpage('adminnotifications', new lang_string('notifications'), "$CFG->wwwroot/$CFG->admin/index.php"));
$ADMIN->add('root', new admin_externalpage('registrationmoodleorg', new lang_string('registration', 'admin'),
"$CFG->wwwroot/$CFG->admin/registration/register.php?huburl=" . HUB_MOODLEORGHUBURL . "&hubname=Moodle.org"));
"$CFG->wwwroot/$CFG->admin/registration/register.php?huburl=" . HUB_MOODLEORGHUBURL . "&hubname=Moodle.org&sesskey=" . sesskey()));
$ADMIN->add('root', new admin_externalpage('registrationhub', new lang_string('registerwith', 'hub'),
"$CFG->wwwroot/$CFG->admin/registration/register.php", 'moodle/site:config', true));
$ADMIN->add('root', new admin_externalpage('registrationhubs', new lang_string('hubs', 'admin'),
+1 -1
View File
@@ -185,7 +185,7 @@ if ($hassiteconfig
new lang_string('showuseridentity_desc', 'admin'), array('email' => 1), array(
'idnumber' => new lang_string('idnumber'),
'email' => new lang_string('email'),
'phone1' => new lang_string('phone'),
'phone1' => new lang_string('phone1'),
'phone2' => new lang_string('phone2'),
'department' => new lang_string('department'),
'institution' => new lang_string('institution'),
+3 -3
View File
@@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2015051100;
$plugin->requires = 2015050500;
$plugin->version = 2015111600;
$plugin->requires = 2015111000;
$plugin->component = 'tool_assignmentupgrade';
$plugin->dependencies = array('mod_assign' => 2015050500);
$plugin->dependencies = array('mod_assign' => 2015111000);
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2015051100;
$plugin->requires = 2015050500;
$plugin->version = 2015111600;
$plugin->requires = 2015111000;
$plugin->component = 'tool_availabilityconditions';
+21 -1
View File
@@ -97,7 +97,7 @@ if (!empty($options['help'])) {
$cwd = getcwd();
// For drop option check if parallel site.
if ((empty($options['parallel'])) && $options['drop']) {
if ((empty($options['parallel'])) && ($options['drop']) || $options['updatesteps']) {
// Get parallel run info from first run.
$options['parallel'] = behat_config_manager::get_parallel_test_runs($options['fromrun']);
}
@@ -172,6 +172,26 @@ if ($options['diag'] || $options['enable'] || $options['disable']) {
}
}
} else if ($options['updatesteps']) {
// Rewrite config file to ensure we have all the features covered.
if (empty($options['parallel'])) {
behat_config_manager::update_config_file();
} else {
// Update config file, ensuring we have up-to-date behat.yml.
for ($i = $options['fromrun']; $i <= $options['torun']; $i++) {
$CFG->behatrunprocess = $i;
behat_config_manager::update_config_file();
}
unset($CFG->behatrunprocess);
}
// Do it sequentially as it's fast and need to be displayed nicely.
foreach (array_chunk($cmds, 1, true) as $cmd) {
$processes = cli_execute_parallel($cmd, __DIR__);
print_sequential_output($processes);
}
exit(0);
} else {
// We should never reach here.
echo $help;
+4 -3
View File
@@ -199,9 +199,6 @@ if ($options['install']) {
exit(1);
}
// Rewrite config file to ensure we have all the features covered.
behat_config_manager::update_config_file();
// Run behat command to get steps in feature files.
$featurestepscmd = behat_command::get_behat_command(true);
$featurestepscmd .= ' --config ' . behat_config_manager::get_behat_cli_config_filepath();
@@ -263,6 +260,10 @@ function print_update_step_output($process, $featurestepfile) {
$steps[$step[0]] = $step[1];
}
}
if ($existing = @json_decode(file_get_contents($featurestepfile), true)) {
$steps = array_merge($existing, $steps);
}
arsort($steps);
if (!@file_put_contents($featurestepfile, json_encode($steps, JSON_PRETTY_PRINT))) {
@@ -1,54 +0,0 @@
@tool @tool_behat
Feature: Page contents assertions
In order to write good tests
As a tests writer
I need to check the page contents
@javascript
Scenario: Basic contents assertions
Given I log in as "admin"
And I am on site homepage
And I expand "Users" node
And I follow "Groups"
And I press "Create group"
And I set the following fields to these values:
| Group name | I'm the name |
| Group description | I'm the description |
And I press "Save changes"
When I follow "Overview"
And I wait until the page is ready
And I wait "2" seconds
And I hover "#region-main .generaltable td span" "css_element"
Then I should see "I'm the description"
And "Grouping" "select" in the "region-main" "region" should be visible
And "Group" "select" should be visible
And "Activity report" "link" in the "Administration" "block" should not be visible
And "Event monitoring rules" "link" should not be visible
And I should see "Filter groups by"
And I should not see "Filter groupssss by"
And I should see "Group members" in the "#region-main table th.c1" "css_element"
And I should not see "Group membersssss" in the "#region-main table th.c1" "css_element"
And I follow "Groups"
And the "#groupeditform #showcreateorphangroupform" "css_element" should be enabled
And the "#groupeditform #showeditgroupsettingsform" "css_element" should be disabled
@javascript
Scenario: Locators inside specific DOM nodes using CSS selectors
Given the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And I log in as "admin"
And I am on site homepage
And I follow "Course 1"
When I dock "Administration" block
Then I should not see "Question bank" in the ".block-region" "css_element"
And I click on "//div[@id='dock']/descendant::h2[normalize-space(.)='Administration']" "xpath_element"
@javascript
Scenario: Locators inside specific DOM nodes using XPath
Given the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And I log in as "admin"
When I dock "Administration" block
Then I should not see "Turn editing on" in the ".block-region" "css_element"
@@ -351,7 +351,7 @@ Feature: Set up contextual data for tests
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
And I expand "Setup" node
And I follow "Categories and items"
And I follow "Gradebook setup"
Then I should see "Test Grade Item 1"
And I follow "Edit Test Grade Item 1"
And I expand all fieldsets
@@ -424,9 +424,9 @@ Feature: Set up contextual data for tests
And the following "grade categories" exist:
| fullname | course |
| Grade category 1 | C1 |
And the following "grade items" exist:
| itemname | course | outcome | gradecategory |
| Test Outcome Grade Item 1 | C1 | OT1 | Grade category 1 |
And the following "grade items" exist:
| itemname | course | outcome | gradecategory |
| Test Outcome Grade Item 1 | C1 | OT1 | Grade category 1 |
And the following config values are set as admin:
| enableoutcomes | 1 |
When I log in as "admin"
@@ -434,10 +434,22 @@ Feature: Set up contextual data for tests
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
And I expand "Setup" node
And I follow "Categories and items"
And I follow "Gradebook setup"
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"
And I expand all fieldsets
And "//div[contains(@class, 'fitem')]/div[contains(@class, 'fitemtitle')]/div[contains(@class, fstaticlabel) and contains(., 'Grade category')]/../../div[contains(@class, 'felement') and contains(., 'Grade category 1')]" "xpath_element" should exist
And I press "Cancel"
Scenario: Add a block
Given the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
And the following "blocks" exist:
| blockname | contextlevel | reference | pagetypepattern | defaultregion |
| online_users | Course | C1 | course-view-* | site-pre |
When I log in as "admin"
And I am on site homepage
And I follow "Course 1"
Then I should see "Online users"
@@ -15,7 +15,6 @@ Feature: Edit capabilities
| user | course | role |
| teacher1 | C1 | editingteacher |
@javascript
Scenario: Default system capabilities modification
Given I log in as "admin"
And I set the following system permissions of "Teacher" role:
@@ -30,7 +29,6 @@ Feature: Edit capabilities
And "moodle/grade:managesharedforms" capability has "Prevent" permission
And "moodle/course:request" capability has "Prohibit" permission
@javascript
Scenario: Course capabilities overrides
Given I log in as "teacher1"
And I follow "Course 1"
@@ -41,11 +39,11 @@ Feature: Edit capabilities
| mod/forum:editanypost | Prevent |
| mod/forum:addquestion | Allow |
When I set the field "Advanced role override" to "Student (3)"
And I press "Go"
Then "mod/forum:deleteanypost" capability has "Prohibit" permission
And "mod/forum:editanypost" capability has "Prevent" permission
And "mod/forum:addquestion" capability has "Allow" permission
@javascript
Scenario: Module capabilities overrides
Given I log in as "teacher1"
And I follow "Course 1"
@@ -60,6 +58,7 @@ Feature: Edit capabilities
| mod/forum:editanypost | Prevent |
| mod/forum:addquestion | Allow |
When I set the field "Advanced role override" to "Student (3)"
And I press "Go"
Then "mod/forum:deleteanypost" capability has "Prohibit" permission
And "mod/forum:editanypost" capability has "Prevent" permission
And "mod/forum:addquestion" capability has "Allow" permission
@@ -35,53 +35,33 @@ Feature: Verify that all form fields values can be get and set
And I log in as "admin"
And I expand "Site administration" node
And I expand "Appearance" node
And I follow "Manage tags"
# Select (multi-select) - We will check "I set the field...".
And I set the field "otagsadd" to "OT1, OT2, OT3, OT4, OT5"
And I press "Add official tags"
And I am on site homepage
And I follow "Course 1"
And I follow "Reset"
# Select (multi-select) - Checking "the select box should contain".
And I expand all fieldsets
And the "Unenrol users" select box should contain "No roles"
And the "Unenrol users" select box should contain "Student"
And the "Unenrol users" select box should contain "Non-editing teacher"
And the "Unenrol users" select box should contain "Teacher"
And the "Unenrol users" select box should contain "Manager"
And the "Unenrol users" select box should contain "No roles, Student, Non-editing teacher, Teacher, Manager"
And the "Unenrol users" select box should contain "Manager, Teacher, Non-editing teacher, Student, No roles"
And the "Unenrol users" select box should not contain "President"
And the "Unenrol users" select box should not contain "Baker"
And the "Unenrol users" select box should not contain "President, Baker"
And I am on site homepage
And I follow "Course 1"
And I turn editing mode on
And I follow "Test this one"
And I press "Create page"
# Select (multi-select) - Checking "the select box should contain".
And the "tags[officialtags][]" select box should contain "OT1"
And the "tags[officialtags][]" select box should contain "OT2"
And the "tags[officialtags][]" select box should contain "OT3"
And the "tags[officialtags][]" select box should contain "OT4"
And the "tags[officialtags][]" select box should contain "OT5"
And the "tags[officialtags][]" select box should contain "OT1, OT2, OT3, OT4, OT5"
And the "tags[officialtags][]" select box should contain "OT5, OT4, OT3, OT2, OT1"
And the "tags[officialtags][]" select box should not contain "OT6"
And the "tags[officialtags][]" select box should not contain "OT7"
And the "tags[officialtags][]" select box should not contain "OT6, OT7"
# Text (textarea & editor) & Select (multi-select) - Checking "I set the following fields to these values".
When I set the following fields to these values:
| HTML format | Student page contents to be tagged |
| tags[officialtags][] | OT1, OT3, OT5 |
| HTML format | Student page contents |
And I press "Save"
Then I should see "Student page contents to be tagged" in the "region-main" "region"
And I should see "OT1" in the ".wiki-tags" "css_element"
And I should see "OT3" in the ".wiki-tags" "css_element"
And I should see "OT5" in the ".wiki-tags" "css_element"
And I should not see "OT2" in the ".wiki-tags" "css_element"
And I should not see "OT4" in the ".wiki-tags" "css_element"
Then I should see "Student page contents" in the "region-main" "region"
And I follow "Edit"
# Select (multi-select) - Checking "I set the field".
And I set the field "tags[officialtags][]" to "OT2, OT4"
And I press "Save"
And I should see "OT2" in the ".wiki-tags" "css_element"
And I should see "OT4" in the ".wiki-tags" "css_element"
And I should not see "OT1" in the ".wiki-tags" "css_element"
And I should not see "OT3" in the ".wiki-tags" "css_element"
And I should not see "OT5" in the ".wiki-tags" "css_element"
And I follow "Edit"
# Select (multi-select) - Checking "the field matches value" and "the field does not match value".
And the field "tags[officialtags][]" matches value "OT2, OT4"
And the field "tags[officialtags][]" does not match value "OT4"
And the field "tags[officialtags][]" does not match value "OT2"
And the field "tags[officialtags][]" does not match value "OT1, OT3, OT5"
And I press "Cancel"
And I follow "Edit settings"
And I expand all fieldsets
# Checkbox - Checking "I set the field".
@@ -137,6 +117,17 @@ Feature: Verify that all form fields values can be get and set
And I press "Save my choice"
And the field "one" matches value "1"
And the field "two" matches value ""
# Check if field xpath set/match works.
And I am on site homepage
And I follow "Course 1"
And I navigate to "Edit settings" node in "Course administration"
And I set the field with xpath "//input[@id='id_idnumber']" to "Course id number"
And the field with xpath "//input[@name='idnumber']" matches value "Course id number"
And the field with xpath "//input[@name='idnumber']" does not match value ""
And I press "Save and display"
And I navigate to "Edit settings" node in "Course administration"
And the field "Course ID number" matches value "Course id number"
Scenario: with JS disabled all form fields getters and setters works as expected
@@ -13,7 +13,6 @@ Feature: Transform steps arguments
And I follow "Preferences" in the user menu
And I follow "Edit profile"
@javascript
Scenario: Use nasty strings on steps arguments
When I set the field "Surname" to "$NASTYSTRING1"
And I set the field "Description" to "$NASTYSTRING2"
@@ -24,7 +23,6 @@ Feature: Transform steps arguments
And the field "Surname" matches value "$NASTYSTRING1"
And the field "City/town" matches value "$NASTYSTRING3"
@javascript
Scenario: Use nasty strings on table nodes
When I set the following fields to these values:
| Surname | $NASTYSTRING1 |
@@ -36,7 +34,6 @@ Feature: Transform steps arguments
And the field "Surname" matches value "$NASTYSTRING1"
And the field "City/town" matches value "$NASTYSTRING3"
@javascript
Scenario: Use double quotes
When I set the following fields to these values:
| First name | va"lue1 |
@@ -49,7 +46,6 @@ Feature: Transform steps arguments
And the field "Description" matches value "va\\"lue2"
And the field "City/town" matches value "va\"lue3"
@javascript
Scenario: Nasty strings with other contents
When I set the field "First name" to "My Firstname $NASTYSTRING1"
And I set the following fields to these values:
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2015050500; // Requires this Moodle version
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2015111000; // 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 = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2015050500; // Requires this Moodle version.
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2015111000; // Requires this Moodle version.
$plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
@@ -83,7 +83,6 @@ SEARCH.prototype = {
div.append(label).append(this.input);
this.select.insert(div, 'before');
this.select.one('option').setStyle('display', 'none');
this.input.on('keyup', this.typed, this);
this.select.on('change', this.validate, this);
@@ -1 +1 @@
YUI.add("moodle-tool_capability-search",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};n.prototype={form:null,select:null,selectoptions:{},input:null,button:null,lastsearch:null,initializer:function(){this.form=e.one("#capability-overview-form"),this.select=this.form.one("select[data-search=capability]"),this.select.setStyle("minWidth",this.select.get("offsetWidth")),this.select.get("options").each(function(e){var t=e.get("value");this.selectoptions[t]=e},this),this.button=this.form.all("input[type=submit]"),this.lastsearch=this.form.one("input[name=search]");var t=e.Node.create('<div id="capabilitysearchui"></div>'),n=e.Node.create('<label for="capabilitysearch">'+this.get("strsearch")+"</label>");this.input=e.Node.create('<input type="text" id="capabilitysearch" />'),t.append(n).append(this.input),this.select.insert(t,"before"),this.select.one("option").setStyle("display","none"),this.input.on("keyup",this.typed,this),this.select.on("change",this.validate,this),this.lastsearch&&(this.input.set("value",this.lastsearch.get("value")),this.typed(),this.select.one("option[selected]")&&this.select.set("scrollTop",this.select.one("option[selected]").get("getX"))),this.validate()},validate:function(){this.button.set("disabled",this.select.get("value")==="")},typed:function(){var e=this.input.get("value"),t=0,n=null,r;this.lastsearch&&this.lastsearch.set("value",e),this.select.all("option").remove();for(r in this.selectoptions)r.indexOf(e)>=0&&(t++,n=this.selectoptions[r],this.select.append(this.selectoptions[r]));t===0?this.input.addClass("error"):(this.input.removeClass("error"),t===1&&n.set("selected",!0)),this.validate()}},e.extend(n,e.Base,n.prototype,{NAME:"tool_capability-search",ATTRS:{strsearch:{}}}),M.tool_capability=M.tool_capability||{},M.tool_capability.init_capability_search=function(e){new n(e)}},"@VERSION@",{requires:["base","node"]});
YUI.add("moodle-tool_capability-search",function(e,t){var n=function(){n.superclass.constructor.apply(this,arguments)};n.prototype={form:null,select:null,selectoptions:{},input:null,button:null,lastsearch:null,initializer:function(){this.form=e.one("#capability-overview-form"),this.select=this.form.one("select[data-search=capability]"),this.select.setStyle("minWidth",this.select.get("offsetWidth")),this.select.get("options").each(function(e){var t=e.get("value");this.selectoptions[t]=e},this),this.button=this.form.all("input[type=submit]"),this.lastsearch=this.form.one("input[name=search]");var t=e.Node.create('<div id="capabilitysearchui"></div>'),n=e.Node.create('<label for="capabilitysearch">'+this.get("strsearch")+"</label>");this.input=e.Node.create('<input type="text" id="capabilitysearch" />'),t.append(n).append(this.input),this.select.insert(t,"before"),this.input.on("keyup",this.typed,this),this.select.on("change",this.validate,this),this.lastsearch&&(this.input.set("value",this.lastsearch.get("value")),this.typed(),this.select.one("option[selected]")&&this.select.set("scrollTop",this.select.one("option[selected]").get("getX"))),this.validate()},validate:function(){this.button.set("disabled",this.select.get("value")==="")},typed:function(){var e=this.input.get("value"),t=0,n=null,r;this.lastsearch&&this.lastsearch.set("value",e),this.select.all("option").remove();for(r in this.selectoptions)r.indexOf(e)>=0&&(t++,n=this.selectoptions[r],this.select.append(this.selectoptions[r]));t===0?this.input.addClass("error"):(this.input.removeClass("error"),t===1&&n.set("selected",!0)),this.validate()}},e.extend(n,e.Base,n.prototype,{NAME:"tool_capability-search",ATTRS:{strsearch:{}}}),M.tool_capability=M.tool_capability||{},M.tool_capability.init_capability_search=function(e){new n(e)}},"@VERSION@",{requires:["base","node"]});
@@ -83,7 +83,6 @@ SEARCH.prototype = {
div.append(label).append(this.input);
this.select.insert(div, 'before');
this.select.one('option').setStyle('display', 'none');
this.input.on('keyup', this.typed, this);
this.select.on('change', this.validate, this);
-1
View File
@@ -81,7 +81,6 @@ SEARCH.prototype = {
div.append(label).append(this.input);
this.select.insert(div, 'before');
this.select.one('option').setStyle('display', 'none');
this.input.on('keyup', this.typed, this);
this.select.on('change', this.validate, this);
+6
View File
@@ -51,5 +51,11 @@ function xmldb_tool_customlang_upgrade($oldversion) {
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.9.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v3.0.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -63,7 +63,7 @@ if ($translatorsubmitted) {
$checkin = optional_param('savecheckin', false, PARAM_RAW);
if ($checkin === false) {
$nexturl = $PAGE->url;
$nexturl = new moodle_url($PAGE->url, array('p' => $currentpage));
} else {
$nexturl = new moodle_url('/admin/tool/customlang/index.php', array('action'=>'checkin', 'lng' => $lng, 'sesskey'=>sesskey()));
}
+1
View File
@@ -133,6 +133,7 @@ class tool_customlang_renderer extends plugin_renderer_base {
$output .= html_writer::start_tag('div');
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'translatorsubmitted', 'value'=>1));
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'sesskey', 'value'=>sesskey()));
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'p', 'value'=>$translator->currentpage));
$save1 = html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'savecontinue', 'value'=>get_string('savecontinue', 'tool_customlang')));
$save2 = html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'savecheckin', 'value'=>get_string('savecheckin', 'tool_customlang')));
$output .= html_writer::tag('fieldset', $save1.$save2, array('class'=>'buttonsbar'));
+2 -2
View File
@@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2015051100;
$plugin->requires = 2015050500;
$plugin->version = 2015111600;
$plugin->requires = 2015111000;
$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 = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2015050500; // Requires this Moodle version.
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2015111000; // 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 = 2015051100;
$plugin->requires = 2015050500;
$plugin->version = 2015111600;
$plugin->requires = 2015111000;
$plugin->component = 'tool_filetypes';
@@ -253,7 +253,8 @@ class tool_generator_course_backend extends tool_generator_backend {
$courserecord = array(
'shortname' => $this->shortname,
'fullname' => $this->fullname,
'numsections' => self::$paramsections[$this->size]
'numsections' => self::$paramsections[$this->size],
'startdate' => usergetmidnight(time())
);
if (strlen($this->summary) > 0) {
$courserecord['summary'] = $this->summary;
@@ -113,3 +113,7 @@ $backend = new tool_generator_course_backend(
FORMAT_HTML
);
$id = $backend->make();
if (empty($options['quiet'])) {
echo PHP_EOL.'Generated course: '.course_get_url($id).PHP_EOL;
}
+1 -1
View File
@@ -53,7 +53,7 @@ function tool_generator_pluginfile($course, $cm, $context, $filearea, $args, $fo
$file = $fs->get_file($context->id, 'tool_generator', $filearea, $args[0], '/', $args[1]);
// Send the file, always forcing download, we don't want options.
session_get_instance()->write_close();
\core\session\manager::write_close();
send_stored_file($file, 0, 0, true);
}
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2015051100;
$plugin->requires = 2015050500;
$plugin->version = 2015111600;
$plugin->requires = 2015111000;
$plugin->component = 'tool_generator';
+1 -1
View File
@@ -23,7 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['healthnoproblemsfound'] = 'There is no health problem found!';
$string['healthnoproblemsfound'] = 'No health problems were found!';
$string['healthproblemsdetected'] = 'Health problems detected!';
$string['healthproblemsolution'] = 'Health problem solution';
$string['healthreturntomain'] = 'Continue';
+2 -2
View File
@@ -25,8 +25,8 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2015050500; // Requires this Moodle version
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2015111000; // 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 = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2015050500; // Requires this Moodle version
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2015111000; // Requires this Moodle version
$plugin->component = 'tool_innodb'; // Full name of the plugin (used for diagnostics)
+24 -363
View File
@@ -16,7 +16,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Provides tool_installaddon_installer related classes
* Provides tool_installaddon_installer class.
*
* @package tool_installaddon
* @subpackage classes
@@ -103,69 +103,16 @@ class tool_installaddon_installer {
}
/**
* Saves the ZIP file from the {@link tool_installaddon_installfromzip_form} form
* Makes a unique writable storage for uploaded ZIP packages.
*
* The file is saved into the given temporary location for inspection and eventual
* deployment. The form is expected to be submitted and validated.
* We need the saved ZIP to survive across multiple requests so that it can
* be used by the plugin manager after the installation is confirmed. In
* other words, we cannot use make_request_directory() here.
*
* @param tool_installaddon_installfromzip_form $form
* @param string $targetdir full path to the directory where the ZIP should be stored to
* @return string filename of the saved file relative to the given target
* @return string full path to the directory
*/
public function save_installfromzip_file(tool_installaddon_installfromzip_form $form, $targetdir) {
$filename = clean_param($form->get_new_filename('zipfile'), PARAM_FILE);
$form->save_file('zipfile', $targetdir.'/'.$filename);
return $filename;
}
/**
* Extracts the saved file previously saved by {self::save_installfromzip_file()}
*
* The list of files found in the ZIP is returned via $zipcontentfiles parameter
* by reference. The format of that list is array of (string)filerelpath => (bool|string)
* where the array value is either true or a string describing the problematic file.
*
* @see zip_packer::extract_to_pathname()
* @param string $zipfilepath full path to the saved ZIP file
* @param string $targetdir full path to the directory to extract the ZIP file to
* @param string $rootdir explicitly rename the root directory of the ZIP into this non-empty value
* @param array list of extracted files as returned by {@link zip_packer::extract_to_pathname()}
*/
public function extract_installfromzip_file($zipfilepath, $targetdir, $rootdir = '') {
global $CFG;
require_once($CFG->libdir.'/filelib.php');
$fp = get_file_packer('application/zip');
$files = $fp->extract_to_pathname($zipfilepath, $targetdir);
if (!$files) {
return array();
}
if (!empty($rootdir)) {
$files = $this->rename_extracted_rootdir($targetdir, $rootdir, $files);
}
// Sometimes zip may not contain all parent directories, add them to make it consistent.
foreach ($files as $path => $status) {
if ($status !== true) {
continue;
}
$parts = explode('/', trim($path, '/'));
while (array_pop($parts)) {
if (empty($parts)) {
break;
}
$dir = implode('/', $parts).'/';
if (!isset($files[$dir])) {
$files[$dir] = true;
}
}
}
return $files;
public function make_installfromzip_storage() {
return make_unique_writable_directory(make_temp_directory('tool_installaddon'));
}
/**
@@ -186,57 +133,6 @@ class tool_installaddon_installer {
return $menu;
}
/**
* Returns the full path of the root of the given plugin type
*
* Null is returned if the plugin type is not known. False is returned if the plugin type
* root is expected but not found. Otherwise, string is returned.
*
* @param string $plugintype
* @return string|bool|null
*/
public function get_plugintype_root($plugintype) {
$plugintypepath = null;
foreach (core_component::get_plugin_types() as $type => $fullpath) {
if ($type === $plugintype) {
$plugintypepath = $fullpath;
break;
}
}
if (is_null($plugintypepath)) {
return null;
}
if (!is_dir($plugintypepath)) {
return false;
}
return $plugintypepath;
}
/**
* Is it possible to create a new plugin directory for the given plugin type?
*
* @throws coding_exception for invalid plugin types or non-existing plugin type locations
* @param string $plugintype
* @return boolean
*/
public function is_plugintype_writable($plugintype) {
$plugintypepath = $this->get_plugintype_root($plugintype);
if (is_null($plugintypepath)) {
throw new coding_exception('Unknown plugin type!');
}
if ($plugintypepath === false) {
throw new coding_exception('Plugin type location does not exist!');
}
return is_writable($plugintypepath);
}
/**
* Hook method to handle the remote request to install an add-on
*
@@ -245,15 +141,12 @@ class tool_installaddon_installer {
* it.
*
* This hook is called early from admin/tool/installaddon/index.php page so that
* it has opportunity to take over the UI.
* it has opportunity to take over the UI and display the first confirmation screen.
*
* @param tool_installaddon_renderer $output
* @param string|null $request
* @param bool $confirmed
*/
public function handle_remote_request(tool_installaddon_renderer $output, $request, $confirmed = false) {
global $CFG;
require_once(dirname(__FILE__).'/pluginfo_client.php');
public function handle_remote_request(tool_installaddon_renderer $output, $request) {
if (is_null($request)) {
return;
@@ -267,196 +160,34 @@ class tool_installaddon_installer {
}
list($plugintype, $pluginname) = core_component::normalize_component($data->component);
$pluginman = core_plugin_manager::instance();
$plugintypepath = $this->get_plugintype_root($plugintype);
$plugintypepath = $pluginman->get_plugintype_root($plugintype);
if (file_exists($plugintypepath.'/'.$pluginname)) {
echo $output->remote_request_alreadyinstalled_page($data, $this->index_url());
exit();
}
if (!$this->is_plugintype_writable($plugintype)) {
if (!$pluginman->is_plugintype_writable($plugintype)) {
$continueurl = $this->index_url(array('installaddonrequest' => $request));
echo $output->remote_request_permcheck_page($data, $plugintypepath, $continueurl, $this->index_url());
exit();
}
$continueurl = $this->index_url(array(
'installaddonrequest' => $request,
'confirm' => 1,
'sesskey' => sesskey()));
if (!$confirmed) {
echo $output->remote_request_confirm_page($data, $continueurl, $this->index_url());
if (!$pluginman->is_remote_plugin_installable($data->component, $data->version, $reason)) {
$data->reason = $reason;
echo $output->remote_request_non_installable_page($data, $this->index_url());
exit();
}
// The admin has confirmed their intention to install the add-on.
require_sesskey();
$continueurl = $this->index_url(array(
'installremote' => $data->component,
'installremoteversion' => $data->version
));
// Fetch the plugin info. The essential information is the URL to download the ZIP
// and the MD5 hash of the ZIP, obtained via HTTPS.
$client = tool_installaddon_pluginfo_client::instance();
try {
$pluginfo = $client->get_pluginfo($data->component, $data->version);
} catch (tool_installaddon_pluginfo_exception $e) {
if (debugging()) {
throw $e;
} else {
echo $output->remote_request_pluginfo_exception($data, $e, $this->index_url());
exit();
}
}
// Fetch the ZIP with the plugin version
$jobid = md5(rand().uniqid('', true));
$sourcedir = make_temp_directory('tool_installaddon/'.$jobid.'/source');
$zipfilename = 'downloaded.zip';
try {
$this->download_file($pluginfo->downloadurl, $sourcedir.'/'.$zipfilename);
} catch (tool_installaddon_installer_exception $e) {
if (debugging()) {
throw $e;
} else {
echo $output->installer_exception($e, $this->index_url());
exit();
}
}
// Check the MD5 checksum
$md5expected = $pluginfo->downloadmd5;
$md5actual = md5_file($sourcedir.'/'.$zipfilename);
if ($md5expected !== $md5actual) {
$e = new tool_installaddon_installer_exception('err_zip_md5', array('expected' => $md5expected, 'actual' => $md5actual));
if (debugging()) {
throw $e;
} else {
echo $output->installer_exception($e, $this->index_url());
exit();
}
}
// Redirect to the validation page.
$nexturl = new moodle_url('/admin/tool/installaddon/validate.php', array(
'sesskey' => sesskey(),
'jobid' => $jobid,
'zip' => $zipfilename,
'type' => $plugintype));
redirect($nexturl);
}
/**
* Download the given file into the given destination.
*
* This is basically a simplified version of {@link download_file_content()} from
* Moodle itself, tuned for fetching files from moodle.org servers. Same code is used
* in mdeploy.php for fetching available updates.
*
* @param string $source file url starting with http(s)://
* @param string $target store the downloaded content to this file (full path)
* @throws tool_installaddon_installer_exception
*/
public function download_file($source, $target) {
global $CFG;
require_once($CFG->libdir.'/filelib.php');
$targetfile = fopen($target, 'w');
if (!$targetfile) {
throw new tool_installaddon_installer_exception('err_download_write_file', $target);
}
$options = array(
'file' => $targetfile,
'timeout' => 300,
'followlocation' => true,
'maxredirs' => 3,
'ssl_verifypeer' => true,
'ssl_verifyhost' => 2,
);
$curl = new curl(array('proxy' => true));
$result = $curl->download_one($source, null, $options);
$curlinfo = $curl->get_info();
fclose($targetfile);
if ($result !== true) {
throw new tool_installaddon_installer_exception('err_curl_exec', array(
'url' => $source, 'errorno' => $curl->get_errno(), 'error' => $result));
} else if (empty($curlinfo['http_code']) or $curlinfo['http_code'] != 200) {
throw new tool_installaddon_installer_exception('err_curl_http_code', array(
'url' => $source, 'http_code' => $curlinfo['http_code']));
} else if (isset($curlinfo['ssl_verify_result']) and $curlinfo['ssl_verify_result'] != 0) {
throw new tool_installaddon_installer_exception('err_curl_ssl_verify', array(
'url' => $source, 'ssl_verify_result' => $curlinfo['ssl_verify_result']));
}
}
/**
* Moves the given source into a new location recursively
*
* This is cross-device safe implementation to be used instead of the native rename() function.
* See https://bugs.php.net/bug.php?id=54097 for more details.
*
* @param string $source full path to the existing directory
* @param string $target full path to the new location of the directory
* @param int $dirpermissions
* @param int $filepermissions
*/
public function move_directory($source, $target, $dirpermissions, $filepermissions) {
if (file_exists($target)) {
throw new tool_installaddon_installer_exception('err_folder_already_exists', array('path' => $target));
}
if (is_dir($source)) {
$handle = opendir($source);
} else {
throw new tool_installaddon_installer_exception('err_no_such_folder', array('path' => $source));
}
if (!file_exists($target)) {
// Do not use make_writable_directory() here - it is intended for dataroot only.
mkdir($target, true);
@chmod($target, $dirpermissions);
}
if (!is_writable($target)) {
closedir($handle);
throw new tool_installaddon_installer_exception('err_folder_not_writable', array('path' => $target));
}
while ($filename = readdir($handle)) {
$sourcepath = $source.'/'.$filename;
$targetpath = $target.'/'.$filename;
if ($filename === '.' or $filename === '..') {
continue;
}
if (is_dir($sourcepath)) {
$this->move_directory($sourcepath, $targetpath, $dirpermissions, $filepermissions);
} else {
rename($sourcepath, $targetpath);
@chmod($targetpath, $filepermissions);
}
}
closedir($handle);
rmdir($source);
clearstatcache();
echo $output->remote_request_confirm_page($data, $continueurl, $this->index_url());
exit();
}
/**
@@ -466,11 +197,11 @@ class tool_installaddon_installer {
* are supported.
*
* @param string $zipfilepath full path to the saved ZIP file
* @param string $workdir full path to the directory we can use for extracting required bits from the archive
* @return string|bool declared component name or false if unable to detect
*/
public function detect_plugin_component($zipfilepath, $workdir) {
public function detect_plugin_component($zipfilepath) {
$workdir = make_request_directory();
$versionphp = $this->extract_versionphp_file($zipfilepath, $workdir);
if (empty($versionphp)) {
@@ -539,58 +270,6 @@ class tool_installaddon_installer {
return true;
}
/**
* Renames the root directory of the extracted ZIP package.
*
* This method does not validate the presence of the single root directory
* (the validator does it later). It just searches for the first directory
* under the given location and renames it.
*
* The method will not rename the root if the requested location already
* exists.
*
* @param string $dirname the location of the extracted ZIP package
* @param string $rootdir the requested name of the root directory
* @param array $files list of extracted files
* @return array eventually amended list of extracted files
*/
protected function rename_extracted_rootdir($dirname, $rootdir, array $files) {
if (!is_dir($dirname)) {
debugging('Unable to rename rootdir of non-existing content', DEBUG_DEVELOPER);
return $files;
}
if (file_exists($dirname.'/'.$rootdir)) {
debugging('Unable to rename rootdir to already existing folder', DEBUG_DEVELOPER);
return $files;
}
$found = null; // The name of the first subdirectory under the $dirname.
foreach (scandir($dirname) as $item) {
if (substr($item, 0, 1) === '.') {
continue;
}
if (is_dir($dirname.'/'.$item)) {
$found = $item;
break;
}
}
if (!is_null($found)) {
if (rename($dirname.'/'.$found, $dirname.'/'.$rootdir)) {
$newfiles = array();
foreach ($files as $filepath => $status) {
$newpath = preg_replace('~^'.preg_quote($found.'/').'~', preg_quote($rootdir.'/'), $filepath);
$newfiles[$newpath] = $status;
}
return $newfiles;
}
}
return $files;
}
/**
* Decode the request from the Moodle Plugins directory
*
@@ -728,21 +407,3 @@ class tool_installaddon_installer {
return false;
}
}
/**
* General exception thrown by {@link tool_installaddon_installer} class
*
* @copyright 2013 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_installaddon_installer_exception extends moodle_exception {
/**
* @param string $errorcode exception description identifier
* @param mixed $debuginfo debugging data to display
*/
public function __construct($errorcode, $a=null, $debuginfo=null) {
parent::__construct($errorcode, 'tool_installaddon', '', $a, print_r($debuginfo, true));
}
}
@@ -86,6 +86,21 @@ class tool_installaddon_installfromzip_form extends moodleform {
$mform->insertElementBefore($typedetectionfailed, 'permcheck');
}
/**
* Warn that the selected plugin type does not match the detected one.
*
* @param string $detected detected plugin type
*/
public function selected_plugintype_mismatch($detected) {
$mform = $this->_form;
$mform->addRule('plugintype', get_string('required'), 'required', null, 'client');
$mform->setAdvanced('plugintype', false);
$mform->setAdvanced('permcheck', false);
$mform->insertElementBefore($mform->createElement('static', 'selectedplugintypemismatch', '',
html_writer::span(get_string('typedetectionmismatch', 'tool_installaddon', $detected), 'error')), 'permcheck');
}
/**
* Validate the form fields
*
@@ -95,12 +110,12 @@ class tool_installaddon_installfromzip_form extends moodleform {
*/
public function validation($data, $files) {
$installer = $this->_customdata['installer'];
$pluginman = core_plugin_manager::instance();
$errors = parent::validation($data, $files);
if (!empty($data['plugintype'])) {
if (!$installer->is_plugintype_writable($data['plugintype'])) {
$path = $installer->get_plugintype_root($data['plugintype']);
if (!$pluginman->is_plugintype_writable($data['plugintype'])) {
$path = $pluginman->get_plugintype_root($data['plugintype']);
$errors['plugintype'] = get_string('permcheckresultno', 'tool_installaddon', array('path' => $path));
}
}
@@ -1,209 +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/>.
/**
* Provides tool_installaddon_pluginfo_client and related classes
*
* @package tool_installaddon
* @subpackage classes
* @copyright 2013 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Implements a client for https://download.moodle.org/api/x.y/pluginfo.php service
*
* @copyright 2013 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_installaddon_pluginfo_client {
/**
* Factory method returning an instance of this class.
*
* @return tool_installaddon_pluginfo_client
*/
public static function instance() {
return new static();
}
/**
* Return the information about the plugin
*
* @throws tool_installaddon_pluginfo_exception
* @param string $component
* @param string $version
* @return stdClass the pluginfo structure
*/
public function get_pluginfo($component, $version) {
$response = $this->call_service($component, $version);
$response = $this->decode_response($response);
$this->validate_response($response);
return $response->pluginfo;
}
// End of external API /////////////////////////////////////////////////
/**
* @see self::instance()
*/
protected function __construct() {
}
/**
* Calls the pluginfo.php service and returns the raw response
*
* @param string $component
* @param string $version
* @return string
*/
protected function call_service($component, $version) {
global $CFG;
require_once($CFG->libdir.'/filelib.php');
$curl = new curl(array('proxy' => true));
$response = $curl->get(
$this->service_request_url(),
$this->service_request_params($component, $version),
$this->service_request_options());
$curlerrno = $curl->get_errno();
$curlinfo = $curl->get_info();
if (!empty($curlerrno)) {
throw new tool_installaddon_pluginfo_exception('err_curl_exec', array(
'url' => $curlinfo['url'], 'errno' => $curlerrno, 'error' => $curl->error));
} else if ($curlinfo['http_code'] != 200) {
throw new tool_installaddon_pluginfo_exception('err_curl_http_code', array(
'url' => $curlinfo['url'], 'http_code' => $curlinfo['http_code']));
} else if (isset($curlinfo['ssl_verify_result']) and $curlinfo['ssl_verify_result'] != 0) {
throw new tool_installaddon_pluginfo_exception('err_curl_ssl_verify', array(
'url' => $curlinfo['url'], 'ssl_verify_result' => $curlinfo['ssl_verify_result']));
}
return $response;
}
/**
* Return URL to the pluginfo.php service
*
* @return moodle_url
*/
protected function service_request_url() {
global $CFG;
if (!empty($CFG->config_php_settings['alternativepluginfoserviceurl'])) {
$url = $CFG->config_php_settings['alternativepluginfoserviceurl'];
} else {
$url = 'https://download.moodle.org/api/1.2/pluginfo.php';
}
return new moodle_url($url);
}
/**
* Return list of pluginfo service parameters
*
* @param string $component
* @param string $version
* @return array
*/
protected function service_request_params($component, $version) {
$params = array();
$params['format'] = 'json';
$params['plugin'] = $component.'@'.$version;
return $params;
}
/**
* Return cURL options for the service request
*
* @return array of (string)param => (string)value
*/
protected function service_request_options() {
global $CFG;
$options = array(
'CURLOPT_SSL_VERIFYHOST' => 2, // this is the default in {@link curl} class but just in case
'CURLOPT_SSL_VERIFYPEER' => true,
);
return $options;
}
/**
* Decode the raw service response
*
* @param string $raw
* @return stdClass
*/
protected function decode_response($raw) {
return json_decode($raw);
}
/**
* Validate decoded service response
*
* @param stdClass $response
*/
protected function validate_response($response) {
if (empty($response)) {
throw new tool_installaddon_pluginfo_exception('err_response_empty');
}
if (empty($response->status) or $response->status !== 'OK') {
throw new tool_installaddon_pluginfo_exception('err_response_status', $response->status);
}
if (empty($response->apiver) or $response->apiver !== '1.2') {
throw new tool_installaddon_pluginfo_exception('err_response_api_version', $response->apiver);
}
if (empty($response->pluginfo->component) or empty($response->pluginfo->downloadurl)
or empty($response->pluginfo->downloadmd5)) {
throw new tool_installaddon_pluginfo_exception('err_response_pluginfo');
}
}
}
/**
* General exception thrown by {@link tool_installaddon_pluginfo_client} class
*
* @copyright 2013 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_installaddon_pluginfo_exception extends moodle_exception {
/**
* @param string $errorcode exception description identifier
* @param mixed $debuginfo debugging data to display
*/
public function __construct($errorcode, $a=null, $debuginfo=null) {
parent::__construct($errorcode, 'tool_installaddon', '', $a, print_r($debuginfo, true));
}
}
-78
View File
@@ -1,78 +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/>.
/**
* Deploy the validated contents of the ZIP package to the $CFG->dirroot
*
* @package tool_installaddon
* @copyright 2013 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require(dirname(__FILE__) . '/../../../config.php');
require_once($CFG->libdir.'/filelib.php');
require_login();
require_capability('moodle/site:config', context_system::instance());
if (!empty($CFG->disableonclickaddoninstall)) {
notice(get_string('featuredisabled', 'tool_installaddon'));
}
require_sesskey();
$jobid = required_param('jobid', PARAM_ALPHANUM);
$plugintype = required_param('type', PARAM_ALPHANUMEXT);
$pluginname = required_param('name', PARAM_PLUGIN);
$zipcontentpath = $CFG->tempdir.'/tool_installaddon/'.$jobid.'/contents';
if (!is_dir($zipcontentpath)) {
debugging('Invalid location of the extracted ZIP package: '.s($zipcontentpath), DEBUG_DEVELOPER);
redirect(new moodle_url('/admin/tool/installaddon/index.php'),
get_string('invaliddata', 'core_error'));
}
if (!is_dir($zipcontentpath.'/'.$pluginname)) {
debugging('Invalid location of the plugin root directory: '.$zipcontentpath.'/'.$pluginname, DEBUG_DEVELOPER);
redirect(new moodle_url('/admin/tool/installaddon/index.php'),
get_string('invaliddata', 'core_error'));
}
$installer = tool_installaddon_installer::instance();
if (!$installer->is_plugintype_writable($plugintype)) {
debugging('Plugin type location not writable', DEBUG_DEVELOPER);
redirect(new moodle_url('/admin/tool/installaddon/index.php'),
get_string('invaliddata', 'core_error'));
}
$plugintypepath = $installer->get_plugintype_root($plugintype);
if (file_exists($plugintypepath.'/'.$pluginname)) {
debugging('Target location already exists', DEBUG_DEVELOPER);
redirect(new moodle_url('/admin/tool/installaddon/index.php'),
get_string('invaliddata', 'core_error'));
}
// Copy permissions form the plugin type directory.
$dirpermissions = fileperms($plugintypepath);
$filepermissions = ($dirpermissions & 0666); // Strip execute flags.
$installer->move_directory($zipcontentpath.'/'.$pluginname, $plugintypepath.'/'.$pluginname, $dirpermissions, $filepermissions);
fulldelete($CFG->tempdir.'/tool_installaddon/'.$jobid);
redirect(new moodle_url('/admin'));
+89 -29
View File
@@ -28,10 +28,11 @@ require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('tool_installaddon_index');
if (!empty($CFG->disableonclickaddoninstall)) {
if (!empty($CFG->disableupdateautodeploy)) {
notice(get_string('featuredisabled', 'tool_installaddon'));
}
$pluginman = core_plugin_manager::instance();
$installer = tool_installaddon_installer::instance();
$output = $PAGE->get_renderer('tool_installaddon');
@@ -39,8 +40,55 @@ $output->set_installer_instance($installer);
// Handle the eventual request for installing from remote repository.
$remoterequest = optional_param('installaddonrequest', null, PARAM_RAW);
$confirmed = optional_param('confirm', false, PARAM_BOOL);
$installer->handle_remote_request($output, $remoterequest, $confirmed);
$installer->handle_remote_request($output, $remoterequest);
// Handle the confirmed installation request.
$installremote = optional_param('installremote', null, PARAM_COMPONENT);
$installremoteversion = optional_param('installremoteversion', null, PARAM_INT);
$installremoteconfirm = optional_param('installremoteconfirm', false, PARAM_BOOL);
if ($installremote and $installremoteversion) {
require_sesskey();
require_once($CFG->libdir.'/upgradelib.php');
$PAGE->set_pagelayout('maintenance');
$PAGE->set_popup_notification_allowed(false);
if ($pluginman->is_remote_plugin_installable($installremote, $installremoteversion)) {
$installable = array($pluginman->get_remote_plugin_info($installremote, $installremoteversion, true));
upgrade_install_plugins($installable, $installremoteconfirm,
get_string('installfromrepo', 'tool_installaddon'),
new moodle_url($PAGE->url, array('installremote' => $installremote,
'installremoteversion' => $installremoteversion, 'installremoteconfirm' => 1)
)
);
}
// We should never get here.
throw new moodle_exception('installing_non_installable_component', 'tool_installaddon');
}
// Handle installation of a plugin from the ZIP file.
$installzipcomponent = optional_param('installzipcomponent', null, PARAM_COMPONENT);
$installzipstorage = optional_param('installzipstorage', null, PARAM_FILE);
$installzipconfirm = optional_param('installzipconfirm', false, PARAM_BOOL);
if ($installzipcomponent and $installzipstorage) {
require_sesskey();
require_once($CFG->libdir.'/upgradelib.php');
$PAGE->set_pagelayout('maintenance');
$PAGE->set_popup_notification_allowed(false);
$installable = array((object)array(
'component' => $installzipcomponent,
'zipfilepath' => make_temp_directory('tool_installaddon').'/'.$installzipstorage.'/plugin.zip',
));
upgrade_install_plugins($installable, $installzipconfirm, get_string('installfromzip', 'tool_installaddon'),
new moodle_url($installer->index_url(), array('installzipcomponent' => $installzipcomponent,
'installzipstorage' => $installzipstorage, 'installzipconfirm' => 1)
)
);
}
$form = $installer->get_installfromzip_form();
@@ -48,35 +96,47 @@ if ($form->is_cancelled()) {
redirect($PAGE->url);
} else if ($data = $form->get_data()) {
// Save the ZIP file into a temporary location.
$jobid = md5(rand().uniqid('', true));
$sourcedir = make_temp_directory('tool_installaddon/'.$jobid.'/source');
$zipfilename = $installer->save_installfromzip_file($form, $sourcedir);
if (empty($data->plugintype)) {
$versiondir = make_temp_directory('tool_installaddon/'.$jobid.'/version');
$detected = $installer->detect_plugin_component($sourcedir.'/'.$zipfilename, $versiondir);
if (empty($detected)) {
$form->require_explicit_plugintype();
} else {
list($detectedtype, $detectedname) = core_component::normalize_component($detected);
if ($detectedtype and $detectedname and $detectedtype !== 'core') {
$data->plugintype = $detectedtype;
} else {
$form->require_explicit_plugintype();
}
$storage = $installer->make_installfromzip_storage();
$form->save_file('zipfile', $storage.'/plugin.zip');
$ziprootdir = $pluginman->get_plugin_zip_root_dir($storage.'/plugin.zip');
if (empty($ziprootdir)) {
echo $output->zip_not_valid_plugin_package_page($installer->index_url());
die();
}
$component = $installer->detect_plugin_component($storage.'/plugin.zip');
if (!empty($component) and !empty($data->plugintype)) {
// If the plugin type was explicitly set, make sure it matches the detected one.
list($detectedtype, $detectedname) = core_component::normalize_component($component);
if ($detectedtype !== $data->plugintype) {
$form->selected_plugintype_mismatch($detectedtype);
echo $output->index_page();
die();
}
}
// Redirect to the validation page.
if (!empty($data->plugintype)) {
$nexturl = new moodle_url('/admin/tool/installaddon/validate.php', array(
'sesskey' => sesskey(),
'jobid' => $jobid,
'zip' => $zipfilename,
'type' => $data->plugintype,
'rootdir' => $data->rootdir));
redirect($nexturl);
if (empty($component)) {
// This should not happen as all plugins are supposed to declare their
// component. Still, let admins upload legacy packages if they want/need.
if (empty($data->plugintype)) {
$form->require_explicit_plugintype();
echo $output->index_page();
die();
}
if (!empty($data->rootdir)) {
$usepluginname = $data->rootdir;
} else {
$usepluginname = $ziprootdir;
}
$component = $data->plugintype.'_'.$usepluginname;
}
redirect($installer->index_url(array(
'installzipcomponent' => $component,
'installzipstorage' => basename($storage),
'sesskey' => sesskey(),
)));
}
// Output starts here.
// Display the tool main page.
echo $output->index_page();
@@ -31,13 +31,13 @@ $string['acknowledgementtext'] = 'I understand that it is my responsibility to h
$string['featuredisabled'] = 'The plugin installer is disabled on this site.';
$string['installaddon'] = 'Install plugin!';
$string['installaddons'] = 'Install plugins';
$string['installexception'] = 'Oops... An error occurred while trying to install the plugin. Turn debugging mode on to see details of the error.';
$string['installfromrepo'] = 'Install plugins from the Moodle plugins directory';
$string['installfromrepo_help'] = 'You will be redirected to the Moodle plugins directory to search for and install a plugin. Note that your site full name, URL and Moodle version will be sent as well, to make the installation process easier for you.';
$string['installfromzip'] = 'Install plugin from ZIP file';
$string['installfromzip_help'] = 'An alternative to installing a plugin directly from the Moodle plugins directory is to upload a ZIP package of the plugin. The ZIP package should have the same structure as a package downloaded from the Moodle plugins directory.';
$string['installfromzipfile'] = 'ZIP package';
$string['installfromzipfile_help'] = 'The plugin ZIP package must contain just one directory, named to match the plugin. The ZIP will be extracted into an appropriate location for the plugin type. If the package has been downloaded from the Moodle plugins directory then it will have this structure.';
$string['installfromzipfile_help'] = 'The plugin ZIP package must contain just one directory, named to match the plugin name. The ZIP will be extracted into an appropriate location for the plugin type. If the package has been downloaded from the Moodle plugins directory then it will have this structure.';
$string['installfromzipinvalid'] = 'The plugin ZIP package must contain just one directory, named to match the plugin name. The file provided is not a valid plugin ZIP package.';
$string['installfromziprootdir'] = 'Rename the root directory';
$string['installfromziprootdir_help'] = 'Some ZIP packages, such as those generated by Github, may contain an incorrect root directory name. If so, the correct name may be entered here.';
$string['installfromzipsubmit'] = 'Install plugin from the ZIP file';
@@ -56,50 +56,6 @@ $string['remoterequestconfirm'] = 'There is a request to install plugin <strong>
$string['remoterequestinvalid'] = 'There is a request to install a plugin from the Moodle plugins directory on this site. Unfortunately the request is not valid and so the plugin cannot be installed.';
$string['remoterequestpermcheck'] = 'There is a request to install plugin {$a->name} ({$a->component}) version {$a->version} from the Moodle plugins directory on this site. However, the location <strong>{$a->typepath}</strong> is <strong>not writable</strong>. You need to give write access for the web server user to the location, then press the continue button to repeat the check.';
$string['remoterequestpluginfoexception'] = 'Oops... An error occurred while trying to obtain information about the plugin {$a->name} ({$a->component}) version {$a->version}. The plugin cannot be installed. Turn debugging mode on to see details of the error.';
$string['remoterequestnoninstallable'] = 'There is a request to install plugin {$a->name} ({$a->component}) version {$a->version} from the Moodle plugins directory on this site. However, the plugin installation pre-check failed (reason code: {$a->reason}).';
$string['typedetectionfailed'] = 'Unable to detect the plugin type. Please choose the plugin type manually.';
$string['validation'] = 'Plugin package validation';
$string['validationmsg_componentmatch'] = 'Full component name';
$string['validationmsg_componentmismatchname'] = 'Plugin name mismatch';
$string['validationmsg_componentmismatchname_help'] = 'Some ZIP packages, such as those generated by Github, may contain an incorrect root directory name. You need to fix the name of the root directory to match the declared plugin name.';
$string['validationmsg_componentmismatchname_info'] = 'The plugin declares its name is \'{$a}\' but that does not match the name of the root directory.';
$string['validationmsg_componentmismatchtype'] = 'Plugin type mismatch';
$string['validationmsg_componentmismatchtype_info'] = 'Expected type \'{$a->expected}\' but the plugin declares its type is \'{$a->found}\'.';
$string['validationmsg_filenotexists'] = 'Extracted file not found';
$string['validationmsg_filesnumber'] = 'Not enough files found in the package';
$string['validationmsg_filestatus'] = 'Unable to extract all files';
$string['validationmsg_filestatus_info'] = 'Attempting to extract file {$a->file} resulted in error \'{$a->status}\'.';
$string['validationmsg_foundlangfile'] = 'Found language file';
$string['validationmsg_maturity'] = 'Declared maturity level';
$string['validationmsg_maturity_help'] = 'The plugin can declare its maturity level. If the maintainer considers the plugin stable, the declared maturity level will read MATURITY_STABLE. All other maturity levels (such as alpha or beta) should be considered unstable and a warning is raised.';
$string['validationmsg_missingexpectedlangenfile'] = 'English language file name mismatch';
$string['validationmsg_missingexpectedlangenfile_info'] = 'The given plugin type is missing the expected English language file {$a}.';
$string['validationmsg_missinglangenfile'] = 'No English language file found';
$string['validationmsg_missinglangenfolder'] = 'Missing English language folder';
$string['validationmsg_missingversion'] = 'Plugin does not declare its version';
$string['validationmsg_missingversionphp'] = 'File version.php not found';
$string['validationmsg_multiplelangenfiles'] = 'Multiple English language files found';
$string['validationmsg_onedir'] = 'Invalid structure of the ZIP package.';
$string['validationmsg_onedir_help'] = 'The ZIP package must contain just one root directory that holds the plugin code. The name of that root directory must match the name of the plugin.';
$string['validationmsg_pathwritable'] = 'Write access check';
$string['validationmsg_pluginversion'] = 'Plugin version';
$string['validationmsg_release'] = 'Plugin release';
$string['validationmsg_requiresmoodle'] = 'Required Moodle version';
$string['validationmsg_rootdir'] = 'Name of the plugin to be installed';
$string['validationmsg_rootdir_help'] = 'The name of the root directory in the ZIP package forms the name of the plugin to be installed. If the name is not correct, you may wish to rename the root directory in the ZIP prior to installing the plugin.';
$string['validationmsg_rootdirinvalid'] = 'Invalid plugin name';
$string['validationmsg_rootdirinvalid_help'] = 'The name of the root directory in the ZIP package violates formal syntax requirements. Some ZIP packages, such as those generated by Github, may contain an incorrect root directory name. You need to fix the name of the root directory to match the plugin name.';
$string['validationmsg_targetexists'] = 'Target location already exists';
$string['validationmsg_targetexists_help'] = 'The directory that the plugin is to be installed to must not yet exist.';
$string['validationmsg_unknowntype'] = 'Unknown plugin type';
$string['validationmsglevel_debug'] = 'Debug';
$string['validationmsglevel_error'] = 'Error';
$string['validationmsglevel_info'] = 'OK';
$string['validationmsglevel_warning'] = 'Warning';
$string['validationresult0'] = 'Validation failed!';
$string['validationresult0_help'] = 'A serious problem was detected and so it is not safe to install the plugin. See the validation log messages for details.';
$string['validationresult1'] = 'Validation passed!';
$string['validationresult2_help'] = 'No serious problems were detected. You can continue with the plugin installation. See the validation log messages for more details and eventual warnings.';
$string['validationresult1_help'] = 'The plugin package has been validated and no serious problems were detected.';
$string['validationresultinfo'] = 'Info';
$string['validationresultmsg'] = 'Message';
$string['validationresultstatus'] = 'Status';
$string['typedetectionmismatch'] = 'The selected plugin type does not match the one declared by the plugin: {$a}';
+4 -4
View File
@@ -36,7 +36,7 @@ if (!has_capability('moodle/site:config', context_system::instance())) {
die();
}
if (!empty($CFG->disableonclickaddoninstall)) {
if (!empty($CFG->disableupdateautodeploy)) {
header('HTTP/1.1 403 Forbidden');
die();
}
@@ -52,9 +52,9 @@ if (is_null($plugintype)) {
die();
}
$installer = tool_installaddon_installer::instance();
$pluginman = core_plugin_manager::instance();
$plugintypepath = $installer->get_plugintype_root($plugintype);
$plugintypepath = $pluginman->get_plugintype_root($plugintype);
if (empty($plugintypepath)) {
header('HTTP/1.1 400 Bad Request');
@@ -63,7 +63,7 @@ if (empty($plugintypepath)) {
$response = array('path' => $plugintypepath);
if ($installer->is_plugintype_writable($plugintype)) {
if ($pluginman->is_plugintype_writable($plugintype)) {
$response['writable'] = 1;
} else {
$response['writable'] = 0;
+10 -180
View File
@@ -37,9 +37,6 @@ class tool_installaddon_renderer extends plugin_renderer_base {
/** @var tool_installaddon_installer */
protected $installer = null;
/** @var tool_installaddon_validator */
protected $validator = null;
/**
* Sets the tool_installaddon_installer instance being used.
*
@@ -54,20 +51,6 @@ class tool_installaddon_renderer extends plugin_renderer_base {
}
}
/**
* Sets the tool_installaddon_validator instance being used.
*
* @throws coding_exception if the validator has been already set
* @param tool_installaddon_validator $validator
*/
public function set_validator_instance(tool_installaddon_validator $validator) {
if (is_null($this->validator)) {
$this->validator = $validator;
} else {
throw new coding_exception('Attempting to reset the validator instance.');
}
}
/**
* Defines the index page layout
*
@@ -96,24 +79,17 @@ class tool_installaddon_renderer extends plugin_renderer_base {
}
/**
* Defines the validation results page layout
* Inform the user that the ZIP is not a valid plugin package file.
*
* @param moodle_url $continueurl
* @return string
*/
public function validation_page() {
if (is_null($this->installer)) {
throw new coding_exception('Installer instance has not been set.');
}
if (is_null($this->validator)) {
throw new coding_exception('Validator instance has not been set.');
}
public function zip_not_valid_plugin_package_page(moodle_url $continueurl) {
$out = $this->output->header();
$out .= $this->validation_page_heading();
$out .= $this->validation_page_messages();
$out .= $this->validation_page_continue();
$out .= $this->output->heading(get_string('installfromzip', 'tool_installaddon'));
$out .= $this->output->box(get_string('installfromzipinvalid', 'tool_installaddon'), 'generalbox', 'notice');
$out .= $this->output->continue_button($continueurl, 'get');
$out .= $this->output->footer();
return $out;
@@ -194,44 +170,17 @@ class tool_installaddon_renderer extends plugin_renderer_base {
}
/**
* Inform the user about pluginfo service call exception
* Inform the user that the requested remote plugin is not installable.
*
* This implementation does not actually use the passed exception. Custom renderers might want to
* display additional data obtained via {@link get_exception_info()}. Also note, this method is called
* in non-debugging mode only. If debugging is allowed at the site, default exception handler is triggered.
*
* @param stdClass $data decoded request data
* @param tool_installaddon_pluginfo_exception $e thrown exception
* @param stdClass $data decoded request data with ->reason property added
* @param moodle_url $continueurl
* @return string
*/
public function remote_request_pluginfo_exception(stdClass $data, tool_installaddon_pluginfo_exception $e, moodle_url $continueurl) {
public function remote_request_non_installable_page(stdClass $data, moodle_url $continueurl) {
$out = $this->output->header();
$out .= $this->output->heading(get_string('installfromrepo', 'tool_installaddon'));
$out .= $this->output->box(get_string('remoterequestpluginfoexception', 'tool_installaddon', $data), 'generalbox', 'notice');
$out .= $this->output->continue_button($continueurl, 'get');
$out .= $this->output->footer();
return $out;
}
/**
* Inform the user about the installer exception
*
* This implementation does not actually use the passed exception. Custom renderers might want to
* display additional data obtained via {@link get_exception_info()}. Also note, this method is called
* in non-debugging mode only. If debugging is allowed at the site, default exception handler is triggered.
*
* @param tool_installaddon_installer_exception $e thrown exception
* @param moodle_url $continueurl
* @return string
*/
public function installer_exception(tool_installaddon_installer_exception $e, moodle_url $continueurl) {
$out = $this->output->header();
$out .= $this->output->heading(get_string('installfromrepo', 'tool_installaddon'));
$out .= $this->output->box(get_string('installexception', 'tool_installaddon'), 'generalbox', 'notice');
$out .= $this->output->box(get_string('remoterequestnoninstallable', 'tool_installaddon', $data), 'generalbox', 'notice');
$out .= $this->output->continue_button($continueurl, 'get');
$out .= $this->output->footer();
@@ -284,123 +233,4 @@ class tool_installaddon_renderer extends plugin_renderer_base {
return $out;
}
/**
* Renders the page title and the overall validation verdict
*
* @return string
*/
protected function validation_page_heading() {
$heading = $this->output->heading(get_string('validation', 'tool_installaddon'));
if ($this->validator->get_result()) {
$status = $this->output->container(
html_writer::span(get_string('validationresult1', 'tool_installaddon'), 'verdict').
$this->output->help_icon('validationresult1', 'tool_installaddon'),
array('validationresult', 'success')
);
} else {
$status = $this->output->container(
html_writer::span(get_string('validationresult0', 'tool_installaddon'), 'verdict').
$this->output->help_icon('validationresult0', 'tool_installaddon'),
array('validationresult', 'failure')
);
}
return $heading . $status;
}
/**
* Renders validation log messages.
*
* @return string
*/
protected function validation_page_messages() {
$validator = $this->validator; // We need this to be able to use their constants.
$messages = $validator->get_messages();
if (empty($messages)) {
return '';
}
$table = new html_table();
$table->attributes['class'] = 'validationmessages generaltable';
$table->head = array(
get_string('validationresultstatus', 'tool_installaddon'),
get_string('validationresultmsg', 'tool_installaddon'),
get_string('validationresultinfo', 'tool_installaddon')
);
$table->colclasses = array('msgstatus', 'msgtext', 'msginfo');
$stringman = get_string_manager();
foreach ($messages as $message) {
if ($message->level === $validator::DEBUG and !debugging()) {
continue;
}
$msgstatus = get_string('validationmsglevel_'.$message->level, 'tool_installaddon');
$msgtext = $msgtext = s($message->msgcode);
if (is_null($message->addinfo)) {
$msginfo = '';
} else {
$msginfo = html_writer::tag('pre', s(print_r($message->addinfo, true)));
}
$msghelp = '';
// Replace the message code with the string if it is defined.
if ($stringman->string_exists('validationmsg_'.$message->msgcode, 'tool_installaddon')) {
$msgtext = get_string('validationmsg_'.$message->msgcode, 'tool_installaddon');
// And check for the eventual help, too.
if ($stringman->string_exists('validationmsg_'.$message->msgcode.'_help', 'tool_installaddon')) {
$msghelp = $this->output->help_icon('validationmsg_'.$message->msgcode, 'tool_installaddon');
}
}
// Re-format the message info using a string if it is define.
if (!is_null($message->addinfo) and $stringman->string_exists('validationmsg_'.$message->msgcode.'_info', 'tool_installaddon')) {
$msginfo = get_string('validationmsg_'.$message->msgcode.'_info', 'tool_installaddon', $message->addinfo);
}
$row = new html_table_row(array($msgstatus, $msgtext.$msghelp, $msginfo));
$row->attributes['class'] = 'level-'.$message->level.' '.$message->msgcode;
$table->data[] = $row;
}
return html_writer::table($table);
}
/**
* Renders widgets to continue from the validation results page
*
* @return string
*/
protected function validation_page_continue() {
$output = '';
$conturl = $this->validator->get_continue_url();
if (is_null($conturl)) {
$contbutton = '';
} else {
$contbutton = $this->output->single_button(
$conturl, get_string('installaddon', 'tool_installaddon'), 'post',
array('class' => 'singlebutton continuebutton'));
$output .= $this->output->heading(get_string('acknowledgement', 'tool_installaddon'), 3);
$output .= $this->output->container(get_string('acknowledgementtext', 'tool_installaddon'));
}
$cancelbutton = $this->output->single_button(
new moodle_url('/admin/tool/installaddon/index.php'), get_string('cancel', 'core'), 'get',
array('class' => 'singlebutton cancelbutton'));
$output .= $this->output->container($cancelbutton.$contbutton, 'postvalidationbuttons');
return $output;
}
}
+1 -7
View File
@@ -25,15 +25,9 @@
defined('MOODLE_INTERNAL') || die();
if ($hassiteconfig and empty($CFG->disableonclickaddoninstall)) {
if ($hassiteconfig and empty($CFG->disableupdateautodeploy)) {
$ADMIN->add('modules', new admin_externalpage('tool_installaddon_index',
get_string('installaddons', 'tool_installaddon'),
"$CFG->wwwroot/$CFG->admin/tool/installaddon/index.php"), 'modsettings');
$ADMIN->add('modules', new admin_externalpage('tool_installaddon_validate',
get_string('validation', 'tool_installaddon'),
"$CFG->wwwroot/$CFG->admin/tool/installaddon/validate.php",
'moodle/site:config',
true), 'modsettings');
}
-55
View File
@@ -11,58 +11,3 @@
#page-admin-tool-installaddon-index #installfromrepobox .singlebutton input[type=submit] {
padding: 1em;
}
#page-admin-tool-installaddon-validate .validationresult {
margin: 2em auto;
text-align: center;
}
#page-admin-tool-installaddon-validate .validationresult .verdict {
margin: 0em 0.5em;
padding: 0.5em;
border: 2px solid;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
font-weight: bold;
}
#page-admin-tool-installaddon-validate .validationresult.success .verdict {
background-color: #e7f1c3;
border-color: #aaeeaa;
}
#page-admin-tool-installaddon-validate .validationresult.failure .verdict {
background-color: #ffd3d9;
border-color: #eeaaaa;
}
#page-admin-tool-installaddon-validate .validationmessages {
margin: 0px auto;
}
#page-admin-tool-installaddon-validate .validationmessages .level-error .msgstatus {
background-color: #ffd3d9;
}
#page-admin-tool-installaddon-validate .validationmessages .level-warning .msgstatus {
background-color: #f3f2aa;
}
#page-admin-tool-installaddon-validate .validationmessages .level-info .msgstatus {
background-color: #e7f1c3;
}
#page-admin-tool-installaddon-validate .validationmessages .level-debug .msgstatus {
background-color: #d2ebff;
}
#page-admin-tool-installaddon-validate .postvalidationbuttons {
text-align: center;
margin: 1em auto;
}
#page-admin-tool-installaddon-validate .postvalidationbuttons .singlebutton {
display: inline-block;
margin: 1em 1em;
}
@@ -1 +0,0 @@
<?php
@@ -1 +0,0 @@
<?php
@@ -1,3 +0,0 @@
<?php
@@ -1,3 +0,0 @@
<?php
// index.php
@@ -1,9 +0,0 @@
<?php
$module->version = 10; // Ignored, this should use $plugin
$plugin->version = 2013031900;
$plugin->component = 'local_foobar';
$plugin->requires = 2013031200;
$module->release = 'We are not an activity module!';
$plugin->maturity = MATURITY_ALPHA;
//$plugin->release = 'And this is commented';
@@ -0,0 +1,60 @@
<?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/>.
/**
* Provides {@link testable_tool_installaddon_installer} class.
*
* @package tool_installaddon
* @subpackage fixtures
* @category test
* @copyright 2013, 2015 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Testable subclass of the tested class
*
* @copyright 2013 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class testable_tool_installaddon_installer extends tool_installaddon_installer {
public function get_site_fullname() {
return strip_tags('<h1 onmouseover="alert(\'Hello Moodle.org!\');">Nasty site</h1>');
}
public function get_site_url() {
return 'file:///etc/passwd';
}
public function get_site_major_version() {
return "2.5'; DROP TABLE mdl_user; --";
}
public function testable_decode_remote_request($request) {
return parent::decode_remote_request($request);
}
protected function should_send_site_info() {
return true;
}
public function testable_detect_plugin_component_from_versionphp($code) {
return parent::detect_plugin_component_from_versionphp($code);
}
}
@@ -26,6 +26,8 @@
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once(__DIR__.'/fixtures/testable_installer.php');
/**
* Unit tests for the {@link tool_installaddon_installer} class
@@ -49,29 +51,6 @@ class tool_installaddon_installer_testcase extends advanced_testcase {
$this->assertSame("2.5'; DROP TABLE mdl_user; --", $site['majorversion']);
}
public function test_extract_installfromzip_file() {
$jobid = md5(rand().uniqid('test_', true));
$sourcedir = make_temp_directory('tool_installaddon/'.$jobid.'/source');
$contentsdir = make_temp_directory('tool_installaddon/'.$jobid.'/contents');
copy(dirname(__FILE__).'/fixtures/zips/invalidroot.zip', $sourcedir.'/testinvalidroot.zip');
$installer = tool_installaddon_installer::instance();
$files = $installer->extract_installfromzip_file($sourcedir.'/testinvalidroot.zip', $contentsdir, 'fixed_root');
$this->assertInternalType('array', $files);
$this->assertCount(4, $files);
$this->assertSame(true, $files['fixed_root/']);
$this->assertSame(true, $files['fixed_root/lang/']);
$this->assertSame(true, $files['fixed_root/lang/en/']);
$this->assertSame(true, $files['fixed_root/lang/en/fixed_root.php']);
foreach ($files as $file => $status) {
if (substr($file, -1) === '/') {
$this->assertTrue(is_dir($contentsdir.'/'.$file));
} else {
$this->assertTrue(is_file($contentsdir.'/'.$file));
}
}
}
public function test_decode_remote_request() {
$installer = testable_tool_installaddon_installer::instance();
@@ -130,66 +109,51 @@ class tool_installaddon_installer_testcase extends advanced_testcase {
$this->assertSame(false, $installer->testable_decode_remote_request($request));
}
public function test_move_directory() {
$jobid = md5(rand().uniqid('test_', true));
$jobroot = make_temp_directory('tool_installaddon/'.$jobid);
$contentsdir = make_temp_directory('tool_installaddon/'.$jobid.'/contents/sub/folder');
file_put_contents($contentsdir.'/readme.txt', 'Hello world!');
$installer = tool_installaddon_installer::instance();
$installer->move_directory($jobroot.'/contents', $jobroot.'/moved', 0777, 0666);
$this->assertFalse(is_dir($jobroot.'/contents'));
$this->assertTrue(is_file($jobroot.'/moved/sub/folder/readme.txt'));
$this->assertSame('Hello world!', file_get_contents($jobroot.'/moved/sub/folder/readme.txt'));
}
public function test_detect_plugin_component() {
$jobid = md5(rand().uniqid('test_', true));
$workdir = make_temp_directory('tool_installaddon/'.$jobid.'/version');
$zipfile = __DIR__.'/fixtures/zips/bar.zip';
global $CFG;
$installer = tool_installaddon_installer::instance();
$this->assertEquals('foo_bar', $installer->detect_plugin_component($zipfile, $workdir));
$zipfile = $CFG->libdir.'/tests/fixtures/update_validator/zips/bar.zip';
$this->assertEquals('foo_bar', $installer->detect_plugin_component($zipfile));
$zipfile = $CFG->libdir.'/tests/fixtures/update_validator/zips/invalidroot.zip';
$this->assertFalse($installer->detect_plugin_component($zipfile));
}
public function test_detect_plugin_component_from_versionphp() {
global $CFG;
$installer = testable_tool_installaddon_installer::instance();
$this->assertEquals('bar_bar_conan', $installer->detect_plugin_component_from_versionphp('
$fixtures = $CFG->libdir.'/tests/fixtures/update_validator/';
$this->assertEquals('bar_bar_conan', $installer->testable_detect_plugin_component_from_versionphp('
$plugin->version = 2014121300;
$plugin->component= "bar_bar_conan" ; // Go Arnie go!'));
}
}
/**
* Testable subclass of the tested class
*
* @copyright 2013 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class testable_tool_installaddon_installer extends tool_installaddon_installer {
public function get_site_fullname() {
return strip_tags('<h1 onmouseover="alert(\'Hello Moodle.org!\');">Nasty site</h1>');
}
public function get_site_url() {
return 'file:///etc/passwd';
}
public function get_site_major_version() {
return "2.5'; DROP TABLE mdl_user; --";
}
public function testable_decode_remote_request($request) {
return parent::decode_remote_request($request);
}
protected function should_send_site_info() {
return true;
}
public function detect_plugin_component_from_versionphp($code) {
return parent::detect_plugin_component_from_versionphp($code);
$versionphp = file_get_contents($fixtures.'/github/moodle-repository_mahara-master/version.php');
$this->assertEquals('repository_mahara', $installer->testable_detect_plugin_component_from_versionphp($versionphp));
$versionphp = file_get_contents($fixtures.'/nocomponent/baz/version.php');
$this->assertFalse($installer->testable_detect_plugin_component_from_versionphp($versionphp));
}
public function test_make_installfromzip_storage() {
$installer = testable_tool_installaddon_installer::instance();
// Check we get writable directory.
$storage1 = $installer->make_installfromzip_storage();
$this->assertTrue(is_dir($storage1));
$this->assertTrue(is_writable($storage1));
file_put_contents($storage1.'/hello.txt', 'Find me if you can!');
// Check we get unique directory on each call.
$storage2 = $installer->make_installfromzip_storage();
$this->assertTrue(is_dir($storage2));
$this->assertTrue(is_writable($storage2));
$this->assertFalse(file_exists($storage2.'/hello.txt'));
// Check both are in the same parent directory.
$this->assertEquals(dirname($storage1), dirname($storage2));
}
}
-78
View File
@@ -1,78 +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/>.
/**
* The ZIP package validation.
*
* @package tool_installaddon
* @copyright 2013 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require(dirname(__FILE__) . '/../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/filelib.php');
navigation_node::override_active_url(new moodle_url('/admin/tool/installaddon/index.php'));
admin_externalpage_setup('tool_installaddon_validate');
if (!empty($CFG->disableonclickaddoninstall)) {
notice(get_string('featuredisabled', 'tool_installaddon'));
}
require_sesskey();
$jobid = required_param('jobid', PARAM_ALPHANUM);
$zipfilename = required_param('zip', PARAM_FILE);
$plugintype = required_param('type', PARAM_ALPHANUMEXT);
$rootdir = optional_param('rootdir', '', PARAM_PLUGIN);
$zipfilepath = $CFG->tempdir.'/tool_installaddon/'.$jobid.'/source/'.$zipfilename;
if (!file_exists($zipfilepath)) {
redirect(new moodle_url('/admin/tool/installaddon/index.php'),
get_string('invaliddata', 'core_error'));
}
$installer = tool_installaddon_installer::instance();
// Extract the ZIP contents.
fulldelete($CFG->tempdir.'/tool_installaddon/'.$jobid.'/contents');
$zipcontentpath = make_temp_directory('tool_installaddon/'.$jobid.'/contents');
$zipcontentfiles = $installer->extract_installfromzip_file($zipfilepath, $zipcontentpath, $rootdir);
// Validate the contents of the plugin ZIP file.
$validator = tool_installaddon_validator::instance($zipcontentpath, $zipcontentfiles);
$validator->assert_plugin_type($plugintype);
$validator->assert_moodle_version($CFG->version);
$result = $validator->execute();
if ($result) {
$validator->set_continue_url(new moodle_url('/admin/tool/installaddon/deploy.php', array(
'sesskey' => sesskey(),
'jobid' => $jobid,
'type' => $plugintype,
'name' => $validator->get_rootdir())));
} else {
fulldelete($CFG->tempdir.'/tool_installaddon/'.$jobid);
}
// Display the validation results.
$output = $PAGE->get_renderer('tool_installaddon');
$output->set_installer_instance($installer);
$output->set_validator_instance($validator);
echo $output->validation_page();
+2 -2
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->component = 'tool_installaddon';
$plugin->version = 2015051100;
$plugin->requires = 2015050500;
$plugin->version = 2015111600;
$plugin->requires = 2015111000;
$plugin->maturity = MATURITY_STABLE;
+1 -1
View File
@@ -128,7 +128,7 @@ class controller {
event\langpack_removed::event_with_langcode($lang)->trigger();
return true;
} else { // Nothing deleted, possibly due to permission error.
$this->errors[] = 'An error has occurred, language pack is not completely uninstalled, please check file permissions';
$this->errors[] = get_string('langpacknotremoved', 'tool_langimport', $lang);
return false;
}
}
@@ -112,4 +112,9 @@ class langpack_imported extends \core\event\base {
throw new \coding_exception('The \'langcode\' value must be set to a valid language code');
}
}
public static function get_other_mapping() {
// No mapping required for this event because this event is not backed up.
return false;
}
}
@@ -113,4 +113,9 @@ class langpack_removed extends \core\event\base {
throw new \coding_exception('The \'langcode\' value must be set to a valid language code');
}
}
public static function get_other_mapping() {
// No mapping required for this event because this event is not backed up.
return false;
}
}
@@ -112,4 +112,9 @@ class langpack_updated extends \core\event\base {
throw new \coding_exception('The \'langcode\' value must be set to a valid language code');
}
}
public static function get_other_mapping() {
// No mapping required for this event because this event is not backed up.
return false;
}
}
+36 -16
View File
@@ -37,11 +37,11 @@ if (empty($CFG->langotherroot)) {
throw new moodle_exception('missingcfglangotherroot', 'tool_langimport');
}
$mode = optional_param('mode', 0, PARAM_INT); // action
$pack = optional_param_array('pack', array(), PARAM_SAFEDIR); // pack to install
$uninstalllang = optional_param('uninstalllang', '', PARAM_LANG); // installed pack to uninstall
$confirm = optional_param('confirm', 0, PARAM_BOOL); // uninstallation confirmation
$purgecaches = optional_param('purgecaches', false, PARAM_BOOL); // explicit caches reset
$mode = optional_param('mode', 0, PARAM_INT); // action
$pack = optional_param_array('pack', array(), PARAM_SAFEDIR); // pack to install
$uninstalllang = optional_param_array('uninstalllang', array(), PARAM_LANG);// installed pack to uninstall
$confirmtounistall = optional_param('confirmtouninstall', '', PARAM_ALPHAEXT); // uninstallation confirmation
$purgecaches = optional_param('purgecaches', false, PARAM_BOOL); // explicit caches reset
if ($purgecaches) {
require_sesskey();
@@ -70,21 +70,30 @@ if (($mode == INSTALLATION_OF_SELECTED_LANG) and confirm_sesskey() and !empty($p
$controller->install_languagepacks($pack);
}
if ($mode == DELETION_OF_SELECTED_LANG and !empty($uninstalllang)) {
if ($uninstalllang == 'en') {
// TODO.
$controller->errors[] = 'English language pack can not be uninstalled';
if ($mode == DELETION_OF_SELECTED_LANG and (!empty($uninstalllang) or !empty($confirmtounistall))) {
// Actually deleting languages, languages to delete are passed as GET parameter as string
// ...need to populate them to array.
if (empty($uninstalllang)) {
$uninstalllang = explode('-', $confirmtounistall);
}
} else if (!$confirm and confirm_sesskey()) {
if (in_array('en', $uninstalllang)) {
// TODO.
$controller->errors[] = get_string('noenglishuninstall', 'tool_langimport');
} else if (empty($confirmtounistall) and confirm_sesskey()) { // User chose langs to be deleted, show confirmation.
echo $OUTPUT->header();
echo $OUTPUT->confirm(get_string('uninstallconfirm', 'tool_langimport', $uninstalllang),
'index.php?mode='.DELETION_OF_SELECTED_LANG.'&uninstalllang='.$uninstalllang.'&confirm=1',
echo $OUTPUT->confirm(get_string('uninstallconfirm', 'tool_langimport', implode(', ', $uninstalllang)),
'index.php?mode='.DELETION_OF_SELECTED_LANG.'&confirmtouninstall='.implode('-', $uninstalllang),
'index.php');
echo $OUTPUT->footer();
die;
} else if (confirm_sesskey()) {
$controller->uninstall_language($uninstalllang);
} else if (confirm_sesskey()) { // Deleting languages.
foreach ($uninstalllang as $ulang) {
$controller->uninstall_language($ulang);
}
}
}
@@ -158,10 +167,13 @@ echo html_writer::start_tag('form', array('id' => 'uninstallform', 'action' => $
echo html_writer::start_tag('fieldset');
echo html_writer::label(get_string('installedlangs', 'tool_langimport'), 'menuuninstalllang');
echo html_writer::empty_tag('br');
echo html_writer::select($installedlangs, 'uninstalllang', '', false, array('size' => 15));
echo html_writer::select($installedlangs, 'uninstalllang[]', '', false, array('size' => 15, 'multiple' => 'multiple'));
echo html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'sesskey', 'value' => sesskey()));
echo html_writer::empty_tag('br');
echo html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('uninstall', 'tool_langimport')));
echo html_writer::empty_tag('input', array('id' => 'languninstallbutton',
'type' => 'submit',
'value' => get_string('uninstall', 'tool_langimport'))
);
echo html_writer::end_tag('fieldset');
echo html_writer::end_tag('form');
if ($remote) {
@@ -198,5 +210,13 @@ if (!empty($options)) {
echo html_writer::end_tag('tr');
echo html_writer::end_tag('table');
echo $OUTPUT->box_end();
$uninstallurl = new moodle_url('/admin/tool/langimport/index.php');
$PAGE->requires->strings_for_js(array('uninstallconfirm', 'uninstall', 'selectlangs', 'noenglishuninstall'),
'tool_langimport');
$PAGE->requires->yui_module('moodle-core-languninstallconfirm',
'Y.M.core.languninstallconfirm.init',
array(array('uninstallUrl' => $uninstallurl->out()))
);
echo $OUTPUT->footer();
die();
@@ -30,6 +30,7 @@ $string['langimportdisabled'] = 'Language import feature has been disabled. You
$string['langpackinstalled'] = 'Language pack \'{$a}\' was successfully installed';
$string['langpackinstalledevent'] = 'Language pack installed';
$string['langpackremoved'] = 'Language pack \'{$a}\' was uninstalled';
$string['langpacknotremoved'] = 'An error has occurred; language pack \'{$a}\' is not completely uninstalled. Please check file permissions.';
$string['langpackremovedevent'] = 'Language pack uninstalled';
$string['langpackupdateskipped'] = 'Update of \'{$a}\' language pack skipped';
$string['langpackuptodate'] = 'Language pack \'{$a}\' is up-to-date';
@@ -38,11 +39,12 @@ $string['langpackupdatedevent'] = 'Language pack updated';
$string['langupdatecomplete'] = 'Language pack update completed';
$string['missingcfglangotherroot'] = 'Missing configuration value $CFG->langotherroot';
$string['missinglangparent'] = 'Missing parent language <em>{$a->parent}</em> of <em>{$a->lang}</em>.';
$string['noenglishuninstall'] = 'The English language pack cannot be uninstalled.';
$string['nolangupdateneeded'] = 'All your language packs are up to date, no update is needed';
$string['pluginname'] = 'Language packs';
$string['purgestringcaches'] = 'Purge string caches';
$string['remotelangnotavailable'] = 'Because Moodle cannot connect to download.moodle.org, it is not possible for language packs to be installed automatically. Please download the appropriate ZIP file(s) from <a href="https://download.moodle.org/langpack/">download.moodle.org/langpack</a>, copy them to your {$a} directory and unzip them manually.';
$string['uninstall'] = 'Uninstall selected language pack';
$string['uninstallconfirm'] = 'You are about to completely uninstall language pack {$a}, are you sure?';
$string['selectlangs'] = 'Select languages to uninstall';
$string['uninstall'] = 'Uninstall selected language pack(s)';
$string['uninstallconfirm'] = 'You are about to completely uninstall these language packs: <strong>{$a}</strong>. Are you sure?';
$string['updatelangs'] = 'Update all installed language packs';
@@ -38,7 +38,7 @@ Feature: Manage language packs
And I set the field "Available language packs" to "English - Pirate (en_ar)"
And I press "Install selected language pack(s)"
When I set the field "Installed language packs" to "English - Pirate (en_ar)"
And I press "Uninstall selected language pack"
And I press "Uninstall selected language pack(s)"
And I press "Continue"
Then I should see "Language pack 'en_ar' was uninstalled"
And the "Installed language packs" select box should not contain "English - Pirate (en_ar)"
@@ -52,8 +52,8 @@ Feature: Manage language packs
Given I log in as "admin"
And I navigate to "Language packs" node in "Site administration > Language"
When I set the field "Installed language packs" to "English (en)"
And I press "Uninstall selected language pack"
Then I should see "English language pack can not be uninstalled"
And I press "Uninstall selected language pack(s)"
Then I should see "The English language pack cannot be uninstalled."
And I navigate to "Live logs" node in "Site administration > Reports"
And I should not see "Language pack uninstalled"
And I log out
+2 -2
View File
@@ -25,6 +25,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2015050500; // Requires this Moodle version
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2015111000; // Requires this Moodle version
$plugin->component = 'tool_langimport'; // Full name of the plugin (used for diagnostics)
@@ -0,0 +1,37 @@
<?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/>.
/**
* Backup support for tool_log logstore subplugins.
*
* @package tool_log
* @category backup
* @copyright 2015 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Parent class of all the logstore subplugin implementations.
*
* Note: While this intermediate class is not strictly required and all the
* subplugin implementations can extend directly {@link backup_subplugin},
* it is always recommended to have it, both for better testing and also
* for sharing code between all subplugins.
*/
abstract class backup_tool_log_logstore_subplugin extends backup_subplugin {
}
@@ -0,0 +1,152 @@
<?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/>.
/**
* Restore support for tool_log logstore subplugins.
*
* @package tool_log
* @category backup
* @copyright 2015 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Parent class of all the logstore subplugin implementations.
*
* Note: While this intermediate class is not strictly required and all the
* subplugin implementations can extend directly {@link restore_subplugin},
* it is always recommended to have it, both for better testing and also
* for sharing code between all subplugins.
*/
abstract class restore_tool_log_logstore_subplugin extends restore_subplugin {
/**
* Process log entries.
*
* This method proceeds to read, complete, remap and, finally,
* discard or save every log entry.
*
* @param array $data log entry.
* @return object|null $dataobject A data object with values for one or more fields in the record,
* or null if we are not going to process the log.
*/
protected function process_log($data) {
$data = (object) $data;
// Complete the information that does not come from backup.
$contextid = $data->contextid;
if (!$data->contextid = $this->get_mappingid('context', $contextid)) {
$message = "Context id \"$contextid\" could not be mapped. Skipping log record.";
$this->log($message, backup::LOG_DEBUG);
return;
}
$context = context::instance_by_id($data->contextid, MUST_EXIST);
$data->contextlevel = $context->contextlevel;
$data->contextinstanceid = $context->instanceid;
$data->courseid = $this->task->get_courseid();
// Remap users.
$userid = $data->userid;
if (!$data->userid = $this->get_mappingid('user', $userid)) {
$message = "User id \"$userid\" could not be mapped. Skipping log record.";
$this->log($message, backup::LOG_DEBUG);
return;
}
if (!empty($data->relateduserid)) { // This is optional.
$relateduserid = $data->relateduserid;
if (!$data->relateduserid = $this->get_mappingid('user', $relateduserid)) {
$message = "Related user id \"$relateduserid\" could not be mapped. Skipping log record.";
$this->log($message, backup::LOG_DEBUG);
return;
}
}
if (!empty($data->realuserid)) { // This is optional.
$realuserid = $data->realuserid;
if (!$data->realuserid = $this->get_mappingid('user', $realuserid)) {
$message = "Real user id \"$realuserid\" could not be mapped. Skipping log record.";
$this->log($message, backup::LOG_DEBUG);
return;
}
}
// Roll dates.
$data->timecreated = $this->apply_date_offset($data->timecreated);
// Revert other to its original php way.
$data->other = unserialize(base64_decode($data->other));
// Arrived here, we have both 'objectid' and 'other' to be converted. This is the tricky part.
// Both are pointing to other records id, but the sources are not identified in the
// same way restore mappings work. So we need to delegate them to some resolver that
// will give us the correct restore mapping to be used.
if (!empty($data->objectid)) {
// Check if there is an available class for this event we can use to map this value.
$eventclass = $data->eventname;
if (class_exists($eventclass)) {
$mapping = $eventclass::get_objectid_mapping();
if ($mapping) {
// Check if it can not be mapped.
if ((is_int($mapping) && $mapping === \core\event\base::NOT_MAPPED) ||
($mapping['restore'] === \core\event\base::NOT_MAPPED)) {
$data->objectid = \core\event\base::NOT_MAPPED;
} else {
$data->objectid = $this->get_mappingid($mapping['restore'], $data->objectid,
\core\event\base::NOT_FOUND);
}
}
} else {
$message = "Event class not found: \"$eventclass\". Skipping log record.";
$this->log($message, backup::LOG_DEBUG);
return; // No such class, can not restore.
}
}
if (!empty($data->other)) {
// Check if there is an available class for this event we can use to map this value.
$eventclass = $data->eventname;
if (class_exists($eventclass)) {
$othermapping = $eventclass::get_other_mapping();
if ($othermapping) {
// Go through the data we have.
foreach ($data->other as $key => $value) {
// Check if there is a corresponding key we can use to map to.
if (isset($othermapping[$key]) && !empty($value)) {
// Ok, let's map this.
$mapping = $othermapping[$key];
// Check if it can not be mapped.
if ((is_int($mapping) && $mapping === \core\event\base::NOT_MAPPED) ||
($mapping['restore'] === \core\event\base::NOT_MAPPED)) {
$data->other[$key] = \core\event\base::NOT_MAPPED;
} else {
$data->other[$key] = $this->get_mappingid($mapping['restore'], $value,
\core\event\base::NOT_FOUND);
}
}
}
}
// Now we want to serialize it so we can store it in the DB.
$data->other = serialize($data->other);
} else {
$message = "Event class not found: \"$eventclass\". Skipping log record.";
$this->log($message, backup::LOG_DEBUG);
return; // No such class, can not restore.
}
}
return $data;
}
}
+33
View File
@@ -106,7 +106,40 @@ class manager implements \core\log\manager {
if (empty($interface) || ($reader instanceof $interface)) {
$return[$plugin] = $reader;
}
// TODO MDL-49291 These conditions should be removed as part of the 2nd stage deprecation.
if ($reader instanceof \core\log\sql_internal_reader) {
debugging('\core\log\sql_internal_reader has been deprecated in favour of \core\log\sql_internal_table_reader.' .
' Update ' . get_class($reader) . ' to use the new interface.', DEBUG_DEVELOPER);
} else if ($reader instanceof \core\log\sql_select_reader) {
debugging('\core\log\sql_select_reader has been deprecated in favour of \core\log\sql_reader. Update ' .
get_class($reader) . ' to use the new interface.', DEBUG_DEVELOPER);
}
}
// TODO MDL-49291 This section below (until the final return) should be removed as part of the 2nd stage deprecation.
$isselectreader = (ltrim($interface, '\\') === 'core\log\sql_select_reader');
$isinternalreader = (ltrim($interface, '\\') === 'core\log\sql_internal_reader');
if ($isselectreader || $isinternalreader) {
if ($isselectreader) {
$alternative = '\core\log\sql_reader';
} else {
$alternative = '\core\log\sql_internal_table_reader';
}
if (count($return) === 0) {
// If there are no classes implementing the provided interface and the provided interface is one of
// the deprecated ones, we return the non-deprecated alternatives. It should be safe as the new interface
// is adding a new method but not changing the existing ones.
debugging($interface . ' has been deprecated in favour of ' . $alternative . '. Returning ' . $alternative .
' instances instead. Please call get_readers() using the new interface.', DEBUG_DEVELOPER);
$return = $this->get_readers($alternative);
} else {
debugging($interface . ' has been deprecated in favour of ' . $alternative .
'. Please call get_readers() using the new interface.', DEBUG_DEVELOPER);
}
}
return $return;
}
+6
View File
@@ -49,5 +49,11 @@ function xmldb_tool_log_upgrade($oldversion) {
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.9.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v3.0.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -0,0 +1,98 @@
<?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/>.
/**
* Backup implementation for the (tool_log) logstore_database nested element.
*
* @package logstore_database
* @category backup
* @copyright 2015 Damyon Wiese <damyon@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Custom subclass of backup_nested_element that iterates over an external DB connection.
*
* @package logstore_database
* @category backup
* @copyright 2015 Damyon Wiese <damyon@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class backup_logstore_database_nested_element extends backup_nested_element {
/**
* @var \moodle_database $sourcedb
*/
protected $sourcedb;
/**
* Constructor - instantiates one backup_nested_element, specifying its basic info.
*
* @param string $name name of the element
* @param array $attributes attributes this element will handle (optional, defaults to null)
* @param array $finalelements this element will handle (optional, defaults to null)
*/
public function __construct($name, $attributes = null, $finalelements = null) {
global $DB;
parent::__construct($name, $attributes, $finalelements);
$this->sourcedb = $DB;
}
/**
* For sql or table datasources, this will iterate over the "external" DB connection
* stored in this class instead of the default $DB. All other cases use the parent default.
* @param object $processor the processor
*/
protected function get_iterator($processor) {
if ($this->get_source_table() !== null) { // It's one table, return recordset iterator.
return $this->get_source_db()->get_recordset(
$this->get_source_table(),
backup_structure_dbops::convert_params_to_values($this->procparams, $processor),
$this->get_source_table_sortby()
);
} else if ($this->get_source_sql() !== null) { // It's one sql, return recordset iterator.
return $this->get_source_db()->get_recordset_sql(
$this->get_source_sql(),
backup_structure_dbops::convert_params_to_values($this->procparams, $processor)
);
}
return parent::get_iterator($processor);
}
/**
* Set the database we want to use.
*
* @param \moodle_database $db
*/
public function set_source_db($db) {
$this->sourcedb = $db;
}
/**
* Get the database we want to use.
*
* @return \moodle_database $db
*/
public function get_source_db() {
return $this->sourcedb;
}
}
@@ -0,0 +1,65 @@
<?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/>.
/**
* Backup implementation for the (tool_log) logstore_database subplugin.
*
* @package logstore_database
* @category backup
* @copyright 2015 Mark Nelson <markn@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
require_once('backup_logstore_database_nested_element.php');
class backup_logstore_database_subplugin extends backup_tool_log_logstore_subplugin {
/**
* Returns the subplugin structure to attach to the 'logstore' XML element.
*
* @return backup_subplugin_element the subplugin structure to be attached.
*/
protected function define_logstore_subplugin_structure() {
$subplugin = $this->get_subplugin_element();
$subpluginwrapper = new backup_nested_element($this->get_recommended_name());
// Create the custom (base64 encoded, xml safe) 'other' final element.
$otherelement = new base64_encode_final_element('other');
$subpluginlog = new backup_logstore_database_nested_element('logstore_database_log', array('id'), array(
'eventname', 'component', 'action', 'target', 'objecttable',
'objectid', 'crud', 'edulevel', 'contextid', 'userid', 'relateduserid',
'anonymous', $otherelement, 'timecreated', 'ip', 'realuserid'));
$subplugin->add_child($subpluginwrapper);
$subpluginwrapper->add_child($subpluginlog);
// Get the details for the external database.
$manager = new \tool_log\log\manager();
$store = new \logstore_database\log\store($manager);
$extdb = $store->get_extdb();
if (!$extdb) {
return false;
}
$subpluginlog->set_source_db($extdb);
$subpluginlog->set_source_table($store->get_config_value('dbtable'), array('contextid' => backup::VAR_CONTEXTID));
return $subplugin;
}
}
@@ -0,0 +1,102 @@
<?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/>.
/**
* Restore implementation for the (tool_log) logstore_database subplugin.
*
* @package logstore_database
* @category backup
* @copyright 2015 Mark Nelson <markn@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
class restore_logstore_database_subplugin extends restore_tool_log_logstore_subplugin {
/**
* @var moodle_database the external database.
*/
private static $extdb = null;
/**
* @var string the external database table name.
*/
private static $extdbtablename = null;
/**
* The constructor for this logstore.
*
* @param string $subplugintype the subplugin type.
* @param string $subpluginname the subplugin name.
* @param restore_structure_step $step.
*/
public function __construct($subplugintype, $subpluginname, $step) {
// Check that the logstore is enabled before setting variables.
$enabledlogstores = explode(',', get_config('tool_log', 'enabled_stores'));
if (in_array('logstore_database', $enabledlogstores)) {
$manager = new \tool_log\log\manager();
$store = new \logstore_database\log\store($manager);
self::$extdb = $store->get_extdb();
self::$extdbtablename = $store->get_config_value('dbtable');
}
parent::__construct($subplugintype, $subpluginname, $step);
}
/**
* Returns the subplugin structure to attach to the 'logstore' XML element.
*
* @return restore_path_element[] array of elements to be processed on restore.
*/
protected function define_logstore_subplugin_structure() {
// If the logstore is not enabled we don't add structures for it.
$enabledlogstores = explode(',', get_config('tool_log', 'enabled_stores'));
if (!in_array('logstore_database', $enabledlogstores)) {
return array(); // The logstore is not enabled, nothing to restore.
}
$paths = array();
$elename = $this->get_namefor('log');
$elepath = $this->get_pathfor('/logstore_database_log');
$paths[] = new restore_path_element($elename, $elepath);
return $paths;
}
/**
* Process logstore_database_log entries.
*
* This method proceeds to read, complete, remap and, finally,
* discard or save every log entry.
*
* @param array() $data log entry.
* @return null if we are not restoring the log.
*/
public function process_logstore_database_log($data) {
// Do not bother processing if we can not add it to a database.
if (!self::$extdb || !self::$extdbtablename) {
return;
}
$data = $this->process_log($data);
if ($data) {
self::$extdb->insert_record(self::$extdbtablename, $data);
}
}
}
@@ -258,6 +258,30 @@ class store implements \tool_log\log\writer, \core\log\sql_reader {
return $this->extdb->count_records_select($dbtable, $selectwhere, $params);
}
/**
* Get a config value for the store.
*
* @param string $name Config name
* @param mixed $default default value
* @return mixed config value if set, else the default value.
*/
public function get_config_value($name, $default = null) {
return $this->get_config($name, $default);
}
/**
* Get the external database object.
*
* @return \moodle_database $extdb
*/
public function get_extdb() {
if (!$this->init()) {
return false;
}
return $this->extdb;
}
/**
* Are the new events appearing in the reader?
*
@@ -39,5 +39,11 @@ function xmldb_logstore_database_upgrade($oldversion) {
// Moodle v2.8.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v2.9.0 release upgrade line.
// Put any upgrade step following this.
// Moodle v3.0.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 = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2015050500; // Requires this Moodle version.
$plugin->version = 2015111600; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2015111000; // Requires this Moodle version.
$plugin->component = 'logstore_database'; // Full name of the plugin (used for diagnostics).

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