mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
MDL-73774 timeline: Prevent ID duplication
This commit is contained in:
parent
5500d143f4
commit
e29cbbc715
4 changed files with 17 additions and 6 deletions
|
@ -59,6 +59,12 @@ class main implements renderable, templatable {
|
|||
*/
|
||||
public $limit;
|
||||
|
||||
/** @var int Number of timeline instances displayed. */
|
||||
protected static $timelineinstances = 0;
|
||||
|
||||
/** @var int This timeline instance's ID. */
|
||||
protected $timelineinstanceid = 0;
|
||||
|
||||
/**
|
||||
* main constructor.
|
||||
*
|
||||
|
@ -70,6 +76,10 @@ class main implements renderable, templatable {
|
|||
$this->order = $order ? $order : BLOCK_TIMELINE_SORT_BY_DATES;
|
||||
$this->filter = $filter ? $filter : BLOCK_TIMELINE_FILTER_BY_7_DAYS;
|
||||
$this->limit = $limit ? $limit : BLOCK_TIMELINE_ACTIVITIES_LIMIT_DEFAULT;
|
||||
// Increment the timeline instances count on initialisation.
|
||||
self::$timelineinstances++;
|
||||
// Assign this instance an ID based on the latest timeline instances count.
|
||||
$this->timelineinstanceid = self::$timelineinstances;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -160,6 +170,7 @@ class main implements renderable, templatable {
|
|||
$filters = $this->get_filters_as_booleans();
|
||||
$offsets = $this->get_filter_offsets();
|
||||
$contextvariables = [
|
||||
'timelineinstanceid' => $this->timelineinstanceid,
|
||||
'midnight' => usergetmidnight(time()),
|
||||
'coursepages' => [$formattedcourses],
|
||||
'urls' => [
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
{}
|
||||
}}
|
||||
|
||||
<div id="block-timeline-{{uniqid}}" class="block-timeline" data-region="timeline">
|
||||
<div id="block-timeline-{{uniqid}}-{{timelineinstanceid}}" class="block-timeline" data-region="timeline">
|
||||
<div class="p-0 px-2">
|
||||
<div class="row no-gutters">
|
||||
<div class="mr-2 mb-1">
|
||||
|
@ -52,7 +52,7 @@ function(
|
|||
$,
|
||||
Main
|
||||
) {
|
||||
var root = $('#block-timeline-{{uniqid}}');
|
||||
var root = $('#block-timeline-{{uniqid}}-{{timelineinstanceid}}');
|
||||
Main.init(root);
|
||||
});
|
||||
{{/js}}
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<div id="menusortby" role="menu" class="dropdown-menu dropdown-menu-right list-group hidden" data-show-active-item data-skip-active-class="true">
|
||||
<a
|
||||
class="dropdown-item"
|
||||
href="#view_dates_{{uniqid}}"
|
||||
href="#view_dates_{{uniqid}}-{{timelineinstanceid}}"
|
||||
data-toggle="tab"
|
||||
data-filtername="sortbydates"
|
||||
{{#sorttimelinedates}}aria-current="true"{{/sorttimelinedates}}
|
||||
|
@ -45,7 +45,7 @@
|
|||
</a>
|
||||
<a
|
||||
class="dropdown-item"
|
||||
href="#view_courses_{{uniqid}}"
|
||||
href="#view_courses_{{uniqid}}-{{timelineinstanceid}}"
|
||||
data-toggle="tab"
|
||||
data-filtername="sortbycourses"
|
||||
{{#sorttimelinecourses}}aria-current="true"{{/sorttimelinecourses}}
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
}}
|
||||
<div data-region="timeline-view">
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane {{#sorttimelinedates}}active show{{/sorttimelinedates}} fade" data-limit="{{limit}}" data-region="view-dates" id="view_dates_{{uniqid}}">
|
||||
<div class="tab-pane {{#sorttimelinedates}}active show{{/sorttimelinedates}} fade" data-limit="{{limit}}" data-region="view-dates" id="view_dates_{{uniqid}}-{{timelineinstanceid}}">
|
||||
{{> block_timeline/view-dates }}
|
||||
</div>
|
||||
<div
|
||||
|
@ -63,7 +63,7 @@
|
|||
data-days-offset="{{daysoffset}}"
|
||||
data-no-events-url="{{urls.noevents}}"
|
||||
{{#overdue}}data-filter-overdue="{{overdue}}"{{/overdue}}
|
||||
id="view_courses_{{uniqid}}"
|
||||
id="view_courses_{{uniqid}}-{{timelineinstanceid}}"
|
||||
>
|
||||
{{> block_timeline/view-courses }}
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue