Merge branch 'MDL-62992-36' of git://github.com/lameze/moodle into MOODLE_36_STABLE

This commit is contained in:
Eloy Lafuente (stronk7)
2019-03-27 23:06:15 +01:00
6 changed files with 34 additions and 23 deletions
+15 -12
View File
@@ -37,7 +37,7 @@ require_once($CFG->libdir.'/formslib.php');
class quiz_add_random_form extends moodleform {
protected function definition() {
global $OUTPUT, $PAGE;
global $OUTPUT, $PAGE, $CFG;
$mform =& $this->_form;
$mform->setDisableShortforms();
@@ -58,17 +58,19 @@ class quiz_add_random_form extends moodleform {
$tops = question_get_top_categories_for_contexts(array_column($contexts->all(), 'id'));
$mform->hideIf('includesubcategories', 'category', 'in', $tops);
$tags = core_tag_tag::get_tags_by_area_in_contexts('core_question', 'question', $usablecontexts);
$tagstrings = array();
foreach ($tags as $tag) {
$tagstrings["{$tag->id},{$tag->name}"] = $tag->name;
if ($CFG->usetags) {
$tagstrings = array();
$tags = core_tag_tag::get_tags_by_area_in_contexts('core_question', 'question', $usablecontexts);
foreach ($tags as $tag) {
$tagstrings["{$tag->id},{$tag->name}"] = $tag->name;
}
$options = array(
'multiple' => true,
'noselectionstring' => get_string('anytags', 'quiz'),
);
$mform->addElement('autocomplete', 'fromtags', get_string('randomquestiontags', 'mod_quiz'), $tagstrings, $options);
$mform->addHelpButton('fromtags', 'randomquestiontags', 'mod_quiz');
}
$options = array(
'multiple' => true,
'noselectionstring' => get_string('anytags', 'quiz'),
);
$mform->addElement('autocomplete', 'fromtags', get_string('randomquestiontags', 'mod_quiz'), $tagstrings, $options);
$mform->addHelpButton('fromtags', 'randomquestiontags', 'mod_quiz');
$mform->addElement('select', 'numbertoadd', get_string('randomnumber', 'quiz'),
$this->get_number_of_questions_to_add_choices());
@@ -107,7 +109,8 @@ class quiz_add_random_form extends moodleform {
$PAGE->requires->js_call_amd('mod_quiz/add_random_form', 'init', [
$mform->getAttribute('id'),
$contexts->lowest()->id,
$tops
$tops,
$CFG->usetags
]);
}
+1 -1
View File
@@ -1 +1 @@
define(["jquery","mod_quiz/random_question_form_preview"],function(a,b){var c=2e3,d={PREVIEW_CONTAINER:'[data-region="random-question-preview-container"]',CATEGORY_FORM_ELEMENT:'[name="category"]',SUBCATEGORY_FORM_ELEMENT:'[name="includesubcategories"]',TAG_IDS_FORM_ELEMENT:'[name="fromtags[]"]'},e=function(a){return a.find(d.CATEGORY_FORM_ELEMENT).val()},f=function(a){var b=e(a),c=b.split(",");return c[0]},g=function(a,b){var c=e(a);return b.indexOf(c)>-1},h=function(a,b){return!!g(a,b)||a.find(d.SUBCATEGORY_FORM_ELEMENT).is(":checked")},i=function(a){var b=a.find(d.TAG_IDS_FORM_ELEMENT).val();return b.map(function(a){var b=a.split(",");return b[0]})},j=function(a,c,e){var g=a.find(d.PREVIEW_CONTAINER);b.reload(g,f(a),h(a,e),i(a),c)},k=function(a){return a.closest(d.CATEGORY_FORM_ELEMENT).length>0||(a.closest(d.SUBCATEGORY_FORM_ELEMENT).length>0||a.closest(d.TAG_IDS_FORM_ELEMENT).length>0)},l=function(d,e,f){var g=null;d.on("change",function(h){k(a(h.target))&&(b.showLoadingIcon(d),g&&clearTimeout(g),g=setTimeout(function(){j(d,e,f)},c))})},m=function(b,c,d){var e=a("#"+b);j(e,c,d),l(e,c,d)};return{init:m}});
define(["jquery","mod_quiz/random_question_form_preview"],function(a,b){var c=2e3,d={PREVIEW_CONTAINER:'[data-region="random-question-preview-container"]',CATEGORY_FORM_ELEMENT:'[name="category"]',SUBCATEGORY_FORM_ELEMENT:'[name="includesubcategories"]',TAG_IDS_FORM_ELEMENT:'[name="fromtags[]"]'},e=function(a){return a.find(d.CATEGORY_FORM_ELEMENT).val()},f=function(a){var b=e(a),c=b.split(",");return c[0]},g=function(a,b){var c=e(a);return b.indexOf(c)>-1},h=function(a,b){return!!g(a,b)||a.find(d.SUBCATEGORY_FORM_ELEMENT).is(":checked")},i=function(a){var b=a.find(d.TAG_IDS_FORM_ELEMENT).val();return b.map(function(a){var b=a.split(",");return b[0]})},j=function(a,c,e){var g=a.find(d.PREVIEW_CONTAINER);b.reload(g,f(a),h(a,e),i(a),c)},k=function(a){return a.closest(d.CATEGORY_FORM_ELEMENT).length>0||(a.closest(d.SUBCATEGORY_FORM_ELEMENT).length>0||a.closest(d.TAG_IDS_FORM_ELEMENT).length>0)},l=function(d,e,f){var g=null;d.on("change",function(h){k(a(h.target))&&(b.showLoadingIcon(d),g&&clearTimeout(g),g=setTimeout(function(){j(d,e,f)},c))})},m=function(b,c,d,e){if(1==e){var f=a("#"+b);j(f,c,d,e),l(f,c,d,e)}};return{init:m}});
+7 -5
View File
@@ -201,12 +201,14 @@ define(
* @param {jquery} formId The form element id.
* @param {int} contextId The current context id.
* @param {string[]} topCategories List of top category values (matching the select box values)
* @param {bool} isTagsEnabled Whether tags feature is enabled or not.
*/
var init = function(formId, contextId, topCategories) {
var form = $('#' + formId);
reloadQuestionPreview(form, contextId, topCategories);
addEventListeners(form, contextId, topCategories);
var init = function(formId, contextId, topCategories, isTagsEnabled) {
if (isTagsEnabled == true) {
var form = $('#' + formId);
reloadQuestionPreview(form, contextId, topCategories, isTagsEnabled);
addEventListeners(form, contextId, topCategories, isTagsEnabled);
}
};
return {
@@ -36,5 +36,5 @@
<div class="m-t-2 position-relative" data-region="random-question-preview-container">
<div data-region="question-count-container"></div>
<div data-region="question-list-container"></div>
{{< core/overlay_loading }}{{$hiddenclass}}{{/hiddenclass}}{{/ core/overlay_loading }}
{{> core/overlay_loading}}
</div>
+9 -3
View File
@@ -462,7 +462,7 @@ class view {
*/
public function display($tabname, $page, $perpage, $cat,
$recurse, $showhidden, $showquestiontext, $tagids = []) {
global $PAGE;
global $PAGE, $CFG;
if ($this->process_actions_needing_ui()) {
return;
@@ -473,7 +473,14 @@ class view {
$thiscontext = $this->get_most_specific_context();
// Category selection form.
$this->display_question_bank_header();
array_unshift($this->searchconditions, new \core_question\bank\search\tag_condition([$catcontext, $thiscontext], $tagids));
// Display tag filter if usetags setting is enabled.
if ($CFG->usetags) {
array_unshift($this->searchconditions,
new \core_question\bank\search\tag_condition([$catcontext, $thiscontext], $tagids));
$PAGE->requires->js_call_amd('core_question/edit_tags', 'init', ['#questionscontainer']);
}
array_unshift($this->searchconditions, new \core_question\bank\search\hidden_condition(!$showhidden));
array_unshift($this->searchconditions, new \core_question\bank\search\category_condition(
$cat, $recurse, $editcontexts, $this->baseurl, $this->course));
@@ -485,7 +492,6 @@ class view {
null, $page, $perpage, $showhidden, $showquestiontext,
$this->contexts->having_cap('moodle/question:add'));
$PAGE->requires->js_call_amd('core_question/edit_tags', 'init', ['#questionscontainer']);
}
protected function print_choose_category_message($categoryandcontext) {
@@ -36,5 +36,5 @@
<div class="m-t-2" data-region="random-question-preview-container" style="position:relative">
<div data-region="question-count-container"></div>
<div data-region="question-list-container"></div>
{{< core/overlay_loading }}{{$hiddenclass}}{{/hiddenclass}}{{/ core/overlay_loading }}
{{> core/overlay_loading}}
</div>