Merge branch 'MDL-58985-master-bluebubbles' of git://github.com/mudrd8mz/moodle

This commit is contained in:
Eloy Lafuente (stronk7) 2017-06-21 00:45:07 +02:00
commit 46e9afecf3
4 changed files with 94 additions and 9 deletions

View File

@ -559,7 +559,7 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
// so there is definitely something to print.
$formattedinfo = \core_availability\info::format_info(
$section->availableinfo, $section->course);
$o .= $this->courserenderer->availability_info($formattedinfo);
$o .= $this->courserenderer->availability_info($formattedinfo, 'isrestricted');
}
} else if ($canviewhidden && !empty($CFG->enableavailability)) {
// Check if there is an availability restriction.
@ -568,7 +568,7 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
if ($fullinfo) {
$formattedinfo = \core_availability\info::format_info(
$fullinfo, $section->course);
$o .= $this->courserenderer->availability_info($formattedinfo);
$o .= $this->courserenderer->availability_info($formattedinfo, 'isrestricted isfullinfo');
}
}
return $o;

View File

@ -728,7 +728,24 @@ class core_course_renderer extends plugin_renderer_base {
* @return string
*/
public function availability_info($text, $additionalclasses = '') {
$data = ['text' => $text, 'classes' => $additionalclasses];
$additionalclasses = array_filter(explode(' ', $additionalclasses));
if (in_array('ishidden', $additionalclasses)) {
$data['ishidden'] = 1;
} else if (in_array('isstealth', $additionalclasses)) {
$data['isstealth'] = 1;
} else if (in_array('isrestricted', $additionalclasses)) {
$data['isrestricted'] = 1;
if (in_array('isfullinfo', $additionalclasses)) {
$data['isfullinfo'] = 1;
}
}
return $this->render_from_template('core/availability_info', $data);
}
@ -752,7 +769,7 @@ class core_course_renderer extends plugin_renderer_base {
if (!empty($mod->availableinfo)) {
$formattedinfo = \core_availability\info::format_info(
$mod->availableinfo, $mod->get_course());
$output = $this->availability_info($formattedinfo);
$output = $this->availability_info($formattedinfo, 'isrestricted');
}
return $output;
}
@ -775,9 +792,9 @@ class core_course_renderer extends plugin_renderer_base {
// Display information about conditional availability.
// Don't add availability information if user is not editing and activity is hidden.
if ($mod->visible || $this->page->user_is_editing()) {
$hidinfoclass = '';
$hidinfoclass = 'isrestricted isfullinfo';
if (!$mod->visible) {
$hidinfoclass = 'hide';
$hidinfoclass .= ' hide';
}
$ci = new \core_availability\info_module($mod);
$fullinfo = $ci->get_full_information();

View File

@ -15,13 +15,47 @@
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
Availability info.
@template core/availability_info
Renders the availability info on the course outline page.
Availability info can be displayed for activity modules or whole course
sections. Activity modules can be either hidden from students, or available
but not shown on course page (stealth), or the access can be restricted by
configured conditions. Sections can be hidden.
Classes required for JS:
* none
Data attributes required for JS:
* none
Context variables required for this template:
* classes String list of CSS classes for the wrapping element
* text HTML formatted text with the actual availability information
* ishidden Boolean flag indiciating that the item is hidden from students
* isstealth Boolean flag indicating that the item is in stealth mode
* isrestricted Boolean flag indicating that restricted access conditions apply
* isfullinfo Boolean flag indicating that the full list of restricted
access conditions is displayed (aka teacher's view).
Example context (json):
{ "classes": "", "text": "This activity is not available" }
{
"classes": "",
"text": "Not available unless: <ul><li>It is on or after <strong>8 June 2012</strong></li></ul>",
"ishidden": 0,
"isstealth": 0,
"isrestricted": 1,
"isfullinfo": 1
}
}}
{{#text}}
<div class="availabilityinfo {{classes}}">
{{^isrestricted}}
<span class="tag tag-info">{{{text}}}</span>
{{/isrestricted}}
{{#isrestricted}}
<span class="tag tag-info">{{#str}}restricted, core{{/str}}</span> {{{text}}}
{{/isrestricted}}
</div>
{{/text}}

View File

@ -15,13 +15,47 @@
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
Availability info.
@template core/availability_info
Renders the availability info on the course outline page.
Availability info can be displayed for activity modules or whole course
sections. Activity modules can be either hidden from students, or available
but not shown on course page (stealth), or the access can be restricted by
configured conditions. Sections can be hidden.
Classes required for JS:
* none
Data attributes required for JS:
* none
Context variables required for this template:
* classes String list of CSS classes for the wrapping element
* text HTML formatted text with the actual availability information
* ishidden Boolean flag indiciating that the item is hidden from students
* isstealth Boolean flag indicating that the item is in stealth mode
* isrestricted Boolean flag indicating that restricted access conditions apply
* isfullinfo Boolean flag indicating that the full list of restricted
access conditions is displayed (aka teacher's view).
Example context (json):
{ "classes": "", "text": "This activity is not available" }
{
"classes": "",
"text": "Not available unless: <ul><li>It is on or after <strong>8 June 2012</strong></li></ul>",
"ishidden": 0,
"isstealth": 0,
"isrestricted": 1,
"isfullinfo": 1
}
}}
{{#text}}
<div class="availabilityinfo {{classes}}">
{{^isrestricted}}
<span class="label label-info">{{{text}}}</span>
{{/isrestricted}}
{{#isrestricted}}
<span class="label label-info">{{#str}}restricted, core{{/str}}</span> {{{text}}}
{{/isrestricted}}
</div>
{{/text}}