mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +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;
|
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.
|
* main constructor.
|
||||||
*
|
*
|
||||||
|
@ -70,6 +76,10 @@ class main implements renderable, templatable {
|
||||||
$this->order = $order ? $order : BLOCK_TIMELINE_SORT_BY_DATES;
|
$this->order = $order ? $order : BLOCK_TIMELINE_SORT_BY_DATES;
|
||||||
$this->filter = $filter ? $filter : BLOCK_TIMELINE_FILTER_BY_7_DAYS;
|
$this->filter = $filter ? $filter : BLOCK_TIMELINE_FILTER_BY_7_DAYS;
|
||||||
$this->limit = $limit ? $limit : BLOCK_TIMELINE_ACTIVITIES_LIMIT_DEFAULT;
|
$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();
|
$filters = $this->get_filters_as_booleans();
|
||||||
$offsets = $this->get_filter_offsets();
|
$offsets = $this->get_filter_offsets();
|
||||||
$contextvariables = [
|
$contextvariables = [
|
||||||
|
'timelineinstanceid' => $this->timelineinstanceid,
|
||||||
'midnight' => usergetmidnight(time()),
|
'midnight' => usergetmidnight(time()),
|
||||||
'coursepages' => [$formattedcourses],
|
'coursepages' => [$formattedcourses],
|
||||||
'urls' => [
|
'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="p-0 px-2">
|
||||||
<div class="row no-gutters">
|
<div class="row no-gutters">
|
||||||
<div class="mr-2 mb-1">
|
<div class="mr-2 mb-1">
|
||||||
|
@ -52,7 +52,7 @@ function(
|
||||||
$,
|
$,
|
||||||
Main
|
Main
|
||||||
) {
|
) {
|
||||||
var root = $('#block-timeline-{{uniqid}}');
|
var root = $('#block-timeline-{{uniqid}}-{{timelineinstanceid}}');
|
||||||
Main.init(root);
|
Main.init(root);
|
||||||
});
|
});
|
||||||
{{/js}}
|
{{/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">
|
<div id="menusortby" role="menu" class="dropdown-menu dropdown-menu-right list-group hidden" data-show-active-item data-skip-active-class="true">
|
||||||
<a
|
<a
|
||||||
class="dropdown-item"
|
class="dropdown-item"
|
||||||
href="#view_dates_{{uniqid}}"
|
href="#view_dates_{{uniqid}}-{{timelineinstanceid}}"
|
||||||
data-toggle="tab"
|
data-toggle="tab"
|
||||||
data-filtername="sortbydates"
|
data-filtername="sortbydates"
|
||||||
{{#sorttimelinedates}}aria-current="true"{{/sorttimelinedates}}
|
{{#sorttimelinedates}}aria-current="true"{{/sorttimelinedates}}
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a
|
||||||
class="dropdown-item"
|
class="dropdown-item"
|
||||||
href="#view_courses_{{uniqid}}"
|
href="#view_courses_{{uniqid}}-{{timelineinstanceid}}"
|
||||||
data-toggle="tab"
|
data-toggle="tab"
|
||||||
data-filtername="sortbycourses"
|
data-filtername="sortbycourses"
|
||||||
{{#sorttimelinecourses}}aria-current="true"{{/sorttimelinecourses}}
|
{{#sorttimelinecourses}}aria-current="true"{{/sorttimelinecourses}}
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
}}
|
}}
|
||||||
<div data-region="timeline-view">
|
<div data-region="timeline-view">
|
||||||
<div class="tab-content">
|
<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 }}
|
{{> block_timeline/view-dates }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
data-days-offset="{{daysoffset}}"
|
data-days-offset="{{daysoffset}}"
|
||||||
data-no-events-url="{{urls.noevents}}"
|
data-no-events-url="{{urls.noevents}}"
|
||||||
{{#overdue}}data-filter-overdue="{{overdue}}"{{/overdue}}
|
{{#overdue}}data-filter-overdue="{{overdue}}"{{/overdue}}
|
||||||
id="view_courses_{{uniqid}}"
|
id="view_courses_{{uniqid}}-{{timelineinstanceid}}"
|
||||||
>
|
>
|
||||||
{{> block_timeline/view-courses }}
|
{{> block_timeline/view-courses }}
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue