auth/fc/fcFPP.php
enrol/lti/ims-blti/
filter/algebra/AlgParser.pm
-filter/mathjaxloader/contrib/a11y/
filter/tex/mimetex.*
lib/editor/atto/yui/src/rangy/js/*.*
lib/editor/tinymce/plugins/pdw/tinymce/
{
+ 'plugins': [
+ 'promise',
+ ],
'env': {
'browser': true,
'amd': true
'unicode-bom': 'error',
'wrap-regex': 'off',
+ // === Promises ===
+ 'promise/always-return': 'warn',
+ 'promise/no-return-wrap': 'warn',
+ 'promise/param-names': 'warn',
+ 'promise/catch-or-return': ['warn', {terminationMethod: ['catch', 'fail']}],
+ 'promise/no-native': 'warn',
+ 'promise/no-promise-in-callback': 'warn',
+ 'promise/no-callback-in-promise': 'warn',
+ 'promise/avoid-new': 'warn',
+
// === Deprecations ===
"no-restricted-properties": ['warn', {
'object': 'M',
'property': 'str',
'message': 'Use AMD module "core/str" or M.util.get_string()'
}],
+
}
}
auth/fc/fcFPP.php
enrol/lti/ims-blti/
filter/algebra/AlgParser.pm
-filter/mathjaxloader/contrib/a11y/
filter/tex/mimetex.*
lib/editor/atto/yui/src/rangy/js/*.*
lib/editor/tinymce/plugins/pdw/tinymce/
opts: {stdio: 'inherit', env: process.env}
}, function(error, result, code) {
// Propagate the exit code.
- done(code);
+ done(code === 0);
});
};
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
+ <PHP_EXTENSION name="fileinfo" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
// indirectly calls the protected init() method is good here.
core_component::get_core_subsystems();
+if (is_major_upgrade_required() && isloggedin()) {
+ // A major upgrade is required.
+ // Terminate the session and redirect back here before anything DB-related happens.
+ redirect_if_major_upgrade_required();
+}
+
require_once($CFG->libdir.'/adminlib.php'); // various admin-only functions
require_once($CFG->libdir.'/upgradelib.php'); // general upgrade/install related functions
$mform->addElement('checkbox', 'badges', '',
" " . get_string('badgesnumber', 'hub', $badges));
$mform->setDefault('badges', $badgesnumber != -1);
- $mform->setType('resources', PARAM_INT);
+ $mform->setType('badges', PARAM_INT);
$mform->addElement('checkbox', 'issuedbadges', '',
" " . get_string('issuedbadgesnumber', 'hub', $issuedbadges));
$mform->setDefault('issuedbadges', $issuedbadgesnumber != -1);
- $mform->setType('resources', PARAM_INT);
+ $mform->setType('issuedbadges', PARAM_INT);
$mform->addElement('checkbox', 'participantnumberaverage', '',
" " . get_string('participantnumberaverage', 'hub', $participantnumberaverage));
// Convert plugins.
$ADMIN->add('modules', new admin_category('fileconverterplugins', new lang_string('type_fileconverter_plural', 'plugin')));
- $temp = new admin_settingpage('managefileconverterplugins', new lang_string('type_fileconverter', 'plugin'));
+ $temp = new admin_settingpage('managefileconverterplugins', new lang_string('type_fileconvertermanage', 'plugin'));
$temp->add(new admin_setting_manage_fileconverter_plugins());
$ADMIN->add('fileconverterplugins', $temp);
--- /dev/null
+{{!
+ This file is part of Moodle - http://moodle.org/
+
+ Moodle is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Moodle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+}}
+{{!
+ @template core_admin/setting_filetypes
+
+ Renders the admin_setting_filetypes setting element.
+
+ Context variables required for this template:
+ * id - element id
+ * name - form element name
+ * value - element value
+ * descriptions - data for the core_form/filetypes-descriptions template
+
+ Example context (json):
+ {
+ "id": "test0",
+ "name": "test",
+ "value": ".jpg,.gif",
+ "descriptions": {
+ "hasdescriptions": true,
+ "descriptions": [
+ {
+ "description": "Image (JPEG)",
+ "extensions": ".jpeg .jpe .jpg"
+ },
+ {
+ "description": "Image (GIF)",
+ "extensions": ".gif"
+ }
+ ]
+ }
+ }
+}}
+<div class="form-text defaultsnext">
+ <input type="text" name="{{name}}" value="{{value}}" size="30" id="{{id}}" class="text-ltr">
+ <span data-filetypesbrowser="{{id}}"></span>
+ <div data-filetypesdescriptions="{{id}}">{{#descriptions}}{{>core_form/filetypes-descriptions}}{{/descriptions}}</div>
+</div>
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500;
-$plugin->requires = 2016112900;
+$plugin->version = 2017051500;
+$plugin->requires = 2017050500;
$plugin->component = 'tool_assignmentupgrade';
-$plugin->dependencies = array('mod_assign' => 2016112900);
+$plugin->dependencies = array('mod_assign' => 2017050500);
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500;
-$plugin->requires = 2016112900;
+$plugin->version = 2017051500;
+$plugin->requires = 2017050500;
$plugin->component = 'tool_availabilityconditions';
# Select (multi-select) - Checking "I set the field".
And I navigate to "Edit settings" in current page administration
And I expand all fieldsets
- # Checkbox - Checking "I set the field".
- And I set the field "Display description on course page" to "1"
- # Checkbox - Checking "I set the following fields to these values:".
+ # Checkbox - Checking "I set the field" and "The field matches value" ticked.
+ And I set the field "Force format" to "1"
+ And I press "Save and return to course"
+ And I should see "Test this one"
+ And I follow "Test this one"
+ And I navigate to "Edit settings" in current page administration
+ And I expand all fieldsets
+ And the field "Force format" matches value "1"
+ And the field "Force format" does not match value ""
+ # Checkbox - Checking "I set the field" and "The field matches value" unticked.
+ And I set the field "Force format" to ""
+ And I press "Save and return to course"
+ And I should see "Test this one"
+ And I follow "Test this one"
+ And I navigate to "Edit settings" in current page administration
+ And I expand all fieldsets
+ And the field "Force format" matches value ""
+ And the field "Force format" does not match value "1"
+ # Checkbox - Checking "I set the following fields to these values:" and "The following fields match these values" ticked.
And I set the following fields to these values:
| Force format | 1 |
- # Checkbox - Checking "the field matches value" and "the field does not match value".
- And the field "Display description on course page" matches value "1"
- And the field "Display description on course page" does not match value ""
And I press "Save and return to course"
And I should see "Test this one"
And I follow "Test this one"
And I navigate to "Edit settings" in current page administration
- # Checkbox - Checking "the field matches value" and "the following fields match these values".
+ And I expand all fieldsets
And the following fields match these values:
- | Display description on course page | 1 |
- | Default format | HTML |
- | Wiki name | Test this one |
- And the field "Force format" matches value "1"
+ | Force format | 1 |
+ And the following fields do not match these values:
+ | Force format | |
+ # Checkbox - Checking "I set the following fields to these values:" and "The following fields match these values" unticked.
+ And I set the following fields to these values:
+ | Force format | |
+ And I press "Save and return to course"
+ And I should see "Test this one"
+ And I follow "Test this one"
+ And I navigate to "Edit settings" in current page administration
+ And I expand all fieldsets
+ And the following fields match these values:
+ | Force format | |
+ And the following fields do not match these values:
+ | Force format | 1 |
# Select (simple) - Checking "I set the following fields to these values:".
And I set the following fields to these values:
| Default format | NWiki |
- | Display description on course page | |
- # Checkbox - Checking "I set the field" to uncheck.
- And I set the field "Force format" to ""
# Select (simple) - Checking "I set the field".
And I set the field "Group mode" to "Separate groups"
And I press "Save and display"
And the following fields match these values:
| Default format | NWiki |
| Group mode | Separate groups |
- | Display description on course page | |
- | Force format | |
# All fields - Checking "the following fields do not match these values".
And the following fields do not match these values:
| Wiki name | Test this one baby |
| Default format | HTML |
- | Force format | 1 |
And I press "Cancel"
And I am on "Course 1" course homepage
# Radio - Checking "I set the field" and "the field matches value".
And the "available[day]" "field" should be enabled
And the field "deadline[enabled]" matches value "1"
And I press "Cancel"
+ # Advanced checkbox requires real browser to allow uncheck to work. MDL-58681. MDL-55386.
+ # Advanced checkbox - Checking "I set the field" and "The field matches value" ticked.
+ And I am on "Course 1" course homepage
+ And I follow "Test this one"
+ And I navigate to "Edit settings" in current page administration
+ And I set the field "Display description on course page" to "1"
+ And I press "Save and return to course"
+ And I should see "Test this one"
+ And I follow "Test this one"
+ And I navigate to "Edit settings" in current page administration
+ And the field "Display description on course page" matches value "1"
+ And the field "Display description on course page" does not match value ""
+ # Advanced checkbox - Checking "I set the field" and "The field matches value" unticked.
+ And I set the field "Display description on course page" to ""
+ And I press "Save and return to course"
+ And I should see "Test this one"
+ And I follow "Test this one"
+ And I navigate to "Edit settings" in current page administration
+ And the field "Display description on course page" matches value ""
+ And the field "Display description on course page" does not match value "1"
+ # Advanced checkbox - Checking "I set the following fields to these values:" and "The following fields match these values" ticked.
+ And I set the following fields to these values:
+ | Display description on course page | 1 |
+ And I press "Save and return to course"
+ And I should see "Test this one"
+ And I follow "Test this one"
+ And I navigate to "Edit settings" in current page administration
+ And the following fields match these values:
+ | Display description on course page | 1 |
+ And the following fields do not match these values:
+ | Display description on course page | |
+ # Advanced checkbox - Checking "I set the following fields to these values:" and "The following fields match these values" unticked.
+ And I set the following fields to these values:
+ | Display description on course page | |
+ And I press "Save and return to course"
+ And I should see "Test this one"
+ And I follow "Test this one"
+ And I navigate to "Edit settings" in current page administration
+ And the following fields match these values:
+ | Display description on course page | |
+ And the following fields do not match these values:
+ | Display description on course page | 1 |
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires = 2016112900; // Requires this Moodle version
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires = 2017050500; // Requires this Moodle version
$plugin->component = 'tool_behat'; // Full name of the plugin (used for diagnostics)
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2016112900; // Requires this Moodle version.
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->component = 'tool_capability'; // Full name of the plugin (used for diagnostics).
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2016112900; // Requires this Moodle version.
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->component = 'tool_cohortroles'; // Full name of the plugin (used for diagnostics).
$plugin->dependencies = array(
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
+ // Automatically generated Moodle v3.3.0 release upgrade line.
+ // Put any upgrade step following this.
+
return true;
}
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500;
-$plugin->requires = 2016112900;
+$plugin->version = 2017051500;
+$plugin->requires = 2017050500;
$plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2016112900; // Requires this Moodle version.
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->component = 'tool_dbtransfer'; // Full name of the plugin (used for diagnostics).
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500;
-$plugin->requires = 2016112900;
+$plugin->version = 2017051500;
+$plugin->requires = 2017050500;
$plugin->component = 'tool_filetypes';
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500;
-$plugin->requires = 2016112900;
+$plugin->version = 2017051500;
+$plugin->requires = 2017050500;
$plugin->component = 'tool_generator';
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires = 2016112900; // Requires this Moodle version
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires = 2017050500; // 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
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires = 2016112900; // Requires this Moodle version
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires = 2017050500; // Requires this Moodle version
$plugin->component = 'tool_innodb'; // Full name of the plugin (used for diagnostics)
defined('MOODLE_INTERNAL') || die();
$plugin->component = 'tool_installaddon';
-$plugin->version = 2016120500;
-$plugin->requires = 2016112900;
+$plugin->version = 2017051500;
+$plugin->requires = 2017050500;
$plugin->maturity = MATURITY_STABLE;
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX)
-$plugin->requires = 2016112900; // Requires this Moodle version
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires = 2017050500; // Requires this Moodle version
$plugin->component = 'tool_langimport'; // Full name of the plugin (used for diagnostics)
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
+ // Automatically generated Moodle v3.3.0 release upgrade line.
+ // Put any upgrade step following this.
+
return true;
}
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
+ // Automatically generated Moodle v3.3.0 release upgrade line.
+ // Put any upgrade step following this.
+
return true;
}
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2016112900; // Requires this Moodle version.
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->component = 'logstore_database'; // Full name of the plugin (used for diagnostics).
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2016112900; // Requires this Moodle version.
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->component = 'logstore_legacy'; // Full name of the plugin (used for diagnostics).
// Automatically generated Moodle v3.2.0 release upgrade line.
// Put any upgrade step following this.
+ // Automatically generated Moodle v3.3.0 release upgrade line.
+ // Put any upgrade step following this.
+
return true;
}
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2016112900; // Requires this Moodle version.
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->component = 'logstore_standard'; // Full name of the plugin (used for diagnostics).
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2016120500; // The current plugin version (Date: YYYYMMDDXX).
-$plugin->requires = 2016112900; // Requires this Moodle version.
+$plugin->version = 2017051500; // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->component = 'tool_log'; // Full name of the plugin (used for diagnostics).
html,
self._afterRender.bind(self)
);
+ return;
}).fail(Notification.exception);
};
return self._render().then(function(html) {
self._find('[data-region="action-selector"]').replaceWith(html);
self._afterRender();
+ return;
});
};
pagerender = 'tool_lp/plan_page';
pageregion = 'plan-page';
}
-
ajax.call(requests)[requests.length - 1].then(function(context) {
- return templates.render(pagerender, context).done(function(html, js) {
- $('[data-region="' + pageregion + '"]').replaceWith(html);
- templates.runTemplateJS(js);
- });
- }, notification.exception);
+ return templates.render(pagerender, context);
+ }).then(function(html, js) {
+ $('[data-region="' + pageregion + '"]').replaceWith(html);
+ templates.runTemplateJS(js);
+ return;
+ }).catch(notification.exception);
});
}
// We're done, let's trigger a change.
self._templateLoaded = true;
self._triggerChange();
+ return;
});
};
var promises = ajax.call(calls);
promises[calls.length - 1].then(function(context) {
- return templates.render('tool_lp/related_competencies', context).done(function(html, js) {
- $('[data-region="relatedcompetencies"]').replaceWith(html);
- templates.runTemplateJS(js);
- updatedRelatedCompetencies();
- });
- }, notification.exception);
+ return templates.render('tool_lp/related_competencies', context);
+ }).then(function(html, js) {
+ $('[data-region="relatedcompetencies"]').replaceWith(html);
+ templates.runTemplateJS(js);
+ updatedRelatedCompetencies();
+ return;
+ }).catch(notification.exception);
});
}
relatedTarget.ruleconfig = config.ruleconfig;
renderCompetencySummary(relatedTarget);
}
- }, notification.exception);
+ return;
+ }).catch(notification.exception);
};
/**
type: strs[1]
};
}
- }).then(function() {
- return templates.render('tool_lp/competency_summary', context).then(function(html) {
- $('[data-region="competencyinfo"]').html(html);
- $('[data-action="deleterelation"]').on('click', deleteRelatedHandler);
- });
- }).then(function() {
+ return context;
+ }).then(function(context) {
+ return templates.render('tool_lp/competency_summary', context);
+ }).then(function(html) {
+ $('[data-region="competencyinfo"]').html(html);
+ $('[data-action="deleterelation"]').on('click', deleteRelatedHandler);
return templates.render('tool_lp/loading', {});
}).then(function(html, js) {
templates.replaceNodeContents('[data-region="relatedcompetencies"]', html, js);
- }).done(function() {
- ajax.call([{
+ return ajax.call([{
methodname: 'tool_lp_data_for_related_competencies_section',
- args: {competencyid: competency.id},
- done: function(context) {
- return templates.render('tool_lp/related_competencies', context).done(function(html, js) {
- $('[data-region="relatedcompetencies"]').replaceWith(html);
- templates.runTemplateJS(js);
- updatedRelatedCompetencies();
- });
- }
- }]);
- }).fail(notification.exception);
+ args: {competencyid: competency.id}
+ }])[0];
+ }).then(function(context) {
+ return templates.render('tool_lp/related_competencies', context);
+ }).then(function(html, js) {
+ $('[data-region="relatedcompetencies"]').replaceWith(html);
+ templates.runTemplateJS(js);
+ updatedRelatedCompetencies();
+ return;
+ }).catch(notification.exception);
};
/**
// Log Competency viewed event.
triggerCompetencyViewedEvent(competency);
}
-
strSelectedTaxonomy(level).then(function(str) {
selectedTitle.text(str);
- });
+ return;
+ }).catch(notification.exception);
strAddTaxonomy(sublevel).then(function(str) {
btn.show()
.find('[data-region="term"]')
.text(str);
- });
+ return;
+ }).catch(notification.exception);
// We handled this event so consume it.
evt.preventDefault();
if (!self._singleFramework) {
self._find('[data-action="chooseframework"]').change(function(e) {
self._frameworkId = $(e.target).val();
- self._loadCompetencies().then(self._refresh.bind(self));
+ self._loadCompetencies().then(self._refresh.bind(self)).catch(Notification.exception);
});
}
*/
Picker.prototype.display = function() {
var self = this;
- return self._render().then(function(html) {
- return Str.get_string('competencypicker', 'tool_lp').then(function(title) {
- self._popup = new Dialogue(
- title,
- html,
- self._afterRender.bind(self)
- );
- });
- }).fail(Notification.exception);
+ return $.when(Str.get_string('competencypicker', 'tool_lp'), self._render())
+ .then(function(title, render) {
+ self._popup = new Dialogue(
+ title,
+ render[0],
+ self._afterRender.bind(self)
+ );
+ return;
+ }).catch(Notification.exception);
};
/**
return self._render().then(function(html) {
self._find('[data-region="competencylinktree"]').replaceWith(html);
self._afterRender();
+ return;
});
};
if (!self._singlePlan) {
self._find('[data-action="chooseplan"]').change(function(e) {
self._planId = $(e.target).val();
- self._loadCompetencies().then(self._refresh.bind(self));
+ self._loadCompetencies().then(self._refresh.bind(self))
+ .catch(Notification.exception);
});
}
};