Merge branch 'MDL-34921_master_unwanted-sitehome-redirects' of https://github.com...
authorAndrew Nicols <andrew@nicols.co.uk>
Thu, 23 Apr 2015 03:49:16 +0000 (11:49 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Thu, 23 Apr 2015 03:49:16 +0000 (11:49 +0800)
925 files changed:
admin/cli/install.php
admin/cli/mysql_compressed_rows.php
admin/environment.xml
admin/index.php
admin/renderer.php
admin/roles/assign.php
admin/roles/check.php
admin/roles/permissions.php
admin/settings/appearance.php
admin/settings/grades.php
admin/settings/location.php
admin/settings/plugins.php
admin/settings/users.php
admin/tests/behat/display_short_names.feature
admin/tests/behat/filter_users.feature
admin/tests/behat/set_admin_settings_value.feature
admin/tests/behat/upload_users.feature
admin/timezone.php
admin/tool/availabilityconditions/tests/behat/manage_conditions.feature
admin/tool/behat/cli/init.php
admin/tool/behat/cli/run.php
admin/tool/behat/cli/util.php
admin/tool/behat/cli/util_single_run.php
admin/tool/behat/tests/behat/basic_actions.feature
admin/tool/behat/tests/behat/data_generators.feature
admin/tool/behat/tests/behat/edit_permissions.feature
admin/tool/behat/tests/behat/get_and_set_fields.feature
admin/tool/behat/tests/behat/manipulate_forms.feature
admin/tool/behat/tests/behat/nasty_strings.feature
admin/tool/behat/tests/behat/test_environment.feature
admin/tool/filetypes/tests/behat/add_filetypes.feature
admin/tool/monitor/classes/output/managesubs/renderer.php
admin/tool/monitor/classes/output/managesubs/rules.php
admin/tool/monitor/index.php
admin/tool/monitor/lang/en/tool_monitor.php
admin/tool/monitor/lib.php
admin/tool/monitor/tests/behat/rule.feature
admin/tool/monitor/tests/behat/subscription.feature
admin/tool/task/cli/schedule_task.php
admin/tool/templatelibrary/amd/build/display.min.js [new file with mode: 0644]
admin/tool/templatelibrary/amd/build/search.min.js [new file with mode: 0644]
admin/tool/templatelibrary/amd/src/display.js [new file with mode: 0644]
admin/tool/templatelibrary/amd/src/search.js [new file with mode: 0644]
admin/tool/templatelibrary/classes/api.php [new file with mode: 0644]
admin/tool/templatelibrary/classes/external.php [new file with mode: 0644]
admin/tool/templatelibrary/classes/output/list_templates_page.php [new file with mode: 0644]
admin/tool/templatelibrary/classes/output/renderer.php [new file with mode: 0644]
admin/tool/templatelibrary/db/services.php [new file with mode: 0644]
admin/tool/templatelibrary/index.php [new file with mode: 0644]
admin/tool/templatelibrary/lang/en/tool_templatelibrary.php [new file with mode: 0644]
admin/tool/templatelibrary/settings.php [moved from admin/tool/timezoneimport/settings.php with 66% similarity]
admin/tool/templatelibrary/styles.css [new file with mode: 0644]
admin/tool/templatelibrary/templates/display_template.mustache [new file with mode: 0644]
admin/tool/templatelibrary/templates/list_templates_page.mustache [new file with mode: 0644]
admin/tool/templatelibrary/templates/search_results.mustache [new file with mode: 0644]
admin/tool/templatelibrary/tests/externallib_test.php [new file with mode: 0644]
admin/tool/templatelibrary/version.php [moved from admin/tool/timezoneimport/version.php with 72% similarity]
admin/tool/timezoneimport/index.php [deleted file]
admin/tool/timezoneimport/lang/en/tool_timezoneimport.php [deleted file]
admin/tool/uploadcourse/tests/behat/create.feature
admin/tool/uploadcourse/tests/behat/update.feature
admin/tool/uploaduser/index.php
admin/tool/uploaduser/lang/en/tool_uploaduser.php
admin/tool/uploaduser/locallib.php
admin/tool/uploaduser/user_form.php
auth/cas/db/upgrade.php
auth/cas/version.php
auth/ldap/db/upgrade.php
auth/ldap/tests/plugin_test.php
auth/ldap/version.php
auth/tests/behat/login.feature
availability/condition/completion/tests/behat/availability_completion.feature
availability/condition/date/tests/behat/availability_date.feature
availability/condition/date/tests/condition_test.php
availability/condition/grade/tests/behat/availability_grade.feature
availability/condition/group/tests/behat/availability_group.feature
availability/condition/grouping/tests/behat/availability_grouping.feature
availability/condition/profile/tests/behat/availability_profile.feature
availability/tests/behat/display_availability.feature
availability/tests/behat/edit_availability.feature
backup/converter/moodle1/tests/fixtures/moodle.xml
backup/moodle2/tests/moodle2_course_format_test.php [new file with mode: 0644]
backup/util/helper/backup_cron_helper.class.php
backup/util/helper/backup_general_helper.class.php
backup/util/helper/tests/cronhelper_test.php
backup/util/ui/tests/behat/backup_courses.feature
backup/util/ui/tests/behat/behat_backup.php
backup/util/ui/tests/behat/duplicate_activities.feature
backup/util/ui/tests/behat/import_course.feature
backup/util/ui/tests/behat/import_groups.feature
backup/util/ui/tests/behat/restore_moodle2_courses.feature
badges/criteria/award_criteria_activity.php
badges/criteria/award_criteria_courseset.php
badges/lib.php [new file with mode: 0644]
badges/mybackpack.php
badges/mybadges.php
badges/preferences.php
badges/tests/behat/add_badge.feature
badges/tests/behat/award_badge.feature
badges/view.php
blocks/activity_modules/tests/behat/block_activity_modules.feature
blocks/activity_results/tests/behat/addblockinactivity.feature
blocks/activity_results/tests/behat/addunconfiguredblock.feature
blocks/activity_results/tests/behat/addunsupportedactivity.feature
blocks/activity_results/tests/behat/highscoreswithoutgroups.feature
blocks/activity_results/tests/behat/highscoreswithseperategroups.feature
blocks/activity_results/tests/behat/highscoreswithvisiblegroups.feature
blocks/activity_results/tests/behat/lowscoreswithoutgroups.feature
blocks/activity_results/tests/behat/lowscoreswithseperategroups.feature
blocks/activity_results/tests/behat/lowscoreswithvisiblegroups.feature
blocks/admin_bookmarks/lang/en/block_admin_bookmarks.php
blocks/badges/lang/en/block_badges.php
blocks/calendar_month/lang/en/block_calendar_month.php
blocks/calendar_upcoming/lang/en/block_calendar_upcoming.php
blocks/comments/lang/en/block_comments.php
blocks/comments/tests/behat/add_comment.feature
blocks/comments/tests/behat/delete_comment.feature
blocks/community/lang/en/block_community.php
blocks/course_list/lang/en/block_course_list.php
blocks/course_overview/lang/en/block_course_overview.php
blocks/course_summary/tests/behat/block_course_summary_course.feature
blocks/course_summary/tests/behat/block_course_summary_frontpage.feature
blocks/glossary_random/lang/en/block_glossary_random.php
blocks/glossary_random/tests/behat/glossary_random.feature
blocks/glossary_random/tests/behat/glossary_random_frontpage.feature
blocks/html/lang/en/block_html.php
blocks/html/tests/behat/configuring_html_block.feature
blocks/html/tests/behat/course_block.feature
blocks/html/tests/behat/multiple_instances.feature
blocks/login/tests/behat/login_block.feature
blocks/mentees/lang/en/block_mentees.php
blocks/messages/lang/en/block_messages.php
blocks/mnet_hosts/lang/en/block_mnet_hosts.php
blocks/moodleblock.class.php
blocks/myprofile/lang/en/block_myprofile.php
blocks/navigation/lang/en/block_navigation.php
blocks/navigation/tests/behat/expand_courses_node.feature
blocks/navigation/tests/behat/expand_my_courses_setting.feature
blocks/navigation/tests/behat/view_my_courses.feature
blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation-debug.js
blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation-min.js
blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation.js
blocks/navigation/yui/src/navigation/js/navigation.js
blocks/news_items/lang/en/block_news_items.php
blocks/news_items/tests/behat/display_news.feature
blocks/online_users/lang/en/block_online_users.php
blocks/participants/tests/behat/block_participants_course.feature
blocks/participants/tests/behat/block_participants_frontpage.feature
blocks/private_files/lang/en/block_private_files.php
blocks/recent_activity/tests/behat/structural_changes.feature
blocks/rss_client/lang/en/block_rss_client.php
blocks/settings/lang/en/block_settings.php
blocks/settings/renderer.php
blocks/tags/lang/en/block_tags.php
blocks/tests/behat/add_blocks.feature
blocks/tests/behat/configure_block_throughout_site.feature
blocks/tests/behat/hide_blocks.feature
blocks/tests/behat/manage_blocks.feature
blocks/tests/behat/restrict_available_blocks.feature
blocks/tests/behat/return_block_original_state.feature
blocks/upgrade.txt
blog/edit.php
blog/external_blog_edit.php
blog/external_blogs.php
blog/index.php
blog/lib.php
blog/preferences.php
blog/tests/behat/comment.feature
blog/tests/bloglib_test.php
calendar/classes/type_factory.php
calendar/lib.php
calendar/tests/behat/calendar.feature
calendar/tests/behat/minicalendar.feature
calendar/tests/calendartype_test.php
calendar/tests/externallib_test.php
calendar/tests/rrule_manager_tests.php
calendar/type/gregorian/classes/structure.php
calendar/upgrade.txt
cohort/tests/behat/access_visible_cohorts.feature
cohort/tests/behat/add_cohort.feature
cohort/tests/behat/behat_cohort.php
cohort/tests/behat/upload_cohort_users.feature
cohort/tests/behat/upload_cohorts.feature
cohort/tests/behat/view_cohorts.feature
cohort/tests/externallib_test.php
comment/comment.js
comment/tests/externallib_test.php
completion/classes/external.php
completion/tests/behat/enable_manual_complete_mark.feature
completion/tests/behat/restrict_activity_by_date.feature
completion/tests/behat/restrict_activity_by_grade.feature
completion/tests/behat/restrict_section_availability.feature
completion/tests/behat/teacher_manual_completion.feature
completion/tests/externallib_test.php
course/category.ajax.php
course/format/social/tests/behat/social_adjust_discussion_count.feature
course/format/topics/tests/behat/edit_delete_sections.feature
course/format/weeks/tests/behat/edit_delete_sections.feature
course/index.php
course/modlib.php
course/moodleform_mod.php
course/renderer.php
course/tests/behat/activities_edit_completion.feature
course/tests/behat/activities_edit_with_block_dock.feature
course/tests/behat/activities_group_icons.feature
course/tests/behat/activities_indentation.feature
course/tests/behat/activities_visibility_icons.feature
course/tests/behat/add_activities.feature
course/tests/behat/course_controls.feature
course/tests/behat/course_creation.feature
course/tests/behat/edit_settings.feature
course/tests/behat/force_group_mode.feature
course/tests/behat/frontpage_display_modes.feature
course/tests/behat/max_number_sections.feature
course/tests/behat/move_activities.feature
course/tests/behat/move_sections.feature
course/tests/behat/navigate_course_list.feature [new file with mode: 0644]
course/tests/behat/paged_course_navigation.feature
course/tests/behat/rename_roles.feature
course/tests/behat/restrict_available_activities.feature
course/tests/behat/section_highlighting.feature
course/tests/behat/section_visibility.feature
course/tests/behat/view_subfolders_inline.feature [new file with mode: 0644]
course/tests/externallib_test.php
course/user.php
course/view.php
course/yui/build/moodle-course-categoryexpander/moodle-course-categoryexpander-debug.js
course/yui/build/moodle-course-categoryexpander/moodle-course-categoryexpander-min.js
course/yui/build/moodle-course-categoryexpander/moodle-course-categoryexpander.js
course/yui/src/categoryexpander/js/categoryexpander.js
enrol/cohort/edit.php
enrol/cohort/edit_form.php
enrol/cohort/lang/en/enrol_cohort.php
enrol/cohort/lib.php
enrol/cohort/tests/cohortlib_test.php [new file with mode: 0644]
enrol/guest/tests/behat/guest_access.feature
enrol/imsenterprise/tests/imsenterprise_test.php
enrol/index.php
enrol/manual/db/services.php
enrol/manual/externallib.php
enrol/manual/lang/en/enrol_manual.php
enrol/manual/tests/externallib_test.php
enrol/manual/yui/quickenrolment/quickenrolment.js
enrol/self/lang/en/enrol_self.php
enrol/self/lib.php
enrol/self/tests/behat/self_enrolment.feature
enrol/self/tests/externallib_test.php
enrol/tests/behat/add_to_group.feature [new file with mode: 0644]
enrol/tests/externallib_test.php
enrol/upgrade.txt
enrol/users.php
enrol/users_forms.php
files/tests/behat/course_files.feature
files/tests/externallib_test.php
files/upgrade.txt [new file with mode: 0644]
grade/export/txt/tests/behat/export.feature
grade/export/xml/tests/behat/export.feature
grade/grading/form/rubric/tests/behat/edit_rubric.feature
grade/grading/form/rubric/tests/behat/publish_rubric_templates.feature
grade/grading/form/rubric/tests/behat/reuse_own_rubrics.feature
grade/import/csv/tests/load_data_test.php
grade/lib.php
grade/report/history/tests/behat/basic_functionality.feature
grade/report/lib.php
grade/report/mygrades.php [new file with mode: 0644]
grade/report/overview/index.php
grade/report/overview/lib.php
grade/report/singleview/classes/local/screen/grade.php
grade/report/singleview/classes/local/screen/user.php
grade/report/singleview/classes/local/ui/override.php
grade/report/singleview/index.php
grade/report/singleview/styles.css
grade/report/singleview/tests/behat/bulk_insert_grades.feature [new file with mode: 0644]
grade/report/singleview/tests/behat/singleview.feature
grade/report/user/db/services.php
grade/report/user/externallib.php
grade/report/user/index.php
grade/report/user/lib.php
grade/report/user/tests/externallib_test.php
grade/report/user/version.php
grade/tests/behat/grade_UI_settings.feature
grade/tests/behat/grade_aggregation.feature
grade/tests/behat/grade_calculated_weights.feature
grade/tests/behat/grade_contribution_with_extra_credit.feature
grade/tests/behat/grade_mingrade.feature
grade/tests/behat/grade_natural_normalisation.feature
grade/tests/behat/grade_override_letter.feature
grade/tests/behat/grade_point_maximum.feature
grade/tests/behat/grade_scales.feature
grade/tests/behat/grade_scales_aggregation.feature
grade/tests/behat/grade_single_item_scales.feature
grade/tests/behat/grade_to_pass.feature
grade/tests/behat/grade_view.feature
group/index.php
group/tests/behat/auto_creation.feature
group/tests/behat/behat_groups.php
group/tests/behat/create_groups.feature
group/tests/behat/delete_groups.feature
group/tests/behat/groups_import.feature
group/tests/behat/id_uniqueness.feature
group/tests/behat/update_groups.feature
index.php
install.php
install/lang/ja/error.php
install/lang/mn/admin.php
install/lang/oc_lnc/admin.php
install/lang/oc_lnc/install.php
install/lang/zh_tw/error.php
install/lang/zh_tw/install.php
lang/en/admin.php
lang/en/badges.php
lang/en/blog.php
lang/en/deprecated.txt
lang/en/error.php
lang/en/grades.php
lang/en/mnet.php
lang/en/moodle.php
lang/en/my.php
lang/en/notes.php
lang/en/pagetype.php
lang/en/repository.php
lang/en/role.php
lang/en/webservice.php
lib/accesslib.php
lib/adminlib.php
lib/ajax/getnavbranch.php
lib/amd/build/localstorage.min.js [new file with mode: 0644]
lib/amd/build/str.min.js
lib/amd/build/templates.min.js
lib/amd/src/localstorage.js [new file with mode: 0644]
lib/amd/src/str.js
lib/amd/src/templates.js
lib/badgeslib.php
lib/behat/classes/behat_command.php
lib/behat/classes/behat_config_manager.php
lib/behat/classes/util.php
lib/classes/date.php [new file with mode: 0644]
lib/classes/lock/db_record_lock_factory.php
lib/classes/lock/lock.php
lib/classes/lock/postgres_lock_factory.php
lib/classes/output/mustache_filesystem_loader.php
lib/classes/output/notification.php [new file with mode: 0644]
lib/classes/plugin_manager.php
lib/classes/task/scheduled_task.php
lib/classes/update/checker.php
lib/coursecatlib.php
lib/datalib.php
lib/db/install.xml
lib/db/services.php
lib/db/upgrade.php
lib/ddl/mysql_sql_generator.php
lib/deprecatedlib.php
lib/dml/moodle_database.php
lib/dml/tests/dml_test.php
lib/editor/atto/plugins/accessibilitychecker/tests/behat/accessibilitychecker.feature
lib/editor/atto/plugins/accessibilityhelper/tests/behat/accessibilityhelper.feature
lib/editor/atto/plugins/align/tests/behat/align.feature
lib/editor/atto/plugins/bold/tests/behat/bold.feature
lib/editor/atto/plugins/charmap/tests/behat/charmap.feature
lib/editor/atto/plugins/clear/tests/behat/clear.feature
lib/editor/atto/plugins/collapse/tests/behat/collapse.feature
lib/editor/atto/plugins/equation/tests/behat/equation.feature
lib/editor/atto/plugins/html/tests/behat/html.feature
lib/editor/atto/plugins/image/tests/behat/image.feature
lib/editor/atto/plugins/indent/tests/behat/indent.feature
lib/editor/atto/plugins/italic/tests/behat/italic.feature
lib/editor/atto/plugins/link/tests/behat/link.feature
lib/editor/atto/plugins/media/tests/behat/media.feature
lib/editor/atto/plugins/orderedlist/tests/behat/orderedlist.feature
lib/editor/atto/plugins/strike/tests/behat/strike.feature
lib/editor/atto/plugins/subscript/tests/behat/subscript.feature
lib/editor/atto/plugins/superscript/tests/behat/superscript.feature
lib/editor/atto/plugins/table/tests/behat/table.feature
lib/editor/atto/plugins/title/tests/behat/title.feature
lib/editor/atto/plugins/underline/tests/behat/underline.feature
lib/editor/atto/plugins/unorderedlist/tests/behat/unorderedlist.feature
lib/editor/atto/styles.css
lib/editor/tinymce/tests/behat/edit_available_icons.feature
lib/form/submitlink.php
lib/form/tests/dateselector_test.php
lib/form/tests/datetimeselector_test.php
lib/form/yui/checkboxcontroller/checkboxcontroller.js
lib/google/Google/Service/Genomics.php [deleted file]
lib/google/Google/Service/Orkut.php [deleted file]
lib/google/Google/Service/Replicapool.php [deleted file]
lib/google/Google/Service/Resourceviews.php [deleted file]
lib/google/Google_Client.php [deleted file]
lib/google/README.md
lib/google/autoload.php [new file with mode: 0644]
lib/google/config.php [deleted file]
lib/google/curlio.php
lib/google/lib.php
lib/google/local_config.php [deleted file]
lib/google/readme_moodle.txt
lib/google/src/Google/Auth/Abstract.php [moved from lib/google/Google/Auth/Abstract.php with 94% similarity]
lib/google/src/Google/Auth/AppIdentity.php [moved from lib/google/Google/Auth/AppIdentity.php with 82% similarity]
lib/google/src/Google/Auth/AssertionCredentials.php [moved from lib/google/Google/Auth/AssertionCredentials.php with 97% similarity]
lib/google/src/Google/Auth/Exception.php [moved from lib/google/Google/Auth/Exception.php with 90% similarity]
lib/google/src/Google/Auth/LoginTicket.php [moved from lib/google/Google/Auth/LoginTicket.php with 96% similarity]
lib/google/src/Google/Auth/OAuth2.php [moved from lib/google/Google/Auth/OAuth2.php with 88% similarity]
lib/google/src/Google/Auth/Simple.php [moved from lib/google/Google/Auth/Simple.php with 91% similarity]
lib/google/src/Google/Cache/Abstract.php [moved from lib/google/Google/Cache/Abstract.php with 100% similarity]
lib/google/src/Google/Cache/Apc.php [moved from lib/google/Google/Cache/Apc.php with 60% similarity]
lib/google/src/Google/Cache/Exception.php [moved from lib/google/Google/Cache/Exception.php with 90% similarity]
lib/google/src/Google/Cache/File.php [moved from lib/google/Google/Cache/File.php with 71% similarity]
lib/google/src/Google/Cache/Memcache.php [moved from lib/google/Google/Cache/Memcache.php with 68% similarity]
lib/google/src/Google/Cache/Null.php [moved from lib/google/Google/Cache/Null.php with 92% similarity]
lib/google/src/Google/Client.php [moved from lib/google/Google/Client.php with 82% similarity]
lib/google/src/Google/Collection.php [moved from lib/google/Google/Collection.php with 97% similarity]
lib/google/src/Google/Config.php [moved from lib/google/Google/Config.php with 71% similarity]
lib/google/src/Google/Exception.php [moved from lib/google/Google/Exception.php with 100% similarity]
lib/google/src/Google/Http/Batch.php [moved from lib/google/Google/Http/Batch.php with 95% similarity]
lib/google/src/Google/Http/CacheParser.php [moved from lib/google/Google/Http/CacheParser.php with 98% similarity]
lib/google/src/Google/Http/MediaFileUpload.php [moved from lib/google/Google/Http/MediaFileUpload.php with 92% similarity]
lib/google/src/Google/Http/REST.php [moved from lib/google/Google/Http/REST.php with 87% similarity]
lib/google/src/Google/Http/Request.php [moved from lib/google/Google/Http/Request.php with 99% similarity]
lib/google/src/Google/IO/Abstract.php [moved from lib/google/Google/IO/Abstract.php with 97% similarity]
lib/google/src/Google/IO/Curl.php [moved from lib/google/Google/IO/Curl.php with 82% similarity]
lib/google/src/Google/IO/Exception.php [moved from lib/google/Google/IO/Exception.php with 90% similarity]
lib/google/src/Google/IO/Stream.php [moved from lib/google/Google/IO/Stream.php with 83% similarity]
lib/google/src/Google/IO/cacerts.pem [moved from lib/google/Google/IO/cacerts.pem with 100% similarity]
lib/google/src/Google/Logger/Abstract.php [new file with mode: 0644]
lib/google/src/Google/Logger/Exception.php [new file with mode: 0644]
lib/google/src/Google/Logger/File.php [new file with mode: 0644]
lib/google/src/Google/Logger/Null.php [new file with mode: 0644]
lib/google/src/Google/Logger/Psr.php [new file with mode: 0644]
lib/google/src/Google/Model.php [moved from lib/google/Google/Model.php with 86% similarity]
lib/google/src/Google/Service.php [moved from lib/google/Google/Service.php with 100% similarity]
lib/google/src/Google/Service/AdExchangeBuyer.php [moved from lib/google/Google/Service/AdExchangeBuyer.php with 91% similarity]
lib/google/src/Google/Service/AdExchangeSeller.php [moved from lib/google/Google/Service/AdExchangeSeller.php with 68% similarity]
lib/google/src/Google/Service/AdSense.php [moved from lib/google/Google/Service/AdSense.php with 85% similarity]
lib/google/src/Google/Service/AdSenseHost.php [moved from lib/google/Google/Service/AdSenseHost.php with 87% similarity]
lib/google/src/Google/Service/Admin.php [moved from lib/google/Google/Service/Admin.php with 95% similarity]
lib/google/src/Google/Service/Analytics.php [moved from lib/google/Google/Service/Analytics.php with 88% similarity]
lib/google/src/Google/Service/AndroidPublisher.php [moved from lib/google/Google/Service/AndroidPublisher.php with 79% similarity]
lib/google/src/Google/Service/AppState.php [moved from lib/google/Google/Service/AppState.php with 88% similarity]
lib/google/src/Google/Service/Appsactivity.php [moved from lib/google/Google/Service/Appsactivity.php with 87% similarity]
lib/google/src/Google/Service/Audit.php [moved from lib/google/Google/Service/Audit.php with 86% similarity]
lib/google/src/Google/Service/Autoscaler.php [moved from lib/google/Google/Service/Autoscaler.php with 74% similarity]
lib/google/src/Google/Service/Bigquery.php [moved from lib/google/Google/Service/Bigquery.php with 90% similarity]
lib/google/src/Google/Service/Blogger.php [moved from lib/google/Google/Service/Blogger.php with 84% similarity]
lib/google/src/Google/Service/Books.php [moved from lib/google/Google/Service/Books.php with 85% similarity]
lib/google/src/Google/Service/Calendar.php [moved from lib/google/Google/Service/Calendar.php with 76% similarity]
lib/google/src/Google/Service/CivicInfo.php [moved from lib/google/Google/Service/CivicInfo.php with 77% similarity]
lib/google/src/Google/Service/CloudMonitoring.php [moved from lib/google/Google/Service/CloudMonitoring.php with 76% similarity]
lib/google/src/Google/Service/Compute.php [moved from lib/google/Google/Service/Compute.php with 85% similarity]
lib/google/src/Google/Service/Container.php [new file with mode: 0644]
lib/google/src/Google/Service/Coordinate.php [moved from lib/google/Google/Service/Coordinate.php with 86% similarity]
lib/google/src/Google/Service/Customsearch.php [moved from lib/google/Google/Service/Customsearch.php with 86% similarity]
lib/google/src/Google/Service/Datastore.php [moved from lib/google/Google/Service/Datastore.php with 93% similarity]
lib/google/src/Google/Service/Dfareporting.php [moved from lib/google/Google/Service/Dfareporting.php with 93% similarity]
lib/google/src/Google/Service/Directory.php [moved from lib/google/Google/Service/Directory.php with 79% similarity]
lib/google/src/Google/Service/Dns.php [moved from lib/google/Google/Service/Dns.php with 85% similarity]
lib/google/src/Google/Service/DoubleClickBidManager.php [moved from lib/google/Google/Service/DoubleClickBidManager.php with 95% similarity]
lib/google/src/Google/Service/Doubleclicksearch.php [moved from lib/google/Google/Service/Doubleclicksearch.php with 91% similarity]
lib/google/src/Google/Service/Drive.php [moved from lib/google/Google/Service/Drive.php with 87% similarity]
lib/google/src/Google/Service/Exception.php [moved from lib/google/Google/Service/Exception.php with 94% similarity]
lib/google/src/Google/Service/Fitness.php [new file with mode: 0644]
lib/google/src/Google/Service/Freebase.php [moved from lib/google/Google/Service/Freebase.php with 80% similarity]
lib/google/src/Google/Service/Fusiontables.php [moved from lib/google/Google/Service/Fusiontables.php with 81% similarity]
lib/google/src/Google/Service/Games.php [moved from lib/google/Google/Service/Games.php with 88% similarity]
lib/google/src/Google/Service/GamesManagement.php [moved from lib/google/Google/Service/GamesManagement.php with 61% similarity]
lib/google/src/Google/Service/Genomics.php [new file with mode: 0644]
lib/google/src/Google/Service/Gmail.php [moved from lib/google/Google/Service/Gmail.php with 79% similarity]
lib/google/src/Google/Service/GroupsMigration.php [moved from lib/google/Google/Service/GroupsMigration.php with 96% similarity]
lib/google/src/Google/Service/Groupssettings.php [moved from lib/google/Google/Service/Groupssettings.php with 97% similarity]
lib/google/src/Google/Service/IdentityToolkit.php [moved from lib/google/Google/Service/IdentityToolkit.php with 95% similarity]
lib/google/src/Google/Service/Licensing.php [moved from lib/google/Google/Service/Licensing.php with 87% similarity]
lib/google/src/Google/Service/Manager.php [moved from lib/google/Google/Service/Manager.php with 92% similarity]
lib/google/src/Google/Service/MapsEngine.php [moved from lib/google/Google/Service/MapsEngine.php with 63% similarity]
lib/google/src/Google/Service/Mirror.php [moved from lib/google/Google/Service/Mirror.php with 92% similarity]
lib/google/src/Google/Service/Oauth2.php [moved from lib/google/Google/Service/Oauth2.php with 91% similarity]
lib/google/src/Google/Service/Pagespeedonline.php [moved from lib/google/Google/Service/Pagespeedonline.php with 92% similarity]
lib/google/src/Google/Service/Plus.php [moved from lib/google/Google/Service/Plus.php with 89% similarity]
lib/google/src/Google/Service/PlusDomains.php [moved from lib/google/Google/Service/PlusDomains.php with 89% similarity]
lib/google/src/Google/Service/Prediction.php [moved from lib/google/Google/Service/Prediction.php with 92% similarity]
lib/google/src/Google/Service/Pubsub.php [moved from lib/google/Google/Service/Pubsub.php with 78% similarity]
lib/google/src/Google/Service/QPXExpress.php [moved from lib/google/Google/Service/QPXExpress.php with 96% similarity]
lib/google/src/Google/Service/Replicapool.php [new file with mode: 0644]
lib/google/src/Google/Service/Replicapoolupdater.php [new file with mode: 0644]
lib/google/src/Google/Service/Reports.php [moved from lib/google/Google/Service/Reports.php with 83% similarity]
lib/google/src/Google/Service/Reseller.php [moved from lib/google/Google/Service/Reseller.php with 82% similarity]
lib/google/src/Google/Service/Resource.php [moved from lib/google/Google/Service/Resource.php with 85% similarity]
lib/google/src/Google/Service/Resourceviews.php [new file with mode: 0644]
lib/google/src/Google/Service/SQLAdmin.php [moved from lib/google/Google/Service/SQLAdmin.php with 88% similarity]
lib/google/src/Google/Service/ShoppingContent.php [moved from lib/google/Google/Service/ShoppingContent.php with 93% similarity]
lib/google/src/Google/Service/SiteVerification.php [moved from lib/google/Google/Service/SiteVerification.php with 92% similarity]
lib/google/src/Google/Service/Spectrum.php [moved from lib/google/Google/Service/Spectrum.php with 95% similarity]
lib/google/src/Google/Service/Storage.php [moved from lib/google/Google/Service/Storage.php with 79% similarity]
lib/google/src/Google/Service/TagManager.php [new file with mode: 0644]
lib/google/src/Google/Service/Taskqueue.php [moved from lib/google/Google/Service/Taskqueue.php with 88% similarity]
lib/google/src/Google/Service/Tasks.php [moved from lib/google/Google/Service/Tasks.php with 85% similarity]
lib/google/src/Google/Service/Translate.php [moved from lib/google/Google/Service/Translate.php with 91% similarity]
lib/google/src/Google/Service/Urlshortener.php [moved from lib/google/Google/Service/Urlshortener.php with 93% similarity]
lib/google/src/Google/Service/Webfonts.php [moved from lib/google/Google/Service/Webfonts.php with 95% similarity]
lib/google/src/Google/Service/Webmasters.php [new file with mode: 0644]
lib/google/src/Google/Service/YouTube.php [moved from lib/google/Google/Service/YouTube.php with 69% similarity]
lib/google/src/Google/Service/YouTubeAnalytics.php [moved from lib/google/Google/Service/YouTubeAnalytics.php with 78% similarity]
lib/google/src/Google/Signer/Abstract.php [moved from lib/google/Google/Signer/Abstract.php with 100% similarity]
lib/google/src/Google/Signer/P12.php [moved from lib/google/Google/Signer/P12.php with 97% similarity]
lib/google/src/Google/Utils.php [moved from lib/google/Google/Utils.php with 100% similarity]
lib/google/src/Google/Utils/URITemplate.php [moved from lib/google/Google/Utils/URITemplate.php with 100% similarity]
lib/google/src/Google/Verifier/Abstract.php [moved from lib/google/Google/Verifier/Abstract.php with 100% similarity]
lib/google/src/Google/Verifier/Pem.php [moved from lib/google/Google/Verifier/Pem.php with 95% similarity]
lib/googleapi.php
lib/installlib.php
lib/ldaplib.php
lib/moodlelib.php
lib/myprofilelib.php [new file with mode: 0644]
lib/navigationlib.php
lib/olson.php [deleted file]
lib/outputcomponents.php
lib/outputrenderers.php
lib/phpunit/classes/advanced_testcase.php
lib/phpunit/classes/util.php
lib/phpunit/tests/advanced_test.php
lib/setup.php
lib/statslib.php
lib/templates/notification_message.mustache [new file with mode: 0644]
lib/templates/notification_problem.mustache [new file with mode: 0644]
lib/templates/notification_redirect.mustache [new file with mode: 0644]
lib/templates/notification_success.mustache [new file with mode: 0644]
lib/templates/pix_icon.mustache
lib/tests/accesslib_test.php
lib/tests/behat/behat_general.php
lib/tests/behat/behat_navigation.php
lib/tests/behat/timezone.feature [new file with mode: 0644]
lib/tests/datalib_test.php
lib/tests/date_legacy_test.php [new file with mode: 0644]
lib/tests/date_test.php [new file with mode: 0644]
lib/tests/fixtures/google_gmail.ics
lib/tests/fixtures/timezonewindows.xml [new file with mode: 0644]
lib/tests/fixtures/upload_users.csv
lib/tests/ldaplib_test.php
lib/tests/message_test.php
lib/tests/moodlelib_test.php
lib/tests/scheduled_task_test.php
lib/tests/statslib_test.php
lib/tests/user_menu_test.php
lib/tests/user_test.php
lib/thirdpartylibs.xml
lib/timezone.txt [deleted file]
lib/upgrade.txt
lib/upgradelib.php
lib/yui/build/moodle-core-blocks/moodle-core-blocks-debug.js
lib/yui/build/moodle-core-blocks/moodle-core-blocks.js
lib/yui/src/blocks/js/blocks.js
lib/yui/src/blocks/js/manager.js
login/change_password.php
login/signup_form.php
message/edit.php
message/externallib.php
message/index.php
message/output/airnotifier/tests/externallib_test.php
message/output/email/lang/en/message_email.php
message/output/email/message_output_email.php
message/renderer.php
message/tests/behat/behat_message.php
message/tests/behat/block_users.feature
message/tests/behat/display_history.feature
message/tests/behat/manage_contacts.feature
message/tests/behat/message_participants.feature
message/tests/behat/search_history.feature
message/tests/behat/send_message.feature
message/tests/externallib_test.php
mod/assign/backup/moodle2/backup_assign_stepslib.php
mod/assign/backup/moodle2/restore_assign_stepslib.php
mod/assign/db/install.xml
mod/assign/db/upgrade.php
mod/assign/externallib.php
mod/assign/feedback/editpdf/tests/behat/annotate_pdf.feature
mod/assign/gradingtable.php
mod/assign/lang/en/assign.php
mod/assign/locallib.php
mod/assign/mod_form.php
mod/assign/renderable.php
mod/assign/renderer.php
mod/assign/settings.php
mod/assign/tests/behat/allow_another_attempt.feature
mod/assign/tests/behat/comment_inline.feature
mod/assign/tests/behat/display_grade.feature
mod/assign/tests/behat/edit_previous_feedback.feature
mod/assign/tests/behat/file_submission.feature
mod/assign/tests/behat/filter_by_marker.feature
mod/assign/tests/behat/grading_status.feature
mod/assign/tests/behat/grant_extension.feature
mod/assign/tests/behat/group_submission.feature
mod/assign/tests/behat/online_submissions.feature
mod/assign/tests/behat/outcome_grading.feature
mod/assign/tests/behat/prevent_submission_changes.feature
mod/assign/tests/behat/quickgrading.feature
mod/assign/tests/behat/submission_comments.feature
mod/assign/tests/behat/submit_without_group.feature [new file with mode: 0644]
mod/assign/tests/externallib_test.php
mod/assign/tests/locallib_test.php
mod/assign/upgrade.txt
mod/assign/version.php
mod/book/mod_form.php
mod/book/settings.php
mod/book/tests/behat/create_chapters.feature
mod/book/tests/behat/log_entries.feature
mod/book/tests/behat/show_hide_chapters.feature
mod/chat/lib.php
mod/chat/mod_form.php
mod/choice/mod_form.php
mod/choice/tests/behat/add_choice.feature
mod/choice/tests/behat/allow_preview.feature
mod/choice/tests/behat/block_editing.feature
mod/choice/tests/behat/change_response.feature
mod/choice/tests/behat/include_inactive.feature
mod/choice/tests/behat/limit_responses.feature
mod/choice/tests/behat/multiple_options.feature
mod/choice/tests/behat/my_home.feature
mod/choice/tests/behat/publish_results.feature
mod/choice/tests/behat/publish_results_anonymously.feature
mod/choice/view.php
mod/data/lib.php
mod/data/mod_form.php
mod/data/tests/behat/add_entries.feature
mod/data/tests/behat/required_entries.feature
mod/data/tests/behat/view_entries.feature
mod/data/tests/fixtures/test_data_content.csv
mod/feedback/mod_form.php
mod/folder/mod_form.php
mod/folder/settings.php
mod/forum/classes/event/user_report_viewed.php
mod/forum/db/services.php
mod/forum/discuss.php
mod/forum/externallib.php
mod/forum/lang/en/forum.php
mod/forum/lib.php
mod/forum/locallib.php
mod/forum/mod_form.php
mod/forum/post.php
mod/forum/tests/behat/add_forum.feature
mod/forum/tests/behat/completion_condition_number_discussions.feature
mod/forum/tests/behat/discussion_display.feature
mod/forum/tests/behat/discussion_navigation.feature
mod/forum/tests/behat/discussion_subscriptions.feature
mod/forum/tests/behat/edit_post_student.feature
mod/forum/tests/behat/edit_post_teacher.feature
mod/forum/tests/behat/forum_subscriptions.feature
mod/forum/tests/behat/forum_subscriptions_default.feature
mod/forum/tests/behat/my_forum_posts.feature
mod/forum/tests/behat/post_to_multiple_groups.feature
mod/forum/tests/behat/separate_group_discussions.feature
mod/forum/tests/behat/separate_group_single_group_discussions.feature
mod/forum/tests/behat/single_forum_discussion.feature
mod/forum/tests/behat/track_read_posts.feature
mod/forum/tests/events_test.php
mod/forum/tests/externallib_test.php
mod/forum/tests/lib_test.php
mod/forum/tests/maildigest_test.php
mod/forum/upgrade.txt
mod/forum/user.php
mod/glossary/mod_form.php
mod/glossary/tests/behat/categories.feature
mod/glossary/tests/behat/entries_always_editable.feature
mod/glossary/tests/behat/entries_require_approval.feature
mod/glossary/tests/behat/prevent_duplicate_entries.feature
mod/glossary/tests/behat/print_friendly_version.feature
mod/glossary/tests/behat/search_entries.feature
mod/imscp/mod_form.php
mod/imscp/settings.php
mod/label/mod_form.php
mod/lesson/backup/moodle1/lib.php
mod/lesson/backup/moodle2/backup_lesson_stepslib.php
mod/lesson/backup/moodle2/restore_lesson_stepslib.php
mod/lesson/classes/event/group_override_created.php [new file with mode: 0644]
mod/lesson/classes/event/group_override_deleted.php [new file with mode: 0644]
mod/lesson/classes/event/group_override_updated.php [new file with mode: 0644]
mod/lesson/classes/event/user_override_created.php [new file with mode: 0644]
mod/lesson/classes/event/user_override_deleted.php [new file with mode: 0644]
mod/lesson/classes/event/user_override_updated.php [new file with mode: 0644]
mod/lesson/classes/group_observers.php [new file with mode: 0644]
mod/lesson/continue.php
mod/lesson/db/access.php
mod/lesson/db/events.php [new file with mode: 0644]
mod/lesson/db/install.xml
mod/lesson/db/upgrade.php
mod/lesson/essay.php
mod/lesson/lang/en/deprecated.txt
mod/lesson/lang/en/lesson.php
mod/lesson/lib.php
mod/lesson/locallib.php
mod/lesson/mediafile.php
mod/lesson/mod_form.php
mod/lesson/override_form.php [new file with mode: 0644]
mod/lesson/overridedelete.php [new file with mode: 0644]
mod/lesson/overrideedit.php [new file with mode: 0644]
mod/lesson/overrides.php [new file with mode: 0644]
mod/lesson/report.php
mod/lesson/settings.php
mod/lesson/tests/behat/completion_condition_end_reached.feature
mod/lesson/tests/behat/completion_condition_time_spent.feature
mod/lesson/tests/behat/date_availability.feature
mod/lesson/tests/behat/import_fillintheblank_question.feature
mod/lesson/tests/behat/import_images.feature
mod/lesson/tests/behat/lesson_course_reset.feature [new file with mode: 0644]
mod/lesson/tests/behat/lesson_edit_cluster.feature
mod/lesson/tests/behat/lesson_edit_pages.feature
mod/lesson/tests/behat/lesson_essay_question.feature
mod/lesson/tests/behat/lesson_group_override.feature [new file with mode: 0644]
mod/lesson/tests/behat/lesson_informations_at_end.feature
mod/lesson/tests/behat/lesson_navigation.feature
mod/lesson/tests/behat/lesson_number_of_student_attempts.feature
mod/lesson/tests/behat/lesson_practice.feature
mod/lesson/tests/behat/lesson_progress_bar.feature
mod/lesson/tests/behat/lesson_review.feature
mod/lesson/tests/behat/lesson_student_dashboard.feature [new file with mode: 0644]
mod/lesson/tests/behat/lesson_student_resume.feature
mod/lesson/tests/behat/lesson_user_override.feature [new file with mode: 0644]
mod/lesson/tests/behat/lesson_with_clusters.feature
mod/lesson/tests/behat/lesson_with_subcluster.feature
mod/lesson/tests/behat/link_to_gradebook.feature
mod/lesson/tests/behat/password_protection.feature
mod/lesson/tests/behat/questions_images.feature
mod/lesson/tests/behat/teacher_grade_essays.feature
mod/lesson/tests/behat/time_limit.feature
mod/lesson/tests/events_test.php
mod/lesson/version.php
mod/lesson/view.php
mod/lti/mod_form.php
mod/page/mod_form.php
mod/page/settings.php
mod/quiz/attemptlib.php
mod/quiz/backup/moodle2/backup_quiz_stepslib.php
mod/quiz/backup/moodle2/restore_quiz_stepslib.php
mod/quiz/classes/output/edit_renderer.php
mod/quiz/classes/structure.php
mod/quiz/db/install.xml
mod/quiz/db/upgrade.php
mod/quiz/edit.php
mod/quiz/edit_rest.php
mod/quiz/lang/en/quiz.php
mod/quiz/lib.php
mod/quiz/locallib.php
mod/quiz/mod_form.php
mod/quiz/module.js
mod/quiz/renderer.php
mod/quiz/repaginate.php
mod/quiz/settings.php
mod/quiz/styles.css
mod/quiz/tests/attempt_test.php
mod/quiz/tests/behat/add_quiz.feature
mod/quiz/tests/behat/attempt_basic.feature
mod/quiz/tests/behat/attempt_redo_questions.feature
mod/quiz/tests/behat/attempt_require_previous.feature
mod/quiz/tests/behat/backup.feature [new file with mode: 0644]
mod/quiz/tests/behat/behat_mod_quiz.php
mod/quiz/tests/behat/completion_condition_attempts_used.feature
mod/quiz/tests/behat/completion_condition_passing_grade.feature
mod/quiz/tests/behat/editing_add.feature
mod/quiz/tests/behat/editing_click_delete_icon.feature [deleted file]
mod/quiz/tests/behat/editing_move_by_click.feature [moved from mod/quiz/tests/behat/editing_click_move_icon.feature with 83% similarity]
mod/quiz/tests/behat/editing_remove_question.feature [new file with mode: 0644]
mod/quiz/tests/behat/editing_repaginate.feature
mod/quiz/tests/behat/editing_require_previous.feature
mod/quiz/tests/behat/editing_section_headings.feature [new file with mode: 0644]
mod/quiz/tests/behat/editing_set_marks_no_attempts.feature
mod/quiz/tests/behat/editing_set_marks_with_attempts.feature
mod/quiz/tests/behat/quiz_reset.feature
mod/quiz/tests/fixtures/moodle_28_quiz.mbz [new file with mode: 0644]
mod/quiz/tests/generator/lib.php
mod/quiz/tests/structure_test.php
mod/quiz/upgrade.txt
mod/quiz/version.php
mod/quiz/yui/build/moodle-mod_quiz-dragdrop/moodle-mod_quiz-dragdrop-debug.js
mod/quiz/yui/build/moodle-mod_quiz-dragdrop/moodle-mod_quiz-dragdrop-min.js
mod/quiz/yui/build/moodle-mod_quiz-dragdrop/moodle-mod_quiz-dragdrop.js
mod/quiz/yui/build/moodle-mod_quiz-modform/moodle-mod_quiz-modform-debug.js
mod/quiz/yui/build/moodle-mod_quiz-modform/moodle-mod_quiz-modform-min.js
mod/quiz/yui/build/moodle-mod_quiz-modform/moodle-mod_quiz-modform.js
mod/quiz/yui/build/moodle-mod_quiz-quizbase/moodle-mod_quiz-quizbase-debug.js
mod/quiz/yui/build/moodle-mod_quiz-quizbase/moodle-mod_quiz-quizbase-min.js
mod/quiz/yui/build/moodle-mod_quiz-quizbase/moodle-mod_quiz-quizbase.js
mod/quiz/yui/build/moodle-mod_quiz-toolboxes/moodle-mod_quiz-toolboxes-debug.js
mod/quiz/yui/build/moodle-mod_quiz-toolboxes/moodle-mod_quiz-toolboxes-min.js
mod/quiz/yui/build/moodle-mod_quiz-toolboxes/moodle-mod_quiz-toolboxes.js
mod/quiz/yui/build/moodle-mod_quiz-util-page/moodle-mod_quiz-util-page-debug.js
mod/quiz/yui/build/moodle-mod_quiz-util-page/moodle-mod_quiz-util-page-min.js
mod/quiz/yui/build/moodle-mod_quiz-util-page/moodle-mod_quiz-util-page.js
mod/quiz/yui/build/moodle-mod_quiz-util-slot/moodle-mod_quiz-util-slot-debug.js
mod/quiz/yui/build/moodle-mod_quiz-util-slot/moodle-mod_quiz-util-slot-min.js
mod/quiz/yui/build/moodle-mod_quiz-util-slot/moodle-mod_quiz-util-slot.js
mod/quiz/yui/src/dragdrop/js/dragdrop.js
mod/quiz/yui/src/dragdrop/js/resource.js
mod/quiz/yui/src/dragdrop/js/section.js
mod/quiz/yui/src/modform/js/modform.js
mod/quiz/yui/src/quizbase/js/quizbase.js
mod/quiz/yui/src/toolboxes/js/resource.js
mod/quiz/yui/src/toolboxes/js/section.js
mod/quiz/yui/src/toolboxes/js/toolbox.js
mod/quiz/yui/src/util/js/page.js
mod/quiz/yui/src/util/js/slot.js
mod/resource/mod_form.php
mod/resource/settings.php
mod/scorm/lang/en/scorm.php
mod/scorm/lib.php
mod/scorm/mod_form.php
mod/scorm/tests/behat/add_scorm.feature
mod/survey/mod_form.php
mod/survey/tests/behat/survey_types.feature
mod/url/locallib.php
mod/url/mod_form.php
mod/url/settings.php
mod/wiki/mod_form.php
mod/wiki/tests/behat/collaborative_individual.feature
mod/wiki/tests/behat/edit_tags.feature
mod/wiki/tests/behat/page_history.feature
mod/wiki/tests/behat/preview_page.feature
mod/wiki/tests/behat/wiki_comments.feature
mod/wiki/tests/behat/wiki_formats.feature
mod/wiki/tests/behat/wiki_search.feature
mod/workshop/allocation/manual/styles.css
mod/workshop/allocation/random/styles.css
mod/workshop/lib.php
mod/workshop/mod_form.php
mod/workshop/styles.css
mod/workshop/tests/behat/workshop_assessment.feature
my/index.php
my/lib.php
my/tests/behat/add_blocks.feature
my/tests/behat/reset_page.feature
my/tests/behat/restrict_available_blocks.feature
notes/externallib.php
notes/index.php
notes/lib.php
notes/tests/externallib_test.php
pix/t/preferences.png [new file with mode: 0644]
pix/t/preferences.svg [new file with mode: 0644]
portfolio/googledocs/lib.php
question/classes/bank/view.php
question/format/xml/format.php
question/tests/behat/copy_questions.feature
question/tests/behat/delete_questions.feature
question/tests/behat/edit_questions.feature
question/tests/behat/preview_question.feature
question/tests/behat/question_categories.feature
question/tests/behat/sort_questions.feature
rating/classes/external.php [new file with mode: 0644]
rating/tests/externallib_test.php [new file with mode: 0644]
report/log/lib.php
report/log/tests/behat/filter_log.feature
report/log/tests/behat/user_log.feature
report/log/user.php
report/loglive/tests/behat/loglive_report.feature
report/outline/lib.php
report/outline/tests/behat/outline.feature
report/outline/tests/behat/user.feature
report/outline/user.php
report/participation/tests/behat/filter_participation.feature
report/usersessions/lib.php
report/usersessions/tests/behat/usersessions_report.feature
report/usersessions/user.php
repository/googledocs/lib.php
repository/manage_instances.php
repository/recent/tests/behat/add_recent.feature
repository/tests/behat/cancel_add_file.feature
repository/tests/behat/create_folders.feature
repository/tests/behat/create_shortcut.feature
repository/tests/behat/delete_files.feature
repository/tests/behat/overwrite_file.feature
repository/tests/behat/zip_and_unzip.feature
repository/upload/tests/behat/upload_file.feature
tag/index.php
tag/search.php
theme/base/style/course.css
theme/base/style/user.css
theme/base/templates/core/notification_message.mustache [new file with mode: 0644]
theme/base/templates/core/notification_problem.mustache [new file with mode: 0644]
theme/base/templates/core/notification_redirect.mustache [new file with mode: 0644]
theme/base/templates/core/notification_success.mustache [new file with mode: 0644]
theme/bootstrapbase/layout/columns1.php
theme/bootstrapbase/layout/columns2.php
theme/bootstrapbase/layout/columns3.php
theme/bootstrapbase/layout/popup.php
theme/bootstrapbase/less/moodle/core.less
theme/bootstrapbase/less/moodle/user.less
theme/bootstrapbase/renderers/core_renderer.php
theme/bootstrapbase/style/moodle.css
theme/clean/layout/columns1.php
theme/clean/layout/columns2.php
theme/clean/layout/columns3.php
user/classes/output/myprofile/category.php [new file with mode: 0644]
user/classes/output/myprofile/manager.php [new file with mode: 0644]
user/classes/output/myprofile/node.php [new file with mode: 0644]
user/classes/output/myprofile/renderer.php [new file with mode: 0644]
user/classes/output/myprofile/tree.php [new file with mode: 0644]
user/edit.php
user/edit_form.php
user/editadvanced.php
user/editadvanced_form.php
user/editlib.php
user/editor.php [new file with mode: 0644]
user/editor_form.php [new file with mode: 0644]
user/externallib.php
user/files.php
user/forum.php [new file with mode: 0644]
user/forum_form.php [new file with mode: 0644]
user/index.php
user/language.php [new file with mode: 0644]
user/language_form.php [new file with mode: 0644]
user/lib.php
user/preferences.php [new file with mode: 0644]
user/profile.php
user/profile/lib.php
user/tests/behat/add_blocks.feature
user/tests/behat/delete_users.feature
user/tests/behat/edituserpassword.feature
user/tests/behat/filter_idnumber.feature
user/tests/behat/reset_page.feature
user/tests/behat/set_default_homepage.feature [new file with mode: 0644]
user/tests/behat/table_sorting.feature
user/tests/behat/user_grade_navigation.feature [new file with mode: 0644]
user/tests/behat/view_full_profile.feature
user/tests/externallib_test.php
user/tests/fixtures/myprofile_fixtures.php [new file with mode: 0644]
user/tests/myprofile_test.php [new file with mode: 0644]
user/tests/profilelib_test.php
user/tests/userlib_test.php
user/view.php
version.php
webservice/upgrade.txt
webservice/upload.php

index 8ee0905..acd6060 100644 (file)
@@ -69,6 +69,7 @@ Options:
 --prefix=STRING       Table prefix for above database tables. Default is mdl_
 --fullname=STRING     The fullname of the site
 --shortname=STRING    The shortname of the site
+--summary=STRING      The summary to be displayed on the front page
 --adminuser=USERNAME  Username for the moodle admin account. Default is admin
 --adminpass=PASSWORD  Password for the moodle admin account,
                       required in non-interactive mode.
@@ -121,10 +122,11 @@ $olddir = getcwd();
 chdir(dirname($_SERVER['argv'][0]));
 
 // Servers should define a default timezone in php.ini, but if they don't then make sure something is defined.
-// This is a quick hack.  Ideally we should ask the admin for a value.  See MDL-22625 for more on this.
-if (function_exists('date_default_timezone_set') and function_exists('date_default_timezone_get')) {
-    @date_default_timezone_set(@date_default_timezone_get());
+if (!function_exists('date_default_timezone_set') or !function_exists('date_default_timezone_get')) {
+    fwrite(STDERR, "Timezone functions are not available.\n");
+    exit(1);
 }
+date_default_timezone_set(@date_default_timezone_get());
 
 // make sure PHP errors are displayed - helps with diagnosing of problems
 @error_reporting(E_ALL);
@@ -251,6 +253,7 @@ list($options, $unrecognized) = cli_get_params(
         'prefix'            => 'mdl_',
         'fullname'          => '',
         'shortname'         => '',
+        'summary'           => '',
         'adminuser'         => 'admin',
         'adminpass'         => '',
         'adminemail'        => '',
index 95af47d..df69376 100644 (file)
@@ -90,7 +90,7 @@ if (!empty($options['info'])) {
     $problem = false;
     foreach ($DB->get_tables(false) as $table) {
         $columns = $DB->get_columns($table, false);
-        $size = $generator->guess_antolope_row_size($columns);
+        $size = $generator->guess_antelope_row_size($columns);
         $format = $DB->get_row_format($table);
         if ($size <= $generator::ANTELOPE_MAX_ROW_SIZE) {
             continue;
@@ -120,7 +120,7 @@ if (!empty($options['info'])) {
     $fixtables = array();
     foreach ($DB->get_tables(false) as $table) {
         $columns = $DB->get_columns($table, false);
-        $size = $generator->guess_antolope_row_size($columns);
+        $size = $generator->guess_antelope_row_size($columns);
         $format = $DB->get_row_format($table);
         if ($size <= $generator::ANTELOPE_MAX_ROW_SIZE) {
             continue;
@@ -169,7 +169,7 @@ if (!empty($options['info'])) {
 
     foreach ($DB->get_tables(false) as $table) {
         $columns = $DB->get_columns($table, false);
-        $size = $generator->guess_antolope_row_size($columns);
+        $size = $generator->guess_antelope_row_size($columns);
         $format = $DB->get_row_format($table);
         if ($size <= $generator::ANTELOPE_MAX_ROW_SIZE) {
             continue;
index ede697b..e596403 100644 (file)
           <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>
 </COMPATIBILITY_MATRIX>
index 8df4edf..b263903 100644 (file)
@@ -521,6 +521,7 @@ if (empty($site->shortname)) {
     // probably new installation - lets return to frontpage after this step
     // remove settings that we want uninitialised
     unset_config('registerauth');
+    unset_config('timezone'); // Force admin to select timezone!
     redirect('upgradesettings.php?return=site');
 }
 
index 26afb90..5d75e70 100644 (file)
@@ -721,6 +721,8 @@ class core_admin_renderer extends plugin_renderer_base {
                 foreach ($updates['core'] as $update) {
                     $updateinfo .= $this->moodle_available_update_info($update);
                 }
+                $updateinfo .= html_writer::tag('p', get_string('updateavailablerecommendation', 'core_admin'),
+                    array('class' => 'updateavailablerecommendation'));
             }
             unset($updates['core']);
             // If something has left in the $updates array now, it is updates for plugins.
index 78b496a..3d723b8 100644 (file)
@@ -135,6 +135,11 @@ if ($roleid) {
     }
 }
 
+if (!empty($user) && ($user->id != $USER->id)) {
+    $PAGE->navigation->extend_for_user($user);
+    $PAGE->navbar->includesettingsbase = true;
+}
+
 $PAGE->set_pagelayout('admin');
 $PAGE->set_title($title);
 
index 938fc90..79c697b 100644 (file)
@@ -52,6 +52,7 @@ if (!has_any_capability(array('moodle/role:assign', 'moodle/role:safeoverride',
 $PAGE->set_url($url);
 
 if ($context->contextlevel == CONTEXT_USER and $USER->id != $context->instanceid) {
+    $PAGE->navbar->includesettingsbase = true;
     $PAGE->navigation->extend_for_user($user);
     $PAGE->set_context(context_course::instance($course->id));
 } else {
index 3670a86..841732d 100644 (file)
@@ -59,8 +59,9 @@ require_capability('moodle/role:review', $context);
 $PAGE->set_url($url);
 
 if ($context->contextlevel == CONTEXT_USER and $USER->id != $context->instanceid) {
+    $PAGE->navbar->includesettingsbase = true;
     $PAGE->navigation->extend_for_user($user);
-    $PAGE->set_context(context_course::instance($course->id));
+    $PAGE->set_context(context_user::instance($user->id));
 } else {
     $PAGE->set_context($context);
 }
index 70c564f..ab8911a 100644 (file)
@@ -27,9 +27,9 @@ if ($hassiteconfig or has_any_capability($capabilities, $systemcontext)) { // sp
         'customusermenuitems',
         new lang_string('customusermenuitems', 'admin'),
         new lang_string('configcustomusermenuitems', 'admin'),
-        'messages,message|/message/index.php|message
-myfiles,moodle|/user/files.php|download
-mybadges,badges|/badges/mybadges.php|award',
+        'mygrades,grades|/grade/report/mygrades.php|grades
+messages,message|/message/index.php|message
+mypreferences,moodle|/user/preferences.php|preferences',
         PARAM_TEXT,
         '50',
         '10'
@@ -140,7 +140,8 @@ mybadges,badges|/badges/mybadges.php|award',
         HOMEPAGE_MY => new lang_string('mymoodle', 'admin'),
         HOMEPAGE_USER => new lang_string('userpreference', 'admin')
     );
-    $temp->add(new admin_setting_configselect('defaulthomepage', new lang_string('defaulthomepage', 'admin'), new lang_string('configdefaulthomepage', 'admin'), HOMEPAGE_SITE, $choices));
+    $temp->add(new admin_setting_configselect('defaulthomepage', new lang_string('defaulthomepage', 'admin'),
+            new lang_string('configdefaulthomepage', 'admin'), HOMEPAGE_MY, $choices));
     $temp->add(new admin_setting_configcheckbox('allowguestmymoodle', new lang_string('allowguestmymoodle', 'admin'), new lang_string('configallowguestmymoodle', 'admin'), 1));
     $temp->add(new admin_setting_configcheckbox('navshowfullcoursenames', new lang_string('navshowfullcoursenames', 'admin'), new lang_string('navshowfullcoursenames_help', 'admin'), 0));
     $temp->add(new admin_setting_configcheckbox('navshowcategories', new lang_string('navshowcategories', 'admin'), new lang_string('confignavshowcategories', 'admin'), 1));
index 15a429e..ff70900 100644 (file)
@@ -75,6 +75,11 @@ if (has_capability('moodle/grade:manage', $systemcontext)
         $temp->add(new admin_setting_special_gradepointmax());
 
         $temp->add(new admin_setting_special_gradepointdefault());
+
+        $temp->add(new admin_setting_my_grades_report());
+
+        $temp->add(new admin_setting_configtext('gradereport_mygradeurl', new lang_string('externalurl', 'grades'),
+                new lang_string('externalurl_desc', 'grades'), ''));
     }
     $ADMIN->add('grades', $temp);
 
index 607090a..1868f33 100644 (file)
@@ -4,11 +4,8 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
 
     // "locations" settingpage
     $temp = new admin_settingpage('locationsettings', new lang_string('locationsettings', 'admin'));
-    $options = get_list_of_timezones();
-    $options[99] = new lang_string('serverlocaltime');
-    $temp->add(new admin_setting_configselect('timezone', new lang_string('timezone','admin'), new lang_string('configtimezone', 'admin'), 99, $options));
-    $options[99] = new lang_string('timezonenotforced', 'admin');
-    $temp->add(new admin_setting_configselect('forcetimezone', new lang_string('forcetimezone', 'admin'), new lang_string('helpforcetimezone', 'admin'), 99, $options));
+    $temp->add(new admin_setting_servertimezone());
+    $temp->add(new admin_setting_forcetimezone());
     $temp->add(new admin_settings_country_select('country', new lang_string('country', 'admin'), new lang_string('configcountry', 'admin'), 0));
     $temp->add(new admin_setting_configtext('defaultcity', new lang_string('defaultcity', 'admin'), new lang_string('defaultcity_help', 'admin'), ''));
 
index f0455b7..248b0bc 100644 (file)
@@ -32,6 +32,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'));
+
+    $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 */
index f8d5b74..b2c1d23 100644 (file)
@@ -157,6 +157,7 @@ if ($hassiteconfig
                        array('description' => new lang_string('description'),
                              'city' => new lang_string('city'),
                              'country' => new lang_string('country'),
+                             'timezone' => new lang_string('timezone'),
                              'webpage' => new lang_string('webpage'),
                              'icqnumber' => new lang_string('icqnumber'),
                              'skypeid' => new lang_string('skypeid'),
index 9bf7585..864b733 100644 (file)
@@ -9,6 +9,7 @@ Feature: Display extended course names
       | fullname | shortname | category |
       | Course fullname | C_shortname | 0 |
     And I log in as "admin"
+    And I am on site homepage
 
   Scenario: Courses list without extended course names (default value)
     Then I should see "Course fullname"
@@ -19,5 +20,5 @@ Feature: Display extended course names
     And I click on "Courses" "link" in the "//div[@id='settingsnav']/descendant::li[contains(concat(' ', normalize-space(@class), ' '), ' type_setting ')][contains(., 'Appearance')]" "xpath_element"
     And I set the field "Display extended course names" to "1"
     When I press "Save changes"
-    And I am on homepage
+    And I am on site homepage
     Then I should see "C_shortname Course fullname"
index 253ec7c..8feb542 100644 (file)
@@ -7,10 +7,10 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
   Background:
     Given the following "users" exist:
       | username | firstname | lastname | email | auth | confirmed |
-      | user1 | User | One | one@asd.com | manual | 0 |
-      | user2 | User | Two | two@asd.com | ldap | 1 |
-      | user3 | User | Three | three@asd.com | manual | 1 |
-      | user4 | User | Four | four@asd.com | ldap | 0 |
+      | user1 | User | One | one@example.com | manual | 0 |
+      | user2 | User | Two | two@example.com | ldap | 1 |
+      | user3 | User | Three | three@example.com | manual | 1 |
+      | user4 | User | Four | four@example.com | ldap | 0 |
     And the following "cohorts" exist:
       | name | idnumber |
       | Cohort 1 | CH1 |
@@ -23,8 +23,8 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
       | user2 | C1 | student |
       | user3 | C1 | student |
     And I log in as "admin"
-    And I add "User Two (two@asd.com)" user to "CH1" cohort members
-    And I add "User Three (three@asd.com)" user to "CH1" cohort members
+    And I add "User Two (two@example.com)" user to "CH1" cohort members
+    And I add "User Three (three@example.com)" user to "CH1" cohort members
     And I follow "Browse list of users"
 
   @javascript
index 66ab175..ffe69cb 100644 (file)
@@ -9,17 +9,18 @@ Feature: Set admin settings value
       | fullname | shortname | category |
       | Course fullname | C_shortname | 0 |
     And I log in as "admin"
+    And I am on site homepage
     And I should see "Course fullname"
     And I should not see "C_shortname Course fullname"
 
   Scenario: set admin value with full name
     Given the following config values are set as admin:
       | courselistshortnames | 1 |
-    And I am on homepage
+    And I am on site homepage
     Then I should see "C_shortname Course fullname"
 
   Scenario: set admin value with short name
     Given the following config values are set as admin:
       | courselistshortnames | 1 |
-    And I am on homepage
-    Then I should see "C_shortname Course fullname"
\ No newline at end of file
+    And I am on site homepage
+    Then I should see "C_shortname Course fullname"
index 7194144..0c4b1da 100644 (file)
@@ -21,7 +21,7 @@ Feature: Upload users
     And I should see "Tom"
     And I should see "Jones"
     And I should see "verysecret"
-    And I should see "jonest@someplace.edu"
+    And I should see "jonest@example.com"
     And I should see "Reznor"
     And I should see "course1"
     And I should see "math102"
@@ -32,8 +32,8 @@ Feature: Upload users
     And I follow "Browse list of users"
     And I should see "Tom Jones"
     And I should see "Trent Reznor"
-    And I should see "reznor@someplace.edu"
-    And I am on homepage
+    And I should see "reznor@example.com"
+    And I am on site homepage
     And I follow "Maths"
     And I expand "Users" node
     And I follow "Groups"
index 546b021..8e603a6 100644 (file)
     }
 
     require_once($CFG->dirroot.'/calendar/lib.php');
-    $timezones = get_list_of_timezones();
+    $timezones = core_date::get_list_of_timezones(null, true);
 
     echo '<center><form action="timezone.php" method="post">';
     echo html_writer::label($strusers . ' (' . $strall . '): ', 'menuzone');
-    echo html_writer::select($timezones, "zone", $current, array('99'=>get_string("serverlocaltime")));
+    echo html_writer::select($timezones, "zone", $current);
     echo "<input type=\"hidden\" name=\"sesskey\" value=\"".sesskey()."\" />";
     echo '<input type="submit" value="'.s($strsavechanges).'" />';
     echo "</form></center>";
index e968c20..9234fee 100644 (file)
@@ -31,7 +31,7 @@ Feature: Manage availability conditions
     And the following config values are set as admin:
       | enableavailability | 1 |
     And I log in as "admin"
-    And I am on homepage
+    And I am on site homepage
     When I navigate to "Manage restrictions" node in "Site administration > Plugins > Availability restrictions"
 
     # Check the icon is there (it should be a Hide icon, meaning is currently visible).
@@ -47,7 +47,7 @@ Feature: Manage availability conditions
 
     # OK, toggling works. Set the grade one to Hide and we'll go see if it actually worked.
     And I click on "input[title=Hide]" "css_element" in the "Restriction by grade" "table_row"
-    And I am on homepage
+    And I am on site homepage
     And I follow "Course 1"
     And I turn editing mode on
     And I add a "Page" to section "1"
index d4300d9..c80abb9 100644 (file)
@@ -59,6 +59,9 @@ list($options, $unrecognized) = cli_get_params(
 $help = "
 Behat utilities to initialise behat tests
 
+Usage:
+  php init.php [--parallel=value [--maxruns=value] [--fromrun=value --torun=value]] [--help]
+
 Options:
 -j, --parallel Number of parallel behat run to initialise
 -m, --maxruns  Max parallel processes to be executed at one time.
@@ -82,7 +85,7 @@ if (!empty($options['help'])) {
 $utilfile = 'util_single_run.php';
 $paralleloption = "";
 // If parallel run then use utilparallel.
-if ($options['parallel']) {
+if ($options['parallel'] && $options['parallel'] > 1) {
     $utilfile = 'util.php';
     $paralleloption = "";
     foreach ($options as $option => $value) {
index 4240747..06630ea 100644 (file)
@@ -50,24 +50,29 @@ list($options, $unrecognised) = cli_get_params(
         'help'     => false,
         'tags'     => '',
         'profile'  => '',
+        'feature'  => '',
         'fromrun'  => 1,
         'torun'    => 0,
+        'single-run' => false,
     ),
     array(
         'h' => 'help',
         't' => 'tags',
         'p' => 'profile',
+        's' => 'single-run',
     )
 );
 
 // Checking run.php CLI script usage.
 $help = "
 Behat utilities to run behat tests in parallel
+
+Usage:
+  php run.php [--BEHAT_OPTION=\"value\"] [--feature=\"value\"] [--replace] [--fromrun=value --torun=value] [--help]
+
 Options:
--t, --tags         Tags to execute.
--p, --profile      Profile to execute.
---stop-on-failure  Stop on failure in any parallel run.
---verbose          Verbose output
+--BEHAT_OPTION     Any combination of behat option specified in http://behat.readthedocs.org/en/v2.5/guides/6.cli.html
+--feature          Only execute specified feature file (Absolute path of feature file).
 --replace          Replace args string with run process number, useful for output.
 --fromrun          Execute run starting from (Used for parallel runs on different vms)
 --torun            Execute run till (Used for parallel runs on different vms)
@@ -75,7 +80,7 @@ Options:
 -h, --help         Print out this help
 
 Example from Moodle root directory:
-\$ php admin/tool/behat/cli/run.php --parallel=2
+\$ php admin/tool/behat/cli/run.php --tags=\"@javascript\"
 
 More info in http://docs.moodle.org/dev/Acceptance_testing#Running_tests
 ";
@@ -101,25 +106,6 @@ if (extension_loaded('pcntl')) {
     }
 }
 
-// If empty parallelrun then just check with user if it's a run single behat test.
-if (empty($parallelrun)) {
-    if (cli_input("This is not a parallel site, do you want to run single behat run? (Y/N)", 'n', array('y', 'n')) == 'y') {
-        $runtestscommand = behat_command::get_behat_command();
-        $runtestscommand .= ' --config ' . behat_config_manager::get_behat_cli_config_filepath();
-        exec("php $runtestscommand", $output, $code);
-        echo implode(PHP_EOL, $output) . PHP_EOL;
-        exit($code);
-    } else {
-        exit(1);
-    }
-}
-
-// Create site symlink if necessary.
-if (!behat_config_manager::create_parallel_site_links($options['fromrun'], $options['torun'])) {
-    echo "Check permissions. If on windows, make sure you are running this command as admin" . PHP_EOL;
-    exit(1);
-}
-
 $time = microtime(true);
 array_walk($unrecognised, function (&$v) {
     if ($x = preg_filter("#^(-+\w+)=(.+)#", "\$1='\$2'", $v)) {
@@ -151,6 +137,30 @@ if ($options['tags']) {
     $extraopts[] = '--tags="' . $tags . '"';
 }
 
+// Feature should be added to last, for behat command.
+if ($options['feature']) {
+    $extraopts[] = $options['feature'];
+    // Only run 1 process as process.
+    // Feature file is picked from absolute path provided, so no need to check for behat.yml.
+    $options['torun'] = $options['fromrun'];
+}
+
+// Set of options to pass to behat.
+$extraopts = implode(' ', $extraopts);
+
+// If empty parallelrun then just check with user if it's a run single behat test.
+if (empty($parallelrun)) {
+    $cwd = getcwd();
+    chdir(__DIR__);
+    $runtestscommand = behat_command::get_behat_command(false, false, true);
+    $runtestscommand .= ' --config ' . behat_config_manager::get_behat_cli_config_filepath();
+    $runtestscommand .= ' ' . $extraopts;
+    echo "Running single behat site:" . PHP_EOL;
+    passthru("php $runtestscommand", $code);
+    chdir($cwd);
+    exit($code);
+}
+
 // Update config file if tags defined.
 if ($tags) {
     // Hack to set proper dataroot and wwwroot.
@@ -158,12 +168,17 @@ if ($tags) {
     $behatwwwroot  = $CFG->behat_wwwroot;
     for ($i = 1; $i <= $parallelrun; $i++) {
         $CFG->behatrunprocess = $i;
-        $CFG->behat_dataroot = $behatdataroot . $i;
-        if (!empty($CFG->behat_parallel_run['behat_wwwroot'][$i - 1]['behat_wwwroot'])) {
-            $CFG->behat_wwwroot = $CFG->behat_parallel_run['behat_wwwroot'][$i - 1]['behat_wwwroot'];
+
+        if (!empty($CFG->behat_parallel_run[$i - 1]['behat_wwwroot'])) {
+            $CFG->behat_wwwroot = $CFG->behat_parallel_run[$i - 1]['behat_wwwroot'];
         } else {
             $CFG->behat_wwwroot = $behatwwwroot . "/" . BEHAT_PARALLEL_SITE_NAME . $i;
         }
+        if (!empty($CFG->behat_parallel_run[$i - 1]['behat_dataroot'])) {
+            $CFG->behat_dataroot = $CFG->behat_parallel_run[$i - 1]['behat_dataroot'];
+        } else {
+            $CFG->behat_dataroot = $behatdataroot . $i;
+        }
         behat_config_manager::update_config_file('', true, $tags);
     }
     $CFG->behat_dataroot = $behatdataroot;
@@ -172,7 +187,6 @@ if ($tags) {
 }
 
 $cmds = array();
-$extraopts = implode(' ', $extraopts);
 echo "Running " . ($options['torun'] - $options['fromrun'] + 1) . " parallel behat sites:" . PHP_EOL;
 
 for ($i = $options['fromrun']; $i <= $options['torun']; $i++) {
@@ -181,7 +195,7 @@ for ($i = $options['fromrun']; $i <= $options['torun']; $i++) {
     // Options parameters to be added to each run.
     $myopts = !empty($options['replace']) ? str_replace($options['replace'], $i, $extraopts) : $extraopts;
 
-    $behatcommand = behat_command::get_behat_command();
+    $behatcommand = behat_command::get_behat_command(false, false, true);
     $behatconfigpath = behat_config_manager::get_behat_cli_config_filepath($i);
 
     // Command to execute behat run.
@@ -194,8 +208,14 @@ if (empty($cmds)) {
     exit(1);
 }
 
+// Create site symlink if necessary.
+if (!behat_config_manager::create_parallel_site_links($options['fromrun'], $options['torun'])) {
+    echo "Check permissions. If on windows, make sure you are running this command as admin" . PHP_EOL;
+    exit(1);
+}
+
 // Execute all commands.
-$processes = cli_execute_parallel($cmds);
+$processes = cli_execute_parallel($cmds, __DIR__);
 $stoponfail = empty($options['stop-on-failure']) ? false : true;
 
 // Print header.
@@ -213,21 +233,31 @@ foreach ($exitcodes as $exitcode) {
     $status = (bool)$status || (bool)$exitcode;
 }
 
+// Run finished. Show exit code and output from individual process.
+$verbose = empty($options['verbose']) ? false : true;
+$verbose = $verbose || $status;
+
 // Show exit code from each process, if any process failed.
-if ($status) {
-    echo "Exit codes: " . implode(" ", $exitcodes) . PHP_EOL;
-    echo "To re-run failed processes, you can use following commands:" . PHP_EOL;
-    foreach ($cmds as $name => $cmd) {
-        if (!empty($exitcodes[$name])) {
-            echo "[" . $name . "] " . $cmd . PHP_EOL;
+if ($verbose) {
+    // Echo exit codes.
+    echo "Exit codes for each behat run: " . PHP_EOL;
+    ksort($exitcodes);
+    foreach ($exitcodes as $run => $exitcode) {
+        echo $run . ": " . $exitcode . PHP_EOL;
+    }
+
+    // Show failed re-run commands.
+    if ($status) {
+        echo "To re-run failed processes, you can use following commands:" . PHP_EOL;
+        foreach ($cmds as $name => $cmd) {
+            if (!empty($exitcodes[$name])) {
+                echo "[" . $name . "] " . $cmd . PHP_EOL;
+            }
         }
     }
     echo PHP_EOL;
 }
 
-// Run finished. Show exit code and output from individual process.
-$verbose = empty($options['verbose']) ? false : true;
-$verbose = $verbose || $status;
 print_each_process_info($processes, $verbose);
 
 // Remove site symlink if necessary.
index 1bdb72d..23a47fd 100644 (file)
@@ -68,15 +68,18 @@ list($options, $unrecognized) = cli_get_params(
 $help = "
 Behat utilities to manage the test environment
 
+Usage:
+  php util.php [--install|--drop|--enable|--disable|--diag|--updatesteps|--help] [--parallel=value [--maxruns=value]]
+
 Options:
 --install      Installs the test environment for acceptance tests
 --drop         Drops the database tables and the dataroot contents
 --enable       Enables test environment and updates tests list
 --disable      Disables test environment
 --diag         Get behat test environment status code
+--updatesteps  Update feature step file.
 -j, --parallel Number of parallel behat run operation
 -m, --maxruns  Max parallel processes to be executed at one time.
---updatesteps  Update feature step file.
 
 -h, --help     Print out this help
 
@@ -205,8 +208,12 @@ if ($options['install']) {
 } else if ($options['disable']) {
     echo "Acceptance tests environment disabled for " . $options['parallel'] . " parallel sites" . PHP_EOL;
 
+} else if ($options['diag']) {
+    // Valid option, so nothing to do.
 } else {
     echo $help;
+    chdir($cwd);
+    exit(1);
 }
 
 chdir($cwd);
index fa90359..b089539 100644 (file)
@@ -61,6 +61,9 @@ if ($options['install'] or $options['drop']) {
 $help = "
 Behat utilities to manage the test environment
 
+Usage:
+  php util_single_run.php [--install|--drop|--enable|--disable|--diag|--updatesteps|--help]
+
 Options:
 --install     Installs the test environment for acceptance tests
 --drop        Drops the database tables and the dataroot contents
index 6460eb2..86bfdaa 100644 (file)
@@ -7,7 +7,7 @@ Feature: Page contents assertions
   @javascript
   Scenario: Basic contents assertions
     Given I log in as "admin"
-    And I am on homepage
+    And I am on site homepage
     And I expand "Users" node
     And I follow "Groups"
     And I press "Create group"
@@ -22,8 +22,8 @@ Feature: Page contents assertions
     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 "Messaging" "link" in the "Administration" "block" should not be visible
-    And "Change password" "link" should not 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"
@@ -38,6 +38,7 @@ Feature: Page contents assertions
       | 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"
index 7b05caf..905e23b 100644 (file)
@@ -27,6 +27,7 @@ Feature: Set up contextual data for tests
       | Course 2 | COURSE2 | CAT3 |
       | Course 3 | COURSE3 | 0 |
     When I log in as "admin"
+    And I am on site homepage
     Then I should see "Course 1"
     And I should see "Course 2"
     And I should see "Course 3"
@@ -56,6 +57,7 @@ Feature: Set up contextual data for tests
       | Grouping 1 | C1 | GG1 |
       | Grouping 2 | C1 | GG2 |
     When I log in as "admin"
+    And I am on site homepage
     And I follow "Course 1"
     And I expand "Users" node
     And I follow "Groups"
@@ -69,8 +71,8 @@ Feature: Set up contextual data for tests
   Scenario: Role overrides
     Given the following "users" exist:
       | username | firstname | lastname | email |
-      | teacher1 | Teacher | 1 | teacher1@asd.com |
-      | student1 | Student | 1 | student1@asd.com |
+      | teacher1 | Teacher | 1 | teacher1@example.com |
+      | student1 | Student | 1 | student1@example.com |
     And the following "categories" exist:
       | name | category | idnumber |
       | Cat 1 | 0 | CAT1 |
@@ -86,6 +88,7 @@ Feature: Set up contextual data for tests
       | mod/forum:editanypost | Allow | student | Course | C1 |
       | mod/forum:replynews | Prevent | editingteacher | Course | C1 |
     When I log in as "admin"
+    And I am on site homepage
     And I follow "Course 1"
     And I expand "Users" node
     And I follow "Permissions"
@@ -99,7 +102,7 @@ Feature: Set up contextual data for tests
   Scenario: Add course enrolments
     Given the following "users" exist:
       | username | firstname | lastname | email |
-      | student1 | Student | 1 | student1@asd.com |
+      | student1 | Student | 1 | student1@example.com |
     And the following "courses" exist:
       | fullname | shortname | format |
       | Course 1 | C1 | topics |
@@ -117,11 +120,11 @@ Feature: Set up contextual data for tests
       | Custom student         | custom2   |                  |                |
     And the following "users" exist:
       | username | firstname | lastname | email |
-      | user1 | User | 1 | user1@moodlemoodle.com |
-      | user2 | User | 2 | user2@moodlemoodle.com |
-      | user3 | User | 3 | user3@moodlemoodle.com |
-      | user4 | User | 4 | user4@moodlemoodle.com |
-      | user5 | User | 5 | user5@moodlemoodle.com |
+      | user1 | User | 1 | user1@example.com |
+      | user2 | User | 2 | user2@example.com |
+      | user3 | User | 3 | user3@example.com |
+      | user4 | User | 4 | user4@example.com |
+      | user5 | User | 5 | user5@example.com |
     And the following "categories" exist:
       | name | category | idnumber |
       | Cat 1 | 0 | CAT1 |
@@ -138,22 +141,27 @@ Feature: Set up contextual data for tests
       | user3 | editingteacher | Course       | C1        |
       | user5 | custom2        | System       |           |
     When I log in as "user1"
+    And I am on site homepage
     Then I should see "Front page settings"
     And I log out
     And I log in as "user2"
+    And I am on site homepage
     And I follow "Course 1"
     And I should see "Turn editing on"
     And I log out
     And I log in as "user3"
+    And I am on site homepage
     And I follow "Course 1"
     And I should see "Turn editing on"
     And I log out
     And I log in as "user4"
+    And I am on site homepage
     And I follow "Course 1"
     And I should see "Turn editing on"
     And I log out
     And I log in as "user5"
     And I should see "You are logged in as"
+    And I am on site homepage
     And I follow "Course 1"
     And I should see "You can not enrol yourself in this course."
 
@@ -192,6 +200,7 @@ Feature: Set up contextual data for tests
       | activity   | name                            | intro                         | course | idnumber    | grade |
       | assign     | Test assignment name with scale | Test assignment description   | C1     | assign1     | Test Scale 1 |
     When I log in as "admin"
+    And I am on site homepage
     And I follow "Course 1"
     Then I should see "Test assignment name"
     # Assignment 2.2 module type is disabled by default
@@ -229,8 +238,8 @@ Feature: Set up contextual data for tests
   Scenario: Add relations between users and groups
     Given the following "users" exist:
       | username | firstname | lastname | email |
-      | student1 | Student | 1 | student1@asd.com |
-      | student2 | Student | 2 | student2@asd.com |
+      | student1 | Student | 1 | student1@example.com |
+      | student2 | Student | 2 | student2@example.com |
     And the following "courses" exist:
       | fullname | shortname |
       | Course 1 | C1 |
@@ -253,6 +262,7 @@ Feature: Set up contextual data for tests
       | grouping | group |
       | GG1 | G1 |
     When I log in as "admin"
+    And I am on site homepage
     And I follow "Course 1"
     And I expand "Users" node
     And I follow "Groups"
@@ -269,8 +279,8 @@ Feature: Set up contextual data for tests
       | Cat 1 | 0        | CAT1     |
     And the following "users" exist:
       | username | firstname | lastname | email |
-      | student1 | Student | 1 | student1@asd.com |
-      | student2 | Student | 2 | student2@asd.com |
+      | student1 | Student | 1 | student1@example.com |
+      | student2 | Student | 2 | student2@example.com |
     And the following "cohorts" exist:
       | name            | idnumber |
       | System cohort A | CHSA     |
@@ -312,6 +322,7 @@ Feature: Set up contextual data for tests
       | fullname | course | gradecategory |
       | Grade sub category 2 | C1 | Grade category 1 |
     When I log in as "admin"
+    And I am on site homepage
     And I follow "Courses"
     And I follow "Course 1"
     And I navigate to "Grades" node in "Course administration"
@@ -336,6 +347,7 @@ Feature: Set up contextual data for tests
       | Test Grade Item 2 | C1 | Grade category 1 |
       | Test Grade Item 3 | C1 | Grade sub category 2 |
     When I log in as "admin"
+    And I am on site homepage
     And I follow "Course 1"
     And I follow "Grades"
     And I expand "Setup" node
@@ -366,6 +378,7 @@ Feature: Set up contextual data for tests
       | name | scale |
       | Test Scale 1 | Disappointing, Good, Very good, Excellent |
     When I log in as "admin"
+    And I am on site homepage
     And I follow "Course 1"
     And I follow "Grades"
     And I follow "Scales"
@@ -388,7 +401,7 @@ Feature: Set up contextual data for tests
     And the following config values are set as admin:
       | enableoutcomes | 1 |
     When I log in as "admin"
-    And I follow "Home"
+    And I am on site homepage
     And I follow "Course 1"
     And I follow "Outcomes"
     Then I should see "Grade outcome 1" in the "#addoutcomes" "css_element"
@@ -417,7 +430,7 @@ Feature: Set up contextual data for tests
     And the following config values are set as admin:
       | enableoutcomes | 1 |
     When I log in as "admin"
-    And I follow "Home"
+    And I am on site homepage
     And I follow "Course 1"
     And I follow "Grades"
     And I expand "Setup" node
index d16e543..26d4f42 100644 (file)
@@ -7,7 +7,7 @@ Feature: Edit capabilities
   Background:
     Given the following "users" exist:
       | username | firstname | lastname | email |
-      | teacher1 | Teacher | 1 | teacher1@asd.com |
+      | teacher1 | Teacher | 1 | teacher1@example.com |
     And the following "courses" exist:
       | fullname | shortname | category |
       | Course 1 | C1 | 0 |
index 5e281be..40c1cbe 100644 (file)
@@ -10,9 +10,9 @@ Feature: Verify that all form fields values can be get and set
       | Course 1 | C1 | 0 |
     And the following "users" exist:
       | username | email | firstname | lastname |
-      | student1 | s1@asd.com | Student | 1 |
-      | student2 | s2@asd.com | Student | 2 |
-      | student3 | s3@asd.com | Student | 3 |
+      | student1 | s1@example.com | Student | 1 |
+      | student2 | s2@example.com | Student | 2 |
+      | student3 | s3@example.com | Student | 3 |
     And the following "course enrolments" exist:
       | user | course | role |
       | student1 | C1 | student |
@@ -39,7 +39,7 @@ Feature: Verify that all form fields values can be get and set
     # 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 homepage
+    And I am on site homepage
     And I follow "Course 1"
     And I turn editing mode on
     And I follow "Test this one"
index 952b65a..9aa451f 100644 (file)
@@ -7,13 +7,14 @@ Feature: Forms manipulation
   @javascript
   Scenario: Basic forms manipulation
     Given I log in as "admin"
-    And I navigate to "Edit profile" node in "My profile settings"
+    And I follow "My preferences" in the user menu
+    And I follow "Edit profile"
     When I set the field "First name" to "Field value"
-    And I set the field "Text editor" to "Plain text area"
+    And I set the field "Select a country" to "Japan"
     And I set the field "Unmask" to "1"
     And I expand all fieldsets
     Then the field "First name" matches value "Field value"
-    And the "Text editor" select box should contain "Plain text area"
+    And the "Select a country" select box should contain "Japan"
     And the field "Unmask" matches value "1"
     And I set the field "Unmask" to ""
     And the field "Unmask" matches value ""
@@ -25,6 +26,7 @@ Feature: Forms manipulation
       | fullname | shortname | category |
       | Course 1 | C1 | 0 |
     And I log in as "admin"
+    And I am on site homepage
     And I follow "Course 1"
     And I turn editing mode on
     And I add a "Quiz" to section "1"
index 5466d42..f6cdb33 100644 (file)
@@ -5,13 +5,15 @@ Feature: Transform steps arguments
   I need to apply some transformations to the steps arguments
 
   Background:
-    Given I am on homepage
+    Given I am on site homepage
     And the following "courses" exist:
       | fullname | shortname | category |
       | Course 1 | C1 | 0 |
     And I log in as "admin"
-    And I navigate to "Edit profile" node in "My profile settings"
+    And I follow "My 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"
@@ -22,6 +24,7 @@ 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 |
@@ -33,6 +36,7 @@ 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 |
index 1fa202b..c338f43 100644 (file)
@@ -5,5 +5,5 @@ Feature: Set up the testing environment
   I need to use the test environment instead of the regular environment
 
   Scenario: Accessing the site
-    When I am on homepage
+    When I am on site homepage
     Then I should see "Acceptance test site"
index ca52f01..3710f0c 100644 (file)
@@ -121,7 +121,7 @@ Feature: Add customised file types
       | Custom description | Froggy file                               |
     And I press "Save changes"
     # Create a resource activity and add it to a course
-    And I am on homepage
+    And I am on site homepage
     And I follow "Course 1"
     And I turn editing mode on
     When I add a "File" to section "1"
index 30d6b66..551ca1f 100644 (file)
@@ -56,7 +56,7 @@ class renderer extends \plugin_renderer_base {
      * @return string to display on the mangesubs page.
      */
     protected function render_rules(rules $renderable) {
-        $o = $this->render_course_select($renderable);
+        $o = '';
         if (!empty($renderable->totalcount)) {
             $o .= $this->render_table($renderable);
         }
index b298abf..c0c031a 100644 (file)
@@ -215,13 +215,17 @@ class rules extends \table_sql implements \renderable {
             return false;
         }
         $orderby = 'visible DESC, sortorder ASC';
-        $options = array(0 => get_string('site'));
+        $options = array();
         if ($courses = get_user_capability_course('tool/monitor:subscribe', null, true, 'fullname', $orderby)) {
             foreach ($courses as $course) {
                 $options[$course->id] = format_string($course->fullname, true,
                     array('context' => \context_course::instance($course->id)));
             }
         }
+        // If there are no options to display, then don't display anything.
+        if (count($options) === 0) {
+            return false;
+        }
         $url = new \moodle_url('/admin/tool/monitor/index.php');
         $select = new \single_select($url, 'courseid', $options, $this->courseid);
         $select->set_label(get_string('selectacourse', 'tool_monitor'));
index 3e06a33..478cbe0 100644 (file)
 require_once(__DIR__ . '/../../../config.php');
 require_once($CFG->libdir.'/adminlib.php');
 
-$courseid = optional_param('courseid', 0, PARAM_INT);
+$courseid = optional_param('courseid', SITEID, PARAM_INT);
 $action = optional_param('action', '', PARAM_ALPHA);
 $cmid = optional_param('cmid', 0, PARAM_INT);
 $ruleid = optional_param('ruleid', 0, PARAM_INT);
 $subscriptionid = optional_param('subscriptionid', 0, PARAM_INT);
 $confirm = optional_param('confirm', false, PARAM_BOOL);
 
-// Validate course id.
+require_login();
+
+// We need to explicitly check that the course id is something legitimate.
 if (empty($courseid)) {
-    require_login();
-} else {
-    // They might want to see rules for this course.
-    $course = get_course($courseid);
-    require_login($course);
-    $coursecontext = context_course::instance($course->id);
-    // Check for caps.
-    require_capability('tool/monitor:subscribe', $coursecontext);
-    $coursename = format_string($course->fullname, true, array('context' => $coursecontext));
+    $courseid = SITEID;
 }
 
+$coursecontext = context_course::instance($courseid);
+
 if (!get_config('tool_monitor', 'enablemonitor')) {
     // This should never happen as the this page does not appear in navigation when the tool is disabled.
     throw new coding_exception('Event monitoring is disabled');
 }
 
-// Always build the page in site context.
-$context = context_system::instance();
-$sitename = format_string($SITE->fullname, true, array('context' => $context));
-$PAGE->set_context($context);
+$sitename = format_string($SITE->fullname, true, array('context' => $coursecontext));
+$PAGE->set_context(context_user::instance($USER->id));
 
 // Set up the page.
 $indexurl = new moodle_url('/admin/tool/monitor/index.php', array('courseid' => $courseid));
 $PAGE->set_url($indexurl);
 $PAGE->set_pagelayout('report');
 $PAGE->set_title($sitename);
-$PAGE->set_heading($sitename);
+$PAGE->set_heading(fullname($USER));
+$settingsnode = $PAGE->settingsnav->find('monitor', null)->make_active();
 
 // Create/delete subscription if needed.
 if (!empty($action)) {
@@ -91,7 +86,7 @@ if (!empty($action)) {
             } else {
                 $subscription = \tool_monitor\subscription_manager::get_subscription($subscriptionid);
                 echo $OUTPUT->header();
-                echo $OUTPUT->confirm(get_string('subareyousure', 'tool_monitor', $subscription->get_name($context)),
+                echo $OUTPUT->confirm(get_string('subareyousure', 'tool_monitor', $subscription->get_name($coursecontext)),
                     $confirmurl, $cancelurl);
                 echo $OUTPUT->footer();
                 exit();
@@ -103,9 +98,22 @@ if (!empty($action)) {
     echo $OUTPUT->header();
 }
 
+$renderer = $PAGE->get_renderer('tool_monitor', 'managesubs');
+
+// Render the course selector.
+$totalrules = \tool_monitor\rule_manager::count_rules_by_courseid($courseid);
+$rules = new \tool_monitor\output\managesubs\rules('toolmonitorrules', $indexurl, $courseid);
+
+$usercourses = $rules->get_user_courses_select();
+if (!empty($usercourses)) {
+    echo $renderer->render($usercourses);
+} else {
+    // Nothing to show at all. Show a notification.
+    echo $OUTPUT->notification(get_string('rulenopermission', 'tool_monitor'), 'notifyproblem');
+}
+
 // Render the current subscriptions list.
 $totalsubs = \tool_monitor\subscription_manager::count_user_subscriptions();
-$renderer = $PAGE->get_renderer('tool_monitor', 'managesubs');
 if (!empty($totalsubs)) {
     // Show the subscriptions section only if there are subscriptions.
     $subs = new \tool_monitor\output\managesubs\subs('toolmonitorsubs', $indexurl, $courseid);
@@ -114,17 +122,15 @@ if (!empty($totalsubs)) {
 }
 
 // Render the potential rules list.
-$totalrules = \tool_monitor\rule_manager::count_rules_by_courseid($courseid);
-echo $OUTPUT->heading(get_string('rulescansubscribe', 'tool_monitor'), 3);
-$rules = new \tool_monitor\output\managesubs\rules('toolmonitorrules', $indexurl, $courseid);
-echo $renderer->render($rules);
+// Check the capability here before displaying any rules to subscribe to.
+if (has_capability('tool/monitor:subscribe', $coursecontext)) {
+    echo $OUTPUT->heading(get_string('rulescansubscribe', 'tool_monitor'), 3);
+    echo $renderer->render($rules);
+}
 
 // Check if the user can manage the course rules we are viewing.
-if (empty($courseid)) {
-    $canmanagerules = has_capability('tool/monitor:managerules', $context);
-} else {
-    $canmanagerules = has_capability('tool/monitor:managerules', $coursecontext);
-}
+$canmanagerules = has_capability('tool/monitor:managerules', $coursecontext);
+
 if (empty($totalrules)) {
     // No rules present. Show a link to manage rules page if permissions permit.
     echo html_writer::start_div();
index 77cd215..c0fbf7f 100644 (file)
@@ -87,6 +87,7 @@ $string['rulecopysuccess'] = 'Rule successfully duplicated';
 $string['ruledeletesuccess'] = 'Rule successfully deleted';
 $string['rulehelp'] = 'Rule details';
 $string['rulehelp_help'] = 'This rule listens for when the event \'{$a->eventname}\' in \'{$a->eventcomponent}\' has been triggered {$a->frequency} time(s) in {$a->minutes} minute(s).';
+$string['rulenopermission'] = 'You do not have permission to subscribe to any events.';
 $string['rulenopermissions'] = 'You do not have permissions to "{$a} a rule"';
 $string['rulescansubscribe'] = 'Rules you can subscribe to';
 $string['selectacourse'] = 'Select a course';
index 4b4ec31..4091ef2 100644 (file)
@@ -76,8 +76,9 @@ function tool_monitor_extend_navigation_frontpage($navigation, $course, $context
  */
 function tool_monitor_extend_navigation_user_settings($navigation, $user, $usercontext, $course, $coursecontext) {
     global $USER, $SITE;
-    if (($USER->id == $user->id) && (has_capability('tool/monitor:subscribe', $coursecontext)
-            && get_config('tool_monitor', 'enablemonitor'))) {
+
+    // Don't show the setting if the event monitor isn't turned on. No access to other peoples subscriptions.
+    if (get_config('tool_monitor', 'enablemonitor') && $USER->id == $user->id) {
         // The $course->id will always be the course that corresponds to the current context.
         $courseid = $course->id;
         // A $course->id of $SITE->id might either be the frontpage or the site. So if we get the site ID back, check the...
@@ -87,7 +88,7 @@ function tool_monitor_extend_navigation_user_settings($navigation, $user, $userc
         }
         $url = new moodle_url('/admin/tool/monitor/index.php', array('courseid' => $courseid));
         $subsnode = navigation_node::create(get_string('managesubscriptions', 'tool_monitor'), $url,
-                navigation_node::TYPE_SETTING, null, null, new pix_icon('i/settings', ''));
+                navigation_node::TYPE_SETTING, null, 'monitor', new pix_icon('i/settings', ''));
 
         if (isset($subsnode) && !empty($navigation)) {
             $navigation->add_node($subsnode);
index 5125284..0d25c54 100644 (file)
@@ -10,14 +10,14 @@ Feature: tool_monitor_rule
       | Course 1 | C1        |
     And the following "users" exist:
       | username | firstname | lastname | email |
-      | teacher1 | Teacher | 1 | teacher1@asd.com |
+      | teacher1 | Teacher | 1 | teacher1@example.com |
     And the following "course enrolments" exist:
       | user | course | role |
       | teacher1 | C1 | editingteac