Commit e15aaed7 authored by Eloy Lafuente (stronk7)'s avatar Eloy Lafuente (stronk7)

Merge branch 'MDL-70408-master' of git://github.com/sarjona/moodle

parents b3164b32 064e1a7e
......@@ -97,6 +97,7 @@ $string['myattempts'] = 'My attempts';
$string['no_compatible_track'] = 'This interaction ({$a}) does not provide tracking information or the tracking
provided is not compatible with the current activity version.';
$string['noparticipants'] = 'No participants to display';
$string['opencontentbank'] = '<a href="{$a}" target="_blank">Access the H5P file in the content bank</a> (opens in a new window).';
$string['outcome'] = 'Outcome';
$string['package'] = 'Package file';
$string['package_help'] = 'The package file is a h5p file containing H5P interactive content.';
......
......@@ -76,11 +76,33 @@ class mod_h5pactivity_mod_form extends moodleform_mod {
// Add a link to the Content Bank if the user can access.
$course = $this->get_course();
$context = context_course::instance($course->id);
if (has_capability('moodle/contentbank:access', $context)) {
$url = new moodle_url('/contentbank/index.php', ['contextid' => $context->id]);
$msg = get_string('usecontentbank', 'mod_h5pactivity', $url->out());
$msg .= ' '.$OUTPUT->help_icon('contentbank', 'mod_h5pactivity');
$coursecontext = context_course::instance($course->id);
if (has_capability('moodle/contentbank:access', $coursecontext)) {
$msg = null;
$context = $this->get_context();
if ($context instanceof \context_module) {
// This is an existing activity. If the H5P file it's a referenced file from the content bank, a link for
// displaying this specific content will be used instead of the generic link to the main page of the content bank.
$fs = get_file_storage();
$files = $fs->get_area_files($context->id, 'mod_h5pactivity', 'package', 0, 'sortorder, itemid, filepath,
filename', false);
$file = reset($files);
if ($file && $file->get_reference() != null) {
$referencedfile = \repository::get_moodle_file($file->get_reference());
if ($referencedfile->get_component() == 'contentbank') {
// If the attached file is a referencedfile in the content bank, display a link to open this content.
$url = new moodle_url('/contentbank/view.php', ['id' => $referencedfile->get_itemid()]);
$msg = get_string('opencontentbank', 'mod_h5pactivity', $url->out());
$msg .= ' '.$OUTPUT->help_icon('contentbank', 'mod_h5pactivity');
}
}
}
if (!isset($msg)) {
$url = new moodle_url('/contentbank/index.php', ['contextid' => $coursecontext->id]);
$msg = get_string('usecontentbank', 'mod_h5pactivity', $url->out());
$msg .= ' '.$OUTPUT->help_icon('contentbank', 'mod_h5pactivity');
}
$mform->addElement('static', 'contentbank', '', $msg);
}
......
@mod @mod_h5pactivity @core_h5p @_file_upload @_switch_iframe @current
@mod @mod_h5pactivity @core_h5p @_file_upload @_switch_iframe
Feature: Content bank link in the activity settings form
In order to have direct access to the Content bank
As a teacher
......@@ -14,6 +14,9 @@ Feature: Content bank link in the activity settings form
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
And the following "contentbank content" exist:
| contextlevel | reference | contenttype | user | contentname | filepath |
| Course | C1 | contenttype_h5p | admin | filltheblanks.h5p | /h5p/tests/fixtures/filltheblanks.h5p |
@javascript
Scenario: The content bank link should go to the course Content bank
......@@ -33,3 +36,71 @@ Feature: Content bank link in the activity settings form
And I am on "Course 1" course homepage with editing mode on
And I add a "H5P" to section "1"
Then I should not see "Use the content Bank (opens in new window) to manage your H5P files"
@javascript
Scenario: A different message should be displayed if the package file is a link to the content bank file
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And I add a "H5P" to section "1"
And I set the following fields to these values:
| Name | H5P package added with link to content bank |
| Description | Description |
And I click on "Add..." "button" in the "Package file" "form_row"
And I select "Content bank" repository in file picker
And I click on "filltheblanks.h5p" "file" in repository content area
And I click on "Link to the file" "radio"
And I click on "Select this file" "button"
And I click on "Save and display" "button"
And I switch to "h5p-player" class iframe
And I switch to "h5p-iframe" class iframe
And I should see "Of which countries are Berlin, Washington, Beijing, Canberra and Brasilia the capitals?"
And I switch to the main frame
When I navigate to "Edit settings" in current page administration
Then I should not see "Use the content Bank (opens in new window) to manage your H5P files"
And I should see "Access the H5P file in the content bank (opens in a new window)."
And I follow "Access the H5P file in the content bank"
@javascript
Scenario: The content bank link should go to the course Content bank if the file is a copy to a content bank file
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And I add a "H5P" to section "1"
And I set the following fields to these values:
| Name | H5P package added with link to content bank |
| Description | Description |
And I click on "Add..." "button" in the "Package file" "form_row"
And I select "Content bank" repository in file picker
And I click on "filltheblanks.h5p" "file" in repository content area
And I click on "Make a copy of the file" "radio"
And I click on "Select this file" "button"
And I click on "Save and display" "button"
And I switch to "h5p-player" class iframe
And I switch to "h5p-iframe" class iframe
And I should see "Of which countries are Berlin,"
And I switch to the main frame
When I navigate to "Edit settings" in current page administration
Then I should see "Use the content bank (opens in new window) to manage your H5P files"
@javascript
Scenario: The content bank link should go to the course Content bank if the file is referenced but to another repository
Given I log in as "admin"
And I follow "Manage private files..."
And I upload "h5p/tests/fixtures/guess-the-answer.h5p" file to "Files" filemanager
And I click on "Save changes" "button"
And I am on "Course 1" course homepage with editing mode on
And I add a "H5P" to section "1"
And I set the following fields to these values:
| Name | H5P package added with link to content bank |
| Description | Description |
And I click on "Add..." "button" in the "Package file" "form_row"
And I select "Private files" repository in file picker
And I click on "guess-the-answer.h5p" "file" in repository content area
And I click on "Link to the file" "radio"
And I click on "Select this file" "button"
And I click on "Save and display" "button"
And I switch to "h5p-player" class iframe
And I switch to "h5p-iframe" class iframe
And I should see "Which fruit is this?"
And I switch to the main frame
When I navigate to "Edit settings" in current page administration
Then I should see "Use the content bank (opens in new window) to manage your H5P files"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment