Merge branch 'MDL-49802-master' of git://github.com/FMCorz/moodle
authorAndrew Nicols <andrew@nicols.co.uk>
Thu, 7 May 2015 02:03:37 +0000 (10:03 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Thu, 7 May 2015 02:03:37 +0000 (10:03 +0800)
560 files changed:
Gruntfile.js
admin/settings/appearance.php
admin/tool/assignmentupgrade/version.php
admin/tool/availabilityconditions/version.php
admin/tool/behat/cli/run.php
admin/tool/behat/tests/behat/data_generators.feature
admin/tool/behat/tests/behat/manipulate_forms.feature
admin/tool/behat/tests/behat/nasty_strings.feature
admin/tool/behat/version.php
admin/tool/capability/version.php
admin/tool/customlang/version.php
admin/tool/dbtransfer/version.php
admin/tool/filetypes/version.php
admin/tool/generator/version.php
admin/tool/health/version.php
admin/tool/innodb/version.php
admin/tool/installaddon/version.php
admin/tool/langimport/version.php
admin/tool/log/store/database/version.php
admin/tool/log/store/legacy/version.php
admin/tool/log/store/standard/version.php
admin/tool/log/version.php
admin/tool/messageinbound/version.php
admin/tool/monitor/classes/output/managesubs/rules.php
admin/tool/monitor/index.php
admin/tool/monitor/lib.php
admin/tool/monitor/tests/behat/subscription.feature
admin/tool/monitor/version.php
admin/tool/multilangupgrade/version.php
admin/tool/phpunit/version.php
admin/tool/profiling/version.php
admin/tool/replace/version.php
admin/tool/spamcleaner/version.php
admin/tool/task/version.php
admin/tool/templatelibrary/amd/build/display.min.js
admin/tool/templatelibrary/amd/src/display.js
admin/tool/templatelibrary/classes/api.php
admin/tool/templatelibrary/classes/external.php
admin/tool/templatelibrary/classes/output/list_templates_page.php
admin/tool/templatelibrary/db/services.php
admin/tool/templatelibrary/lang/en/tool_templatelibrary.php
admin/tool/templatelibrary/tests/externallib_test.php
admin/tool/templatelibrary/version.php
admin/tool/unsuproles/version.php
admin/tool/uploadcourse/version.php
admin/tool/uploaduser/version.php
admin/tool/xmldb/version.php
auth/cas/version.php
auth/db/version.php
auth/email/auth.php
auth/email/version.php
auth/fc/version.php
auth/imap/version.php
auth/ldap/auth.php
auth/ldap/version.php
auth/manual/version.php
auth/mnet/version.php
auth/nntp/version.php
auth/nologin/version.php
auth/none/version.php
auth/pam/version.php
auth/pop3/version.php
auth/radius/version.php
auth/shibboleth/version.php
auth/webservice/version.php
availability/condition/completion/version.php
availability/condition/date/version.php
availability/condition/grade/version.php
availability/condition/group/version.php
availability/condition/grouping/version.php
availability/condition/profile/version.php
backup/backup.class.php
badges/mybackpack.php
badges/mybadges.php
badges/newbadge.php
badges/tests/behat/award_badge.feature
blocks/activity_modules/version.php
blocks/activity_results/tests/behat/addblockinactivity.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/activity_results/version.php
blocks/admin_bookmarks/version.php
blocks/badges/db/access.php
blocks/badges/lang/en/block_badges.php
blocks/badges/version.php
blocks/blog_menu/version.php
blocks/blog_recent/version.php
blocks/blog_tags/version.php
blocks/calendar_month/version.php
blocks/calendar_upcoming/version.php
blocks/comments/version.php
blocks/community/version.php
blocks/completionstatus/version.php
blocks/course_list/version.php
blocks/course_overview/version.php
blocks/course_summary/version.php
blocks/feedback/version.php
blocks/glossary_random/version.php
blocks/html/version.php
blocks/login/version.php
blocks/mentees/version.php
blocks/messages/version.php
blocks/mnet_hosts/version.php
blocks/myprofile/version.php
blocks/navigation/version.php
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/version.php
blocks/online_users/version.php
blocks/participants/version.php
blocks/private_files/block_private_files.php
blocks/private_files/lang/en/block_private_files.php
blocks/private_files/version.php
blocks/quiz_results/version.php
blocks/recent_activity/version.php
blocks/rss_client/version.php
blocks/search_forums/version.php
blocks/section_links/version.php
blocks/selfcompletion/version.php
blocks/settings/version.php
blocks/site_main_menu/version.php
blocks/social_activities/version.php
blocks/tag_flickr/version.php
blocks/tag_youtube/version.php
blocks/tags/version.php
blog/index.php
blog/lib.php
cache/locks/file/version.php
cache/stores/file/version.php
cache/stores/memcache/version.php
cache/stores/memcached/version.php
cache/stores/mongodb/version.php
cache/stores/session/version.php
cache/stores/static/version.php
calendar/type/gregorian/version.php
course/category.ajax.php
course/format/singleactivity/version.php
course/format/social/version.php
course/format/topics/version.php
course/format/weeks/version.php
course/index.php
course/renderer.php
course/tests/behat/navigate_course_list.feature
course/tests/externallib_test.php
course/togglecompletion.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/category/version.php
enrol/cohort/version.php
enrol/database/version.php
enrol/flatfile/version.php
enrol/guest/tests/behat/guest_access.feature
enrol/guest/version.php
enrol/imsenterprise/version.php
enrol/index.php
enrol/ldap/version.php
enrol/manual/version.php
enrol/meta/tests/behat/enrol_meta.feature
enrol/meta/version.php
enrol/mnet/version.php
enrol/paypal/version.php
enrol/self/tests/behat/self_enrolment.feature
enrol/self/version.php
enrol/tests/behat/behat_enrol.php
files/externallib.php
filter/activitynames/version.php
filter/algebra/version.php
filter/censor/version.php
filter/data/version.php
filter/emailprotect/version.php
filter/emoticon/version.php
filter/glossary/version.php
filter/mathjaxloader/version.php
filter/mediaplugin/version.php
filter/multilang/version.php
filter/tex/version.php
filter/tidy/version.php
filter/urltolink/version.php
grade/export/ods/version.php
grade/export/txt/tests/behat/export.feature
grade/export/txt/version.php
grade/export/xls/version.php
grade/export/xml/tests/behat/export.feature
grade/export/xml/version.php
grade/grading/form/guide/version.php
grade/grading/form/rubric/version.php
grade/import/csv/version.php
grade/import/direct/version.php
grade/import/xml/version.php
grade/lib.php
grade/report/grader/version.php
grade/report/history/tests/behat/basic_functionality.feature
grade/report/history/version.php
grade/report/lib.php
grade/report/outcomes/version.php
grade/report/overview/index.php
grade/report/overview/lib.php
grade/report/overview/version.php
grade/report/singleview/tests/behat/singleview.feature
grade/report/singleview/version.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_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
lang/en/admin.php
lang/en/badges.php
lang/en/blog.php
lang/en/deprecated.txt
lang/en/grades.php
lang/en/moodle.php
lang/en/webservice.php
lib/adminlib.php
lib/ajax/getnavbranch.php
lib/classes/message/inbound/handler.php
lib/classes/output/external.php
lib/classes/output/mustache_filesystem_loader.php
lib/classes/output/mustache_template_finder.php [new file with mode: 0644]
lib/classes/string_manager_standard.php
lib/db/upgrade.php
lib/editor/atto/plugins/accessibilitychecker/tests/behat/accessibilitychecker.feature
lib/editor/atto/plugins/accessibilitychecker/version.php
lib/editor/atto/plugins/accessibilityhelper/tests/behat/accessibilityhelper.feature
lib/editor/atto/plugins/accessibilityhelper/version.php
lib/editor/atto/plugins/align/tests/behat/align.feature
lib/editor/atto/plugins/align/version.php
lib/editor/atto/plugins/backcolor/version.php
lib/editor/atto/plugins/bold/tests/behat/bold.feature
lib/editor/atto/plugins/bold/version.php
lib/editor/atto/plugins/charmap/tests/behat/charmap.feature
lib/editor/atto/plugins/charmap/version.php
lib/editor/atto/plugins/clear/tests/behat/clear.feature
lib/editor/atto/plugins/clear/version.php
lib/editor/atto/plugins/collapse/tests/behat/collapse.feature
lib/editor/atto/plugins/collapse/version.php
lib/editor/atto/plugins/emoticon/version.php
lib/editor/atto/plugins/equation/tests/behat/equation.feature
lib/editor/atto/plugins/equation/version.php
lib/editor/atto/plugins/fontcolor/version.php
lib/editor/atto/plugins/html/tests/behat/html.feature
lib/editor/atto/plugins/html/version.php
lib/editor/atto/plugins/image/tests/behat/image.feature
lib/editor/atto/plugins/image/version.php
lib/editor/atto/plugins/indent/tests/behat/indent.feature
lib/editor/atto/plugins/indent/version.php
lib/editor/atto/plugins/italic/tests/behat/italic.feature
lib/editor/atto/plugins/italic/version.php
lib/editor/atto/plugins/link/tests/behat/link.feature
lib/editor/atto/plugins/link/version.php
lib/editor/atto/plugins/managefiles/version.php
lib/editor/atto/plugins/media/tests/behat/media.feature
lib/editor/atto/plugins/media/version.php
lib/editor/atto/plugins/noautolink/version.php
lib/editor/atto/plugins/orderedlist/tests/behat/orderedlist.feature
lib/editor/atto/plugins/orderedlist/version.php
lib/editor/atto/plugins/rtl/version.php
lib/editor/atto/plugins/strike/tests/behat/strike.feature
lib/editor/atto/plugins/strike/version.php
lib/editor/atto/plugins/subscript/tests/behat/subscript.feature
lib/editor/atto/plugins/subscript/version.php
lib/editor/atto/plugins/superscript/tests/behat/superscript.feature
lib/editor/atto/plugins/superscript/version.php
lib/editor/atto/plugins/table/tests/behat/table.feature
lib/editor/atto/plugins/table/version.php
lib/editor/atto/plugins/title/tests/behat/title.feature
lib/editor/atto/plugins/title/version.php
lib/editor/atto/plugins/underline/tests/behat/underline.feature
lib/editor/atto/plugins/underline/version.php
lib/editor/atto/plugins/undo/version.php
lib/editor/atto/plugins/unorderedlist/tests/behat/unorderedlist.feature
lib/editor/atto/plugins/unorderedlist/version.php
lib/editor/atto/version.php
lib/editor/textarea/version.php
lib/editor/tinymce/plugins/ctrlhelp/version.php
lib/editor/tinymce/plugins/managefiles/version.php
lib/editor/tinymce/plugins/moodleemoticon/version.php
lib/editor/tinymce/plugins/moodleimage/version.php
lib/editor/tinymce/plugins/moodlemedia/version.php
lib/editor/tinymce/plugins/moodlenolink/version.php
lib/editor/tinymce/plugins/pdw/version.php
lib/editor/tinymce/plugins/spellchecker/version.php
lib/editor/tinymce/plugins/wrap/version.php
lib/editor/tinymce/tests/behat/edit_available_icons.feature
lib/editor/tinymce/version.php
lib/externallib.php
lib/form/yui/build/moodle-form-shortforms/moodle-form-shortforms-debug.js
lib/form/yui/build/moodle-form-shortforms/moodle-form-shortforms-min.js
lib/form/yui/build/moodle-form-shortforms/moodle-form-shortforms.js
lib/form/yui/src/shortforms/js/shortforms.js
lib/form/yui/src/shortforms/meta/shortforms.json
lib/formslib.php
lib/moodlelib.php
lib/myprofilelib.php
lib/navigationlib.php
lib/outputcomponents.php
lib/outputfactories.php
lib/outputrenderers.php
lib/setuplib.php
lib/tests/behat/behat_forms.php
lib/tests/fixtures/messageinbound/SAMPLE [new file with mode: 0644]
lib/tests/fixtures/messageinbound/evolution.test [new file with mode: 0644]
lib/tests/fixtures/messageinbound/ios.test [new file with mode: 0644]
lib/tests/fixtures/messageinbound/outlook.test [new file with mode: 0644]
lib/tests/messageinbound_test.php [new file with mode: 0644]
lib/tests/moodlelib_test.php
lib/tests/mustache_template_finder_test.php [new file with mode: 0644]
lib/tests/setuplib_test.php
lib/tests/string_manager_standard_test.php
lib/tests/user_menu_test.php
lib/upgradelib.php
lib/yui/build/moodle-core-event/moodle-core-event-debug.js
lib/yui/build/moodle-core-event/moodle-core-event-min.js
lib/yui/build/moodle-core-event/moodle-core-event.js
lib/yui/src/event/js/event.js
login/confirm.php
login/index.php
message/edit.php
message/output/airnotifier/version.php
message/output/email/version.php
message/output/jabber/version.php
message/output/popup/version.php
message/renderer.php
message/upgrade.txt
mnet/service/enrol/version.php
mod/assign/feedback/comments/version.php
mod/assign/feedback/editpdf/version.php
mod/assign/feedback/file/version.php
mod/assign/feedback/offline/version.php
mod/assign/submission/comments/version.php
mod/assign/submission/file/version.php
mod/assign/submission/onlinetext/version.php
mod/assign/tests/behat/quickgrading.feature
mod/assign/version.php
mod/assignment/type/offline/version.php
mod/assignment/type/online/version.php
mod/assignment/type/upload/version.php
mod/assignment/type/uploadsingle/version.php
mod/assignment/version.php
mod/book/delete.php
mod/book/tool/exportimscp/version.php
mod/book/tool/importhtml/version.php
mod/book/tool/print/version.php
mod/book/version.php
mod/chat/version.php
mod/choice/version.php
mod/choice/view.php
mod/data/field/checkbox/version.php
mod/data/field/date/version.php
mod/data/field/file/version.php
mod/data/field/latlong/version.php
mod/data/field/menu/version.php
mod/data/field/multimenu/version.php
mod/data/field/number/version.php
mod/data/field/picture/version.php
mod/data/field/radiobutton/version.php
mod/data/field/text/version.php
mod/data/field/textarea/version.php
mod/data/field/url/version.php
mod/data/preset/imagegallery/version.php
mod/data/version.php
mod/feedback/version.php
mod/folder/version.php
mod/forum/classes/message/inbound/reply_handler.php
mod/forum/lang/en/forum.php
mod/forum/lib.php
mod/forum/post.php
mod/forum/tests/behat/my_forum_posts.feature
mod/forum/tests/externallib_test.php
mod/forum/version.php
mod/glossary/version.php
mod/imscp/version.php
mod/label/version.php
mod/lesson/tests/behat/lesson_practice.feature
mod/lesson/tests/behat/questions_images.feature
mod/lesson/version.php
mod/lti/service/profile/version.php
mod/lti/service/toolproxy/version.php
mod/lti/service/toolsettings/version.php
mod/lti/version.php
mod/page/version.php
mod/quiz/accessrule/delaybetweenattempts/version.php
mod/quiz/accessrule/ipaddress/version.php
mod/quiz/accessrule/numattempts/version.php
mod/quiz/accessrule/openclosedate/version.php
mod/quiz/accessrule/password/version.php
mod/quiz/accessrule/safebrowser/version.php
mod/quiz/accessrule/securewindow/version.php
mod/quiz/accessrule/timelimit/version.php
mod/quiz/db/access.php
mod/quiz/renderer.php
mod/quiz/report/grading/version.php
mod/quiz/report/overview/version.php
mod/quiz/report/responses/version.php
mod/quiz/report/statistics/version.php
mod/quiz/tests/behat/completion_condition_attempts_used.feature
mod/quiz/tests/behat/completion_condition_passing_grade.feature
mod/quiz/version.php
mod/resource/version.php
mod/scorm/report/basic/version.php
mod/scorm/report/graphs/version.php
mod/scorm/report/interactions/version.php
mod/scorm/report/objectives/version.php
mod/scorm/version.php
mod/survey/save.php
mod/survey/version.php
mod/url/version.php
mod/wiki/filesedit.php
mod/wiki/version.php
mod/workshop/allocation/manual/version.php
mod/workshop/allocation/random/version.php
mod/workshop/allocation/scheduled/version.php
mod/workshop/eval/best/version.php
mod/workshop/form/accumulative/version.php
mod/workshop/form/comments/version.php
mod/workshop/form/numerrors/version.php
mod/workshop/form/rubric/version.php
mod/workshop/version.php
my/tests/behat/add_blocks.feature
my/tests/behat/reset_page.feature
notes/index.php
notes/lib.php
portfolio/boxnet/version.php
portfolio/download/version.php
portfolio/flickr/version.php
portfolio/googledocs/version.php
portfolio/mahara/version.php
portfolio/picasa/version.php
question/behaviour/adaptive/version.php
question/behaviour/adaptivenopenalty/version.php
question/behaviour/deferredcbm/version.php
question/behaviour/deferredfeedback/version.php
question/behaviour/immediatecbm/version.php
question/behaviour/immediatefeedback/version.php
question/behaviour/informationitem/version.php
question/behaviour/interactive/version.php
question/behaviour/interactivecountback/version.php
question/behaviour/manualgraded/version.php
question/behaviour/missing/version.php
question/format/aiken/version.php
question/format/blackboard_six/version.php
question/format/examview/version.php
question/format/gift/version.php
question/format/missingword/version.php
question/format/multianswer/version.php
question/format/webct/version.php
question/format/xhtml/version.php
question/format/xml/version.php
question/type/calculated/version.php
question/type/calculatedmulti/version.php
question/type/calculatedsimple/version.php
question/type/description/version.php
question/type/essay/version.php
question/type/match/version.php
question/type/missingtype/version.php
question/type/multianswer/version.php
question/type/multichoice/version.php
question/type/numerical/version.php
question/type/random/version.php
question/type/randomsamatch/version.php
question/type/shortanswer/version.php
question/type/truefalse/version.php
report/backups/version.php
report/completion/version.php
report/configlog/version.php
report/courseoverview/version.php
report/eventlist/version.php
report/log/version.php
report/loglive/version.php
report/outline/tests/behat/user.feature
report/outline/version.php
report/participation/version.php
report/performance/version.php
report/progress/version.php
report/questioninstances/version.php
report/security/version.php
report/stats/version.php
report/usersessions/tests/behat/usersessions_report.feature
report/usersessions/version.php
repository/alfresco/version.php
repository/areafiles/version.php
repository/boxnet/version.php
repository/coursefiles/version.php
repository/dropbox/version.php
repository/equella/version.php
repository/filesystem/version.php
repository/flickr/version.php
repository/flickr_public/version.php
repository/googledocs/version.php
repository/local/version.php
repository/merlot/version.php
repository/picasa/version.php
repository/recent/tests/behat/add_recent.feature
repository/recent/version.php
repository/s3/version.php
repository/skydrive/version.php
repository/tests/behat/cancel_add_file.feature
repository/tests/behat/create_shortcut.feature
repository/tests/behat/delete_files.feature
repository/tests/behat/overwrite_file.feature
repository/upload/tests/behat/upload_file.feature
repository/upload/version.php
repository/url/version.php
repository/user/version.php
repository/webdav/version.php
repository/wikimedia/version.php
repository/youtube/version.php
theme/base/templates/core/notification_message.mustache
theme/base/templates/core/notification_problem.mustache
theme/base/templates/core/notification_redirect.mustache
theme/base/templates/core/notification_success.mustache
theme/base/version.php
theme/bootstrapbase/less/moodle/message.less
theme/bootstrapbase/style/moodle.css
theme/bootstrapbase/version.php
theme/canvas/version.php
theme/clean/classes/core_renderer.php [new file with mode: 0644]
theme/clean/layout/columns1.php
theme/clean/layout/columns2.php
theme/clean/layout/columns3.php
theme/clean/version.php
theme/more/version.php
user/editor.php
user/editor_form.php
user/files.php
user/forum.php
user/forum_form.php
user/language.php
user/language_form.php
user/lib.php
user/preferences.php
user/profile/field/checkbox/version.php
user/profile/field/datetime/version.php
user/profile/field/menu/version.php
user/profile/field/text/version.php
user/profile/field/textarea/version.php
user/tests/behat/user_grade_navigation.feature
user/view.php
version.php
webservice/amf/version.php
webservice/rest/version.php
webservice/soap/version.php
webservice/xmlrpc/version.php

index 4c45234..6237dfa 100644 (file)
@@ -24,7 +24,8 @@
 
 module.exports = function(grunt) {
     var path = require('path'),
-        tasks = {};
+        tasks = {},
+        cwd = process.env.PWD || process.cwd();
 
     // Project configuration.
     grunt.initConfig({
@@ -38,11 +39,11 @@ module.exports = function(grunt) {
                     ['**/src/*.js', '!**/node_modules/**'],
                     '',
                     {
-                        cwd: process.env.PWD,
+                        cwd: cwd,
                         rename: function(destBase, destPath) {
                             destPath = destPath.replace('src', 'build');
                             destPath = destPath.replace('.js', '.min.js');
-                            destPath = path.resolve(process.env.PWD, destPath);
+                            destPath = path.resolve(cwd, destPath);
                             return destPath;
                         }
                     }
@@ -63,13 +64,15 @@ module.exports = function(grunt) {
             },
             shifter;
 
+            args.push( path.normalize(__dirname + '/node_modules/shifter/bin/shifter'));
+
             // Determine the most appropriate options to run with based upon the current location.
-            if (path.basename(process.env.PWD) === 'src') {
+            if (path.basename(cwd) === 'src') {
                 // Detect whether we're in a src directory.
                 grunt.log.debug('In a src directory');
                 args.push('--walk');
                 options.walk = true;
-            } else if (path.basename(path.dirname(process.env.PWD)) === 'src') {
+            } else if (path.basename(path.dirname(cwd)) === 'src') {
                 // Detect whether we're in a module directory.
                 grunt.log.debug('In a module directory');
                 options.module = true;
@@ -100,8 +103,8 @@ module.exports = function(grunt) {
             }
 
             // Actually run shifter.
-            shifter = exec(process.cwd() + '/node_modules/shifter/bin/shifter', args, {
-                cwd: process.env.PWD,
+            shifter = exec("node", args, {
+                cwd: cwd,
                 stdio: 'inherit',
                 env: process.env
             });
@@ -119,10 +122,10 @@ module.exports = function(grunt) {
 
     tasks.startup = function() {
         // Are we in a YUI directory?
-        if (path.basename(path.resolve(process.env.PWD, '../../')) == 'yui') {
+        if (path.basename(path.resolve(cwd, '../../')) == 'yui') {
             grunt.task.run('shifter');
         // Are we in an AMD directory?
-        } else if (path.basename(process.env.PWD) == 'amd') {
+        } else if (path.basename(cwd) == 'amd') {
             grunt.task.run('jshint');
             grunt.task.run('uglify');
         } else {
index ab8911a..5867711 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'),
-        'mygrades,grades|/grade/report/mygrades.php|grades
+        'grades,grades|/grade/report/mygrades.php|grades
 messages,message|/message/index.php|message
-mypreferences,moodle|/user/preferences.php|preferences',
+preferences,moodle|/user/preferences.php|preferences',
         PARAM_TEXT,
         '50',
         '10'
index 70a9fd6..e459706 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;
-$plugin->requires  = 2014110400;
+$plugin->version   = 2015051100;
+$plugin->requires  = 2015050500;
 $plugin->component = 'tool_assignmentupgrade';
-$plugin->dependencies = array('mod_assign' => 2014110400);
+$plugin->dependencies = array('mod_assign' => 2015050500);
index 2272aa3..52cdd4a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000;
-$plugin->requires = 2014110400;
+$plugin->version = 2015051100;
+$plugin->requires = 2015050500;
 $plugin->component = 'tool_availabilityconditions';
index 06630ea..6e19659 100644 (file)
@@ -108,7 +108,7 @@ if (extension_loaded('pcntl')) {
 
 $time = microtime(true);
 array_walk($unrecognised, function (&$v) {
-    if ($x = preg_filter("#^(-+\w+)=(.+)#", "\$1='\$2'", $v)) {
+    if ($x = preg_filter("#^(-+\w+)=(.+)#", "\$1=\"\$2\"", $v)) {
         $v = $x;
     } else if (!preg_match("#^-#", $v)) {
         $v = escapeshellarg($v);
@@ -124,7 +124,7 @@ if ($options['profile']) {
         echo "Invalid profile passed: " . $profile;
         exit(1);
     }
-    $extraopts[] = '--profile=\'' . $profile . "'";
+    $extraopts[] = '--profile="' . $profile . '"';
     // By default, profile tags will be used.
     if (!empty($CFG->behat_config[$profile]['filters']['tags'])) {
         $tags = $CFG->behat_config[$profile]['filters']['tags'];
index 905e23b..6a15dd4 100644 (file)
@@ -349,7 +349,7 @@ Feature: Set up contextual data for tests
     When I log in as "admin"
     And I am on site homepage
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I expand "Setup" node
     And I follow "Categories and items"
     Then I should see "Test Grade Item 1"
@@ -380,7 +380,7 @@ Feature: Set up contextual data for tests
     When I log in as "admin"
     And I am on site homepage
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I follow "Scales"
     Then I should see "Test Scale 1"
     And I should see "Disappointing,  Good,  Very good,  Excellent"
@@ -432,7 +432,7 @@ Feature: Set up contextual data for tests
     When I log in as "admin"
     And I am on site homepage
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I expand "Setup" node
     And I follow "Categories and items"
     Then I should see "Test Outcome Grade Item 1"
index 9aa451f..20c3c29 100644 (file)
@@ -7,7 +7,7 @@ Feature: Forms manipulation
   @javascript
   Scenario: Basic forms manipulation
     Given I log in as "admin"
-    And I follow "My preferences" in the user menu
+    And I follow "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 "Select a country" to "Japan"
index f6cdb33..41fac8d 100644 (file)
@@ -10,7 +10,7 @@ Feature: Transform steps arguments
       | fullname | shortname | category |
       | Course 1 | C1 | 0 |
     And I log in as "admin"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Edit profile"
 
   @javascript
index 35adb63..e5cea8c 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;   // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;   // Requires this Moodle version
+$plugin->version   = 2015051100;   // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;   // Requires this Moodle version
 $plugin->component = 'tool_behat'; // Full name of the plugin (used for diagnostics)
index 863822c..e1128f6 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014110400; // Requires this Moodle version.
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2015050500; // Requires this Moodle version.
 $plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
index f0ffed6..cdba1b3 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;
-$plugin->requires  = 2014110400;
+$plugin->version   = 2015051100;
+$plugin->requires  = 2015050500;
 $plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
index b1d8ab0..95201c8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014110400; // Requires this Moodle version.
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2015050500; // Requires this Moodle version.
 $plugin->component = 'tool_dbtransfer'; // Full name of the plugin (used for diagnostics).
index f4cefec..b615e7c 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014112700;
-$plugin->requires = 2014112700;
+$plugin->version = 2015051100;
+$plugin->requires = 2015050500;
 $plugin->component = 'tool_filetypes';
index bbd2747..e80291c 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000;
-$plugin->requires = 2014110400;
+$plugin->version = 2015051100;
+$plugin->requires = 2015050500;
 $plugin->component = 'tool_generator';
index 11c1b60..b284087 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_health'; // Full name of the plugin (used for diagnostics)
 
 $plugin->maturity  = MATURITY_ALPHA; // this version's maturity level
index c5ea4a7..ef52c4e 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_innodb'; // Full name of the plugin (used for diagnostics)
index da278d9..4c22571 100644 (file)
@@ -24,6 +24,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->component  = 'tool_installaddon';
-$plugin->version    = 2014111000;
-$plugin->requires   = 2014110400;
+$plugin->version    = 2015051100;
+$plugin->requires   = 2015050500;
 $plugin->maturity   = MATURITY_STABLE;
index f29650c..ba6f1e5 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_langimport'; // Full name of the plugin (used for diagnostics)
index 8cc3fcf..6c635b4 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2014110400; // Requires this Moodle version.
+$plugin->version = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2015050500; // Requires this Moodle version.
 $plugin->component = 'logstore_database'; // Full name of the plugin (used for diagnostics).
index 060f925..0cf0cdd 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2014110400; // Requires this Moodle version.
+$plugin->version = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2015050500; // Requires this Moodle version.
 $plugin->component = 'logstore_legacy'; // Full name of the plugin (used for diagnostics).
index c8a2225..b164b2a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2014110400; // Requires this Moodle version.
+$plugin->version = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2015050500; // Requires this Moodle version.
 $plugin->component = 'logstore_standard'; // Full name of the plugin (used for diagnostics).
index 766ed73..bdc5cbd 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2014110400; // Requires this Moodle version.
+$plugin->version = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2015050500; // Requires this Moodle version.
 $plugin->component = 'tool_log'; // Full name of the plugin (used for diagnostics).
index 44c3bc7..43d8ba9 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;
-$plugin->requires  = 2014110400;
+$plugin->version   = 2015051100;
+$plugin->requires  = 2015050500;
 $plugin->component = 'tool_messageinbound';
index c0c031a..b298abf 100644 (file)
@@ -215,17 +215,13 @@ class rules extends \table_sql implements \renderable {
             return false;
         }
         $orderby = 'visible DESC, sortorder ASC';
-        $options = array();
+        $options = array(0 => get_string('site'));
         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 5dcc916..84f1ea6 100644 (file)
 require_once(__DIR__ . '/../../../config.php');
 require_once($CFG->libdir.'/adminlib.php');
 
-$courseid = optional_param('courseid', SITEID, PARAM_INT);
+$courseid = optional_param('courseid', 0, 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);
 
-require_login();
-
-// We need to explicitly check that the course id is something legitimate.
+// Validate course id.
 if (empty($courseid)) {
-    $courseid = SITEID;
+    require_login();
+    $context = context_system::instance();
+} else {
+    // They might want to see rules for this course.
+    $course = get_course($courseid);
+    require_login($course);
+    $context = context_course::instance($course->id);
+    // Check for caps.
+    require_capability('tool/monitor:subscribe', $context);
 }
 
-$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');
 }
 
+// Use the user context here so that the header shows user information.
 $PAGE->set_context(context_user::instance($USER->id));
 
 // Set up the page.
@@ -85,7 +90,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($coursecontext)),
+                echo $OUTPUT->confirm(get_string('subareyousure', 'tool_monitor', $subscription->get_name($context)),
                     $confirmurl, $cancelurl);
                 echo $OUTPUT->footer();
                 exit();
@@ -121,14 +126,11 @@ if (!empty($totalsubs)) {
 }
 
 // Render the potential rules list.
-// 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);
-}
+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.
-$canmanagerules = has_capability('tool/monitor:managerules', $coursecontext);
+$canmanagerules = has_capability('tool/monitor:managerules', $context);
 
 if (empty($totalrules)) {
     // No rules present. Show a link to manage rules page if permissions permit.
index 4091ef2..cbce856 100644 (file)
@@ -79,14 +79,7 @@ function tool_monitor_extend_navigation_user_settings($navigation, $user, $userc
 
     // 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...
-        // ...courseid parameter passed to the page so we can know if we are looking at the frontpage rules or site level rules.
-        if ($course->id == $SITE->id && optional_param('courseid', $course->id, PARAM_INT) == 0) {
-            $courseid = 0;
-        }
-        $url = new moodle_url('/admin/tool/monitor/index.php', array('courseid' => $courseid));
+        $url = new moodle_url('/admin/tool/monitor/index.php');
         $subsnode = navigation_node::create(get_string('managesubscriptions', 'tool_monitor'), $url,
                 navigation_node::TYPE_SETTING, null, 'monitor', new pix_icon('i/settings', ''));
 
index 27029aa..f9d58ff 100644 (file)
@@ -55,7 +55,7 @@ Feature: tool_monitor_subscriptions
 
   Scenario: Subscribe to a rule on course level
     Given I log in as "teacher1"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     And I set the field "Select a course" to "Course 1"
     When I follow "Subscribe to rule \"New rule course level\""
@@ -64,7 +64,7 @@ Feature: tool_monitor_subscriptions
 
   Scenario: Delete a subscription on course level
     Given I log in as "teacher1"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     And I set the field "Select a course" to "Course 1"
     And I follow "Subscribe to rule \"New rule course level\""
@@ -77,7 +77,7 @@ Feature: tool_monitor_subscriptions
 
   Scenario: Subscribe to a rule on site level
     Given I log in as "admin"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     And I set the field "Select a course" to "Acceptance test site"
     When I follow "Subscribe to rule \"New rule site level\""
@@ -86,7 +86,7 @@ Feature: tool_monitor_subscriptions
 
   Scenario: Delete a subscription on site level
     Given I log in as "admin"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     And I set the field "Select a course" to "Acceptance test site"
     And I follow "Subscribe to rule \"New rule site level\""
@@ -100,11 +100,11 @@ Feature: tool_monitor_subscriptions
 
   Scenario: Receiving notification on site level
     Given I log in as "admin"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Messaging"
     And I click on "input[name^=tool_monitor_notification_loggedin]" "css_element"
     And I press "Save changes"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     And I set the field "Select a course" to "Acceptance test site"
     And I follow "Subscribe to rule \"New rule site level\""
@@ -119,11 +119,11 @@ Feature: tool_monitor_subscriptions
 
   Scenario: Receiving notification on course level
     Given I log in as "teacher1"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Messaging"
     And I click on "input[name^=tool_monitor_notification_loggedin]" "css_element"
     And I press "Save changes"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     And I set the field "Select a course" to "Course 1"
     And I follow "Subscribe to rule \"New rule course level\""
@@ -139,7 +139,7 @@ Feature: tool_monitor_subscriptions
 
   Scenario: Navigating via quick link to rules
     Given I log in as "admin"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     When I follow "Event monitoring"
     And I set the field "Select a course" to "Course 1"
     Then I should see "You can manage rules from the Event monitoring rules page."
@@ -147,7 +147,7 @@ Feature: tool_monitor_subscriptions
     And I should see "You can subscribe to rules from the Event monitoring page."
     And I log out
     And I log in as "teacher1"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     And I set the field "Select a course" to "Course 1"
     And I should see "You can manage rules from the Event monitoring rules page."
@@ -159,7 +159,7 @@ Feature: tool_monitor_subscriptions
     And I should not see "You can manage rules from the Event monitoring rules page."
     And I log out
     And I log in as "teacher2"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     And I set the field "Select a course" to "Course 1"
     And I should not see "You can manage rules the from the Event monitoring rules page."
@@ -170,7 +170,7 @@ Feature: tool_monitor_subscriptions
       | tool/monitor:managerules | Prohibit |
     And I log out
     And I log in as "teacher1"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     When I set the field "Select a course" to "Course 1"
     Then I should see "You can manage rules from the Event monitoring rules page."
@@ -178,7 +178,7 @@ Feature: tool_monitor_subscriptions
     And I should not see "You can manage rules from the Event monitoring rules page."
     And I log out
     And I log in as "teacher2"
-    And I follow "My preferences" in the user menu
+    And I follow "Preferences" in the user menu
     And I follow "Event monitoring"
     And I set the field "Select a course" to "Course 1"
     And I should not see "You can manage rules from the Event monitoring rules page."
index 42c28c1..7647741 100644 (file)
@@ -26,6 +26,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2014111001;     // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014110400;     // Requires this Moodle version.
+$plugin->version   = 2015051100;     // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2015050500;     // Requires this Moodle version.
 $plugin->component = 'tool_monitor'; // Full name of the plugin (used for diagnostics).
index 0758b92..41a66bc 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_multilangupgrade'; // Full name of the plugin (used for diagnostics)
 
index 847bd6e..2134945 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_phpunit'; // Full name of the plugin (used for diagnostics)
 
index 028eee4..15afdbb 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_profiling'; // Full name of the plugin (used for diagnostics)
index 7bbf3dc..3f8b27e 100644 (file)
@@ -25,8 +25,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_replace'; // Full name of the plugin (used for diagnostics)
 
 $plugin->maturity  = MATURITY_ALPHA; // this version's maturity level
index 379ac32..86bcdc2 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;
-$plugin->requires  = 2014110400;
+$plugin->version   = 2015051100;
+$plugin->requires  = 2015050500;
 $plugin->component = 'tool_spamcleaner'; // Full name of the plugin (used for diagnostics)
 
index 1dcf9d5..963c798 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_task'; // Full name of the plugin (used for diagnostics)
 
index 3bc7ab4..a5bf8ab 100644 (file)
Binary files a/admin/tool/templatelibrary/amd/build/display.min.js and b/admin/tool/templatelibrary/amd/build/display.min.js differ
index a6c4a70..1585a18 100644 (file)
@@ -25,21 +25,20 @@ define(['jquery', 'core/ajax', 'core/log', 'core/notification', 'core/templates'
        function($, ajax, log, notification, templates, config, str) {
 
     /**
-     * Handle a template loaded response.
+     * Search through a template for a template docs comment.
      *
-     * @param {String} templateName The template name
-     * @param {String} source The template source
+     * @param {String} templateSource The raw template
+     * @param {String} templateName The name of the template used to search for docs tag
+     * @return {String|boolean} the correct comment or false
      */
-    var templateLoaded = function(templateName, source) {
-        str.get_string('templateselected', 'tool_templatelibrary', templateName).done(function(s) {
-            $('[data-region="displaytemplateheader"]').text(s);
-        }).fail(notification.exception);
+    var findDocsSection = function(templateSource, templateName) {
 
         // Find the comment section marked with @template component/template.
-        var marker = "@template " + templateName;
+        var marker = "@template " + templateName,
+            i = 0,
+            sections = [];
 
-        var sections = source.match(/{{!([\s\S]*?)}}/g);
-        var i = 0;
+        sections = templateSource.match(/{{!([\s\S]*?)}}/g);
 
         // If no sections match - show the entire file.
         if (sections !== null) {
@@ -50,11 +49,38 @@ define(['jquery', 'core/ajax', 'core/log', 'core/notification', 'core/templates'
                     // Remove {{! and }} from start and end.
                     var offset = start + marker.length + 1;
                     section = section.substr(offset, section.length - 2 - offset);
-                    source = section;
-                    break;
+                    return section;
                 }
             }
         }
+        // No matching comment.
+        return false;
+    };
+
+    /**
+     * Handle a template loaded response.
+     *
+     * @param {String} templateName The template name
+     * @param {String} source The template source
+     * @param {String} originalSource The original template source (not theme overridden)
+     */
+    var templateLoaded = function(templateName, source, originalSource) {
+        str.get_string('templateselected', 'tool_templatelibrary', templateName).done(function(s) {
+            $('[data-region="displaytemplateheader"]').text(s);
+        }).fail(notification.exception);
+
+        // Find the comment section marked with @template component/template.
+        var docs = findDocsSection(source, templateName);
+
+        if (docs === false) {
+            // Docs was not in theme template, try original.
+            docs = findDocsSection(originalSource, templateName);
+        }
+
+        // If we found a docs section, limit the template library to showing this section.
+        if (docs) {
+            source = docs;
+        }
 
         $('[data-region="displaytemplatesource"]').text(source);
 
@@ -86,6 +112,7 @@ define(['jquery', 'core/ajax', 'core/log', 'core/notification', 'core/templates'
 
     /**
      * Load the a template source from Moodle.
+     *
      * @param {String} templateName
      */
     var loadTemplate = function(templateName) {
@@ -93,16 +120,26 @@ define(['jquery', 'core/ajax', 'core/log', 'core/notification', 'core/templates'
         var component = parts.shift();
         var name = parts.shift();
 
-        ajax.call([{
+        var promises = ajax.call([{
             methodname: 'core_output_load_template',
             args:{
                     component: component,
                     template: name,
                     themename: config.theme
-            },
-            done: function(source) { templateLoaded(templateName, source); },
-            fail: notification.exception
+            }
+        }, {
+            methodname: 'tool_templatelibrary_load_canonical_template',
+            args:{
+                    component: component,
+                    template: name
+            }
         }]);
+
+        // When returns a new promise that is resolved when all the passed in promises are resolved.
+        // The arguments to the done become the values of each resolved promise.
+        $.when.apply($, promises)
+            .done( function(source, originalSource) { templateLoaded(templateName, source, originalSource); })
+            .fail(notification.exception);
     };
 
     // Add the event listeners.
index c818c86..2ef5d4c 100644 (file)
  */
 namespace tool_templatelibrary;
 
-use stdClass;
 use core_component;
+use core\output\mustache_template_finder;
 use coding_exception;
+use moodle_exception;
 use required_capability_exception;
+use stdClass;
 
 /**
  * API exposed by tool_templatelibrary
@@ -41,52 +43,98 @@ class api {
      *
      * @param string $component Filter the list to a single component.
      * @param string $search Search string to optionally filter the list of templates.
+     * @param string $themename The name of the current theme.
      * @return array[string] Where each template is in the form "component/templatename".
      */
-    public static function list_templates($component = '', $search = '') {
+    public static function list_templates($component = '', $search = '', $themename = '') {
         global $CFG;
 
         $templatedirs = array();
         $results = array();
 
-        if ($component != '') {
+        if ($component !== '') {
             // Just look at one component for templates.
-            $dir = core_component::get_component_directory($component);
-            if (!$dir) {
-                return $templatedirs;
-            }
+            $dirs = mustache_template_finder::get_template_directories_for_component($component, $themename);
 
-            $templatedirs[$component] = $dir . '/templates';
+            $templatedirs[$component] = $dirs;
         } else {
 
-            // Look at all the templates dirs for all installed plugins.
-            $dir = $CFG->libdir . '/templates';
-            if (!empty($dir) && is_dir($dir)) {
-                $templatedirs['core'] = $dir;
+            // Look at all the templates dirs for core.
+            $templatedirs['core'] = mustache_template_finder::get_template_directories_for_component('core', $themename);
+
+            // Look at all the templates dirs for subsystems.
+            $subsystems = core_component::get_core_subsystems();
+            foreach ($subsystems as $subsystem => $dir) {
+                $dir .= '/templates';
+                if (is_dir($dir)) {
+                    $dirs = mustache_template_finder::get_template_directories_for_component('core_' . $subsystem, $themename);
+                    $templatedirs['core_' . $subsystem] = $dirs;
+                }
             }
+
+            // Look at all the templates dirs for plugins.
             $plugintypes = core_component::get_plugin_types();
             foreach ($plugintypes as $type => $dir) {
                 $plugins = core_component::get_plugin_list_with_file($type, 'templates', false);
                 foreach ($plugins as $plugin => $dir) {
                     if (!empty($dir) && is_dir($dir)) {
-                        $templatedirs[$type . '_' . $plugin] = $dir;
+                        $pluginname = $type . '_' . $plugin;
+                        $dirs = mustache_template_finder::get_template_directories_for_component($pluginname, $themename);
+                        $templatedirs[$pluginname] = $dirs;
                     }
                 }
             }
         }
 
-        foreach ($templatedirs as $templatecomponent => $dir) {
-            // List it.
-            $files = glob($dir . '/*.mustache');
+        foreach ($templatedirs as $templatecomponent => $dirs) {
+            foreach ($dirs as $dir) {
+                // List it.
+                $files = glob($dir . '/*.mustache');
 
-            foreach ($files as $file) {
-                $templatename = basename($file, '.mustache');
-                if ($search == '' || strpos($templatename, $search) !== false) {
-                    $results[] = $templatecomponent . '/' . $templatename;
+                foreach ($files as $file) {
+                    $templatename = basename($file, '.mustache');
+                    if ($search == '' || strpos($templatename, $search) !== false) {
+                        $results[$templatecomponent . '/' . $templatename] = 1;
+                    }
                 }
             }
         }
+        $results = array_keys($results);
+        sort($results);
         return $results;
     }
 
+    /**
+     * Return a mustache template.
+     * Note - this function differs from the function core_output_load_template
+     * because it will never return a theme overridden version of a template.
+     *
+     * @param string $component The component that holds the template.
+     * @param string $template The name of the template.
+     * @return string the template
+     */
+    public static function load_canonical_template($component, $template) {
+        // Get the list of possible template directories.
+        $dirs = mustache_template_finder::get_template_directories_for_component($component);
+        $filename = false;
+
+        foreach ($dirs as $dir) {
+            // Skip theme dirs - we only want the original plugin/core template.
+            if (strpos($dir, "/theme/") === false) {
+                $candidate = $dir . $template . '.mustache';
+                if (file_exists($candidate)) {
+                    $filename = $candidate;
+                    break;
+                }
+            }
+        }
+        if ($filename === false) {
+            throw new moodle_exception('filenotfound', 'error');
+        }
+
+        $templatestr = file_get_contents($filename);
+        return $templatestr;
+    }
+
+
 }
index 630f040..100172b 100644 (file)
@@ -95,4 +95,55 @@ class external extends external_api {
     public static function list_templates_returns() {
         return new external_multiple_structure(new external_value(PARAM_RAW, 'The template name (format is component/templatename)'));
     }
+
+    /**
+     * Returns description of load_canonical_template() parameters.
+     *
+     * @return external_function_parameters
+     */
+    public static function load_canonical_template_parameters() {
+        return new external_function_parameters(
+                array('component' => new external_value(PARAM_COMPONENT, 'component containing the template'),
+                      'template' => new external_value(PARAM_ALPHANUMEXT, 'name of the template'))
+            );
+    }
+
+    /**
+     * Can this function be called directly from ajax?
+     *
+     * @return boolean
+     * @since Moodle 2.9
+     */
+    public static function load_canonical_template_is_allowed_from_ajax() {
+        return true;
+    }
+
+    /**
+     * Return a mustache template.
+     * Note - this function differs from the function core_output_load_template
+     * because it will never return a theme overridden version of a template.
+     *
+     * @param string $component The component that holds the template.
+     * @param string $template The name of the template.
+     * @return string the template
+     */
+    public static function load_canonical_template($component, $template) {
+        $params = self::validate_parameters(self::load_canonical_template_parameters(),
+                                            array('component' => $component,
+                                                  'template' => $template));
+
+        $component = $params['component'];
+        $template = $params['template'];
+
+        return api::load_canonical_template($component, $template);
+    }
+
+    /**
+     * Returns description of load_canonical_template() result value.
+     *
+     * @return external_description
+     */
+    public static function load_canonical_template_returns() {
+        return new external_value(PARAM_RAW, 'template');
+    }
 }
index 8377e8b..cecf9cb 100644 (file)
@@ -59,8 +59,8 @@ class list_templates_page implements renderable, templatable {
         foreach ($components as $component) {
             $info = new stdClass();
             $info->component = $component;
-            if ($component == 'core') {
-                $info->name = get_string('core_component', 'tool_templatelibrary');
+            if (strpos($component, 'core') === 0) {
+                $info->name = get_string('coresubsystem', 'tool_templatelibrary', $component);
             } else {
                 $info->name = $pluginmanager->plugin_name($component);
             }
index fdecc01..c1a9479 100644 (file)
@@ -33,5 +33,12 @@ $functions = array(
         'type'        => 'read',
         'capabilities'=> '',
     ),
+    'tool_templatelibrary_load_canonical_template' => array(
+        'classname'   => 'tool_templatelibrary\external',
+        'methodname'  => 'load_canonical_template',
+        'description' => 'Load a canonical template by name (not the theme overidden one).',
+        'type'        => 'read'
+    ),
+
 );
 
index 87b8ea0..8cc6736 100644 (file)
@@ -24,7 +24,7 @@
 
 $string['all'] = 'All components';
 $string['component'] = 'Component';
-$string['core_component'] = 'Moodle core';
+$string['coresubsystem'] = 'Subsystem ({$a})';
 $string['documentation'] = 'Documentation';
 $string['example'] = 'Example';
 $string['noresults'] = 'No results';
index db9d4df..9b09541 100644 (file)
@@ -65,5 +65,19 @@ class tool_templatelibrary_external_testcase extends externallib_advanced_testca
         $this->assertEquals($result[0], "tool_templatelibrary/list_templates_page");
     }
 
+    public function test_load_canonical_template() {
+        global $CFG;
 
+        $originaltheme = $CFG->theme;
+        // Change the theme to 'base' because it overrides these templates.
+        $CFG->theme = 'base';
+
+        $template = external::load_canonical_template('core', 'notification_problem');
+
+        // Only the base template should contain the docs.
+        $this->assertContains('@template core/notification_problem', $template);
+
+        // Restore the original theme.
+        $CFG->theme = $originaltheme;
+    }
 }
index 085d347..e97195e 100644 (file)
@@ -21,6 +21,6 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 defined('MOODLE_INTERNAL') || die();
-$plugin->version   = 2015021623; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014110400; // Requires this Moodle version.
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2015050500; // Requires this Moodle version.
 $plugin->component = 'tool_templatelibrary'; // Full name of the plugin (used for diagnostics).
index 97de3cf..19b39af 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_unsuproles'; // Full name of the plugin (used for diagnostics)
 
index 5d6d4c8..4e5c7c2 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;            // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014110400;            // Requires this Moodle version.
+$plugin->version   = 2015051100;            // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2015050500;            // Requires this Moodle version.
 $plugin->component = 'tool_uploadcourse';   // Full name of the plugin (used for diagnostics).
index 6ccf6d8..955b346 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_uploaduser'; // Full name of the plugin (used for diagnostics)
 
index aef0b02..c3f74db 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400; // Requires this Moodle version
+$plugin->version   = 2015051100; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500; // Requires this Moodle version
 $plugin->component = 'tool_xmldb'; // Full name of the plugin (used for diagnostics)
 
index f2c0008..d4e834f 100644 (file)
@@ -26,8 +26,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111001;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_cas';        // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('auth_ldap' => 2014110400);
+$plugin->dependencies = array('auth_ldap' => 2015050500);
index e83ace7..9e7cc6d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_db';         // Full name of the plugin (used for diagnostics)
index f244c45..3f037d7 100644 (file)
@@ -142,12 +142,12 @@ class auth_plugin_email extends auth_plugin_base {
         $user = get_complete_user_data('username', $username);
 
         if (!empty($user)) {
-            if ($user->confirmed) {
-                return AUTH_CONFIRM_ALREADY;
-
-            } else if ($user->auth != $this->authtype) {
+            if ($user->auth != $this->authtype) {
                 return AUTH_CONFIRM_ERROR;
 
+            } else if ($user->secret == $confirmsecret && $user->confirmed) {
+                return AUTH_CONFIRM_ALREADY;
+
             } else if ($user->secret == $confirmsecret) {   // They have provided the secret key to get in
                 $DB->set_field("user", "confirmed", 1, array("id"=>$user->id));
                 return AUTH_CONFIRM_OK;
index 80a0de7..c865be5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_email';      // Full name of the plugin (used for diagnostics)
index c389549..54bf166 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_fc';         // Full name of the plugin (used for diagnostics)
index 7c629cd..e4757b8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_imap';       // Full name of the plugin (used for diagnostics)
index 1da1b66..5e20dbf 100644 (file)
@@ -607,12 +607,12 @@ class auth_plugin_ldap extends auth_plugin_base {
         $user = get_complete_user_data('username', $username);
 
         if (!empty($user)) {
-            if ($user->confirmed) {
-                return AUTH_CONFIRM_ALREADY;
-
-            } else if ($user->auth != $this->authtype) {
+            if ($user->auth != $this->authtype) {
                 return AUTH_CONFIRM_ERROR;
 
+            } else if ($user->secret == $confirmsecret && $user->confirmed) {
+                return AUTH_CONFIRM_ALREADY;
+
             } else if ($user->secret == $confirmsecret) {   // They have provided the secret key to get in
                 if (!$this->user_activate($username)) {
                     return AUTH_CONFIRM_FAIL;
@@ -1653,7 +1653,8 @@ class auth_plugin_ldap extends auth_plugin_base {
                                       $_SERVER['HTTP_REFERER'] != $CFG->wwwroot &&
                                       $_SERVER['HTTP_REFERER'] != $CFG->wwwroot.'/' &&
                                       $_SERVER['HTTP_REFERER'] != $CFG->httpswwwroot.'/login/' &&
-                                      $_SERVER['HTTP_REFERER'] != $CFG->httpswwwroot.'/login/index.php')
+                                      $_SERVER['HTTP_REFERER'] != $CFG->httpswwwroot.'/login/index.php' &&
+                                      clean_param($_SERVER['HTTP_REFERER'], PARAM_LOCALURL) != '')
                     ? $_SERVER['HTTP_REFERER'] : NULL;
             }
 
index 76b267d..eaf3a4f 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111001;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_ldap';       // Full name of the plugin (used for diagnostics)
index 9a5e1fb..573d5ef 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_manual';     // Full name of the plugin (used for diagnostics)
index 2f6bbb2..2e9668b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_mnet';       // Full name of the plugin (used for diagnostics)
index a0bbd7a..813b5c8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_nntp';       // Full name of the plugin (used for diagnostics)
index 2d1824a..a7fdbb2 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_nologin';    // Full name of the plugin (used for diagnostics)
index 5e28e65..6113c59 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_none';       // Full name of the plugin (used for diagnostics)
index ef06fde..5f6b188 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_pam';       // Full name of the plugin (used for diagnostics)
index 25c1158..de2dc69 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_pop3';       // Full name of the plugin (used for diagnostics)
index 2b309e6..088074e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_radius';     // Full name of the plugin (used for diagnostics)
index c609a58..5b348a2 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_shibboleth'; // Full name of the plugin (used for diagnostics)
index 77c1f4c..3236b02 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'auth_webservice'; // Full name of the plugin (used for diagnostics)
index b7596e4..4a85804 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000;
-$plugin->requires = 2014110400;
+$plugin->version = 2015051100;
+$plugin->requires = 2015050500;
 $plugin->component = 'availability_completion';
index 7f785e1..ff4b70b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000;
-$plugin->requires = 2014110400;
+$plugin->version = 2015051100;
+$plugin->requires = 2015050500;
 $plugin->component = 'availability_date';
index ad2f3a3..089ae12 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000;
-$plugin->requires = 2014110400;
+$plugin->version = 2015051100;
+$plugin->requires = 2015050500;
 $plugin->component = 'availability_grade';
index 80706ed..1fed9e5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000;
-$plugin->requires = 2014110400;
+$plugin->version = 2015051100;
+$plugin->requires = 2015050500;
 $plugin->component = 'availability_group';
index 1020022..b9c68b9 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000;
-$plugin->requires = 2014110400;
+$plugin->version = 2015051100;
+$plugin->requires = 2015050500;
 $plugin->component = 'availability_grouping';
index dabf49e..d1a2a5e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version = 2014111000;
-$plugin->requires = 2014110400;
+$plugin->version = 2015051100;
+$plugin->requires = 2015050500;
 $plugin->component = 'availability_profile';
index 92c6f24..dfa28a5 100644 (file)
@@ -125,8 +125,16 @@ abstract class backup implements checksumable {
     const OPERATION_BACKUP  ='backup'; // We are performing one backup
     const OPERATION_RESTORE ='restore';// We are performing one restore
 
-    // Version (to keep CFG->backup_version (and release) updated automatically)
-    const VERSION = 2014111000;
+    // Version and release (to keep CFG->backup_version (and release) updated automatically).
+    /**
+     * Usually same than major release version, this is used to mark important
+     * point is backup when some behavior/approach channged, in order to allow
+     * conditional coding based on it.
+     */
+    const VERSION = 2015051100;
+    /**
+     * Usually same than major release zero version, mainly for informative/historic purposes.
+     */
     const RELEASE = '2.9';
 }
 
index c6bb7e8..c2222f0 100644 (file)
@@ -47,7 +47,7 @@ if (empty($CFG->badges_allowexternalbackpack)) {
 $PAGE->set_url(new moodle_url('/badges/mybackpack.php'));
 $PAGE->set_context($context);
 
-$title = get_string('mybackpack', 'badges');
+$title = get_string('backpackdetails', 'badges');
 $PAGE->set_title($title);
 $PAGE->set_heading(fullname($USER));
 $PAGE->set_pagelayout('mydashboard');
index e7c7361..e523b3e 100644 (file)
@@ -86,7 +86,7 @@ require_capability('moodle/badges:manageownbadges', $context);
 
 $PAGE->set_context($context);
 
-$title = get_string('mybadges', 'badges');
+$title = get_string('badges', 'badges');
 $PAGE->set_title($title);
 $PAGE->set_heading(fullname($USER));
 $PAGE->set_pagelayout('mydashboard');
index a6a5f59..de5c447 100644 (file)
@@ -91,7 +91,7 @@ if ($form->is_cancelled()) {
     $fordb->courseid = ($type == BADGE_TYPE_COURSE) ? $courseid : null;
     $fordb->messagesubject = get_string('messagesubject', 'badges');
     $fordb->message = get_string('messagebody', 'badges',
-            html_writer::link($CFG->wwwroot . '/badges/mybadges.php', get_string('mybadges', 'badges')));
+            html_writer::link($CFG->wwwroot . '/badges/mybadges.php', get_string('managebadges', 'badges')));
     $fordb->attachment = 1;
     $fordb->notification = BADGE_MESSAGE_NEVER;
     $fordb->status = BADGE_STATUS_INACTIVE;
index abfe6cd..67905f7 100644 (file)
@@ -31,12 +31,12 @@ Feature: Award badges
     And I press "Enable access"
     And I press "Continue"
     And I click on "Admin User" "link"
-    And I follow "My profile" in the open menu
+    And I follow "Profile" in the open menu
     And I follow "Edit profile"
     And I expand all fieldsets
     And I set the field "Phone" to "123456789"
     And I press "Update profile"
-    And I follow "My profile" in the user menu
+    And I follow "Profile" in the user menu
     Then I should see "Profile Badge"
     And I should not see "There are no badges available."
 
@@ -69,7 +69,7 @@ Feature: Award badges
     Then I should see "Recipients (2)"
     And I log out
     And I log in as "student"
-    And I follow "My profile" in the user menu
+    And I follow "Profile" in the user menu
     Then I should see "Site Badge"
 
   @javascript
@@ -112,7 +112,7 @@ Feature: Award badges
     Then I should see "Recipients (2)"
     And I log out
     And I log in as "student1"
-    And I follow "My profile" in the user menu
+    And I follow "Profile" in the user menu
     And I follow "Course 1"
     And I should see "Course Badge"
 
@@ -157,13 +157,13 @@ Feature: Award badges
     When I press "Continue"
     And I log out
     And I log in as "student1"
-    And I follow "My profile" in the user menu
+    And I follow "Profile" in the user menu
     And I follow "Course 1"
     Then I should not see "badges"
     And I am on homepage
     And I follow "Course 1"
     And I press "Mark as complete: Test assignment name"
-    And I follow "My profile" in the user menu
+    And I follow "Profile" in the user menu
     And I follow "Course 1"
     Then I should see "Course Badge"
 
@@ -214,7 +214,7 @@ Feature: Award badges
     When I press "Continue"
     And I log out
     And I log in as "student1"
-    And I follow "My profile" in the user menu
+    And I follow "Profile" in the user menu
     And I follow "Course 1"
     Then I should not see "badges"
     And I am on homepage
@@ -232,5 +232,5 @@ Feature: Award badges
     And I am on site homepage
     And I log out
     And I log in as "student1"
-    And I follow "My profile" in the user menu
+    And I follow "Profile" in the user menu
     Then I should see "Course Badge"
index 3b90b31..7c30935 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_activity_modules'; // Full name of the plugin (used for diagnostics)
index 9306404..d55ae9a 100644 (file)
@@ -32,7 +32,7 @@ Feature: The activity results block displays student scores
       | Description | Offline text |
       | assignsubmission_file_enabled | 0 |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "90.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "80.00" to the user "Student 2" for the grade item "Test assignment"
index b40962e..b744851 100644 (file)
@@ -32,7 +32,7 @@ Feature: The activity results block displays student scores
       | Description | Offline text |
       | assignsubmission_file_enabled | 0 |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "90.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "80.00" to the user "Student 2" for the grade item "Test assignment"
index 715db54..3939bd6 100644 (file)
@@ -54,7 +54,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -97,7 +97,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -144,7 +144,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -191,7 +191,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -245,7 +245,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -298,7 +298,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -351,7 +351,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -402,7 +402,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
index a78ce6c..845e8ab 100644 (file)
@@ -54,7 +54,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -97,7 +97,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -142,7 +142,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -187,7 +187,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -237,7 +237,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -286,7 +286,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -335,7 +335,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -382,7 +382,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
index b402741..c20061f 100644 (file)
@@ -32,7 +32,7 @@ Feature: The activity results block displays student scores
       | Description | Offline text |
       | assignsubmission_file_enabled | 0 |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "90.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "80.00" to the user "Student 2" for the grade item "Test assignment"
index 8027bcd..f18ccf8 100644 (file)
@@ -54,7 +54,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -97,7 +97,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -144,7 +144,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -191,7 +191,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -243,7 +243,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -294,7 +294,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -345,7 +345,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -395,7 +395,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
index 787f65f..e02d58d 100644 (file)
@@ -54,7 +54,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -97,7 +97,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -142,7 +142,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -187,7 +187,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -239,7 +239,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -286,7 +286,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -333,7 +333,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
@@ -379,7 +379,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I follow "Grades"
+    And I navigate to "Grades" node in "Course administration"
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
index 96b0dc8..f7b7ea3 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;               // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014110400;               // Requires this Moodle version.
+$plugin->version   = 2015051100;               // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2015050500;               // Requires this Moodle version.
 $plugin->component = 'block_activity_results'; // Full name of the plugin (used for diagnostics).
\ No newline at end of file
index bb3ea54..ebf8854 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_admin_bookmarks'; // Full name of the plugin (used for diagnostics)
index abcdc46..eee5e88 100644 (file)
@@ -15,7 +15,7 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * My latest badges block capabilities.
+ * Latest badges block capabilities.
  *
  * @package    block_badges
  * @copyright  2012 onwards Totara Learning Solutions Ltd {@link http://www.totaralms.com/}
index 09f3230..ba4adaf 100644 (file)
@@ -23,7 +23,7 @@
  * @author     Yuliya Bozhko <yuliya.bozhko@totaralms.com>
  */
 
-$string['pluginname'] = 'My latest badges';
+$string['pluginname'] = 'Latest badges';
 $string['numbadgestodisplay'] = 'Number of latest badges to display';
 $string['nothingtodisplay'] = 'You have no badges to display';
 $string['badges:addinstance'] = 'Add a new My latest badges block';
index d20af66..1560229 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires  = 2014110400;        // Requires this Moodle version.
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2015050500;        // Requires this Moodle version.
 $plugin->component = 'block_badges';
index 0c8e5e2..2abf7d5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_blog_menu'; // Full name of the plugin (used for diagnostics)
index 7179180..e6c271a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_blog_recent'; // Full name of the plugin (used for diagnostics)
index c9c49b7..50ee81a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_blog_tags'; // Full name of the plugin (used for diagnostics)
index 6c1475f..f2df6bd 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_calendar_month'; // Full name of the plugin (used for diagnostics)
index e04a6f2..1022fde 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_calendar_upcoming'; // Full name of the plugin (used for diagnostics)
index 4ddd58c..42a700d 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_comments'; // Full name of the plugin (used for diagnostics)
index e1139fc..fd90f23 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_community'; // Full name of the plugin (used for diagnostics)
index 2012c0e..36fb11a 100644 (file)
@@ -25,7 +25,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version      = 2014111000; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires     = 2014110400; // Requires this Moodle version.
+$plugin->version      = 2015051100; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires     = 2015050500; // Requires this Moodle version.
 $plugin->component    = 'block_completionstatus';
-$plugin->dependencies = array('report_completion' => 2014110400);
+$plugin->dependencies = array('report_completion' => 2015050500);
index 53e65ea..7341ab1 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_course_list'; // Full name of the plugin (used for diagnostics)
index 728b514..8dddd9e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_course_overview'; // Full name of the plugin (used for diagnostics)
index 22ad6b4..36b552e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_course_summary'; // Full name of the plugin (used for diagnostics)
index d01f743..0e0238c 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_feedback';  // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_feedback' => 2014110400);
+$plugin->dependencies = array('mod_feedback' => 2015050500);
index 294501d..431028e 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_glossary_random'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_glossary' => 2014110400);
+$plugin->dependencies = array('mod_glossary' => 2015050500);
index 2f0c52c..15a59ef 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_html';      // Full name of the plugin (used for diagnostics)
index 2b6342f..bfa1ae0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_login';     // Full name of the plugin (used for diagnostics)
index 57a761a..7e017d6 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_mentees';   // Full name of the plugin (used for diagnostics)
index e10006e..7ee02e0 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_messages';  // Full name of the plugin (used for diagnostics)
index cef8763..79d2a05 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_mnet_hosts'; // Full name of the plugin (used for diagnostics)
index 67368a6..ad7c8f7 100644 (file)
@@ -25,6 +25,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_myprofile'; // Full name of the plugin (used for diagnostics)
index 31323b8..2347259 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_navigation'; // Full name of the plugin (used for diagnostics)
index 836d126..2d58702 100644 (file)
Binary files a/blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation-debug.js and b/blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation-debug.js differ
index 6c14e8e..7c67d98 100644 (file)
Binary files a/blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation-min.js and b/blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation-min.js differ
index fc96726..b661bfd 100644 (file)
Binary files a/blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation.js and b/blocks/navigation/yui/build/moodle-block_navigation-navigation/moodle-block_navigation-navigation.js differ
index c4874a8..3678bff 100644 (file)
@@ -632,8 +632,7 @@ BRANCH.prototype = {
             id : this.get('key'),
             type : this.get('type'),
             sesskey : M.cfg.sesskey,
-            instance : this.get('tree').get('instance'),
-            returnurl : location.href
+            instance : this.get('tree').get('instance')
         };
 
         var ajaxfile = '/lib/ajax/getnavbranch.php';
index 14eadc6..9bb5170 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;         // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;         // Requires this Moodle version
+$plugin->version   = 2015051100;         // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;         // Requires this Moodle version
 $plugin->component = 'block_news_items'; // Full name of the plugin (used for diagnostics)
-$plugin->dependencies = array('mod_forum' => 2014110400);
+$plugin->dependencies = array('mod_forum' => 2015050500);
index 97cce20..701625e 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_online_users'; // Full name of the plugin (used for diagnostics)
index d8490b0..2689fde 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_participants'; // Full name of the plugin (used for diagnostics)
index 41e5c7d..fba8113 100644 (file)
@@ -63,7 +63,7 @@ class block_private_files extends block_base {
             if (has_capability('moodle/user:manageownfiles', $this->context)) {
                 $this->content->footer = html_writer::link(
                     new moodle_url('/user/files.php', array('returnurl' => $PAGE->url->out())),
-                    get_string('myfilesmanage') . '...');
+                    get_string('privatefilesmanage') . '...');
             }
 
         }
index c3c76f8..6adb60b 100644 (file)
@@ -22,8 +22,8 @@
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-$string['pluginname'] = 'My private files';
+$string['pluginname'] = 'Private files';
 $string['privatefiles'] = 'Private files';
 $string['private_files:addinstance'] = 'Add a new private files block';
-$string['private_files:myaddinstance'] = 'Add a new my private files block to Dashboard';
+$string['private_files:myaddinstance'] = 'Add a new private files block to Dashboard';
 
index cda89b5..d403fb5 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_private_files'; // Full name of the plugin (used for diagnostics)
index be5bfde..16c0205 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2015022200;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_quiz_results'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_quiz' => 2014110400);
+$plugin->dependencies = array('mod_quiz' => 2015050500);
index 25f293c..d05b021 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_recent_activity'; // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 24*3600;           // Cron interval 1 day.
\ No newline at end of file
index a3973de..d1979d3 100644 (file)
@@ -24,7 +24,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_rss_client'; // Full name of the plugin (used for diagnostics)
 $plugin->cron      = 300;               // Set min time between cron executions to 300 secs (5 mins)
index 7b5eb5a..0070205 100644 (file)
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_search_forums'; // Full name of the plugin (used for diagnostics)
 
-$plugin->dependencies = array('mod_forum' => 2014110400);
+$plugin->dependencies = array('mod_forum' => 2015050500);
index e4bd031..4b561b8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_section_links'; // Full name of the plugin (used for diagnostics)
index 0974152..39cffd3 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_selfcompletion'; // Full name of the plugin (used for diagnostics)
index a6e93ac..3758cc7 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_settings';  // Full name of the plugin (used for diagnostics)
index fe1c46a..35bc185 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_site_main_menu'; // Full name of the plugin (used for diagnostics)
index 18dcd12..e02790b 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_social_activities'; // Full name of the plugin (used for diagnostics)
index 5d52bcd..6f400a8 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_tag_flickr'; // Full name of the plugin (used for diagnostics)
index 0cef6d0..1a5c4de 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_tag_youtube'; // Full name of the plugin (used for diagnostics)
index a846a1e..0ad5c6a 100644 (file)
@@ -24,6 +24,6 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2014111000;        // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires  = 2014110400;        // Requires this Moodle version
+$plugin->version   = 2015051100;        // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires  = 2015050500;        // Requires this Moodle version
 $plugin->component = 'block_tags';      // Full name of the plugin (used for diagnostics)
index 35bab0c..1f5217a 100644 (file)
@@ -63,8 +63,10 @@ if ($entryid and !isset($userid)) {
     $userid = $entry->userid;
 }
 
-if (isset($userid)) {
+if (isset($userid) && !isset($courseid)) {
     $context = context_user::instance($userid);
+} else if (isset($courseid) && $courseid != SITEID) {
+    $context = context_course::instance($courseid);
 } else {
     $context = context_system::instance();
 }
@@ -241,11 +243,32 @@ if ($CFG->enablerssfeeds) {
         blog_rss_add_http_header($rsscontext, $rsstitle, $filtertype, $thingid, $tagid);
     }
 }
-if (isset($userid)) {
+
+$usernode = $PAGE->navigation->find('user'.$userid, null);
+if ($usernode && $courseid != SITEID) {
+    $courseblogsnode = $PAGE->navigation->find('courseblogs', null);
+    if ($courseblogsnode) {
+        $courseblogsnode->remove();
+    }
+    $blogurl = new moodle_url($PAGE->url);
+    $blognode = $usernode->add(get_string('blogscourse', 'blog'), $blogurl);
+    $blognode->make_active();
+}
+
+if ($courseid != SITEID) {
+    $PAGE->set_heading($course->fullname);
+    echo $OUTPUT->header();
+    if (!empty($user)) {
+        $headerinfo = array('heading' => fullname($user), 'user' => $user);
+        echo $OUTPUT->context_header($headerinfo, 2);
+    }
+} else if (isset($userid)) {
     $PAGE->set_heading(fullname($user));
+    echo $OUTPUT->header();
+} else if ($courseid == SITEID) {
+    echo $OUTPUT->header();
 }
 
-echo $OUTPUT->header();
 echo $OUTPUT->heading($blogheaders['heading'], 2);
 
 $bloglisting = new blog_listing($blogheaders['filters']);
index 930fd09..50eaa35 100644 (file)
@@ -420,7