MDL-61138 javascript: add paged content widget
[moodle.git] / lib / templates / paged_content.mustache
blob47b5fbb4f5afc173630d6314d51641c2ff335e49
1 {{!
2     This file is part of Moodle - http://moodle.org/
4     Moodle is free software: you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation, either version 3 of the License, or
7     (at your option) any later version.
9     Moodle is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
14     You should have received a copy of the GNU General Public License
15     along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 {{!
18     @template core/paged_content
20     This template renders each of the content regions for a paginated
21     content section.
23     Example context (json):
24     {
25         "pagingbar": {
26             "itemsperpage": 1,
27             "previous": true,
28             "next": true,
29             "first": true,
30             "last": true,
31             "pages": [
32                 {
33                     "page": "1",
34                     "active": true
35                 },
36                 {
37                     "url": "#",
38                     "page": "2"
39                 }
40             ]
41         },
42         "pages": [
43             {
44                 "active": true,
45                 "page": 1,
46                 "content": "<p>Some page 1 content</p>"
47             },
48             {
49                 "page": 2,
50                 "content": "<p>Some page 2 content</p>"
51             }
52         ]
53     }
55 <div id="paged-content-container-{{uniqid}}" data-region="paged-content-container">
56     {{#pagingbar}}
57         {{> core/paged_content_paging_bar }}
58     {{/pagingbar}}
59     {{#pagingdropdown}}
60         {{> core/paged_content_paging_dropdown }}
61     {{/pagingdropdown}}
62     {{> core/paged_content_pages }}
63 </div>
64 {{^skipjs}}
65 {{#js}}
66 require(
68     'jquery',
69     'core/paged_content_pages'
71 function(
72     $,
73     PagedContent
74 ) {
75     var container = $("#paged-content-container-{{uniqid}}");
76     var pagingContent = container.find(PagedContent.rootSelector);
78     PagedContent.init(pagingContent, container);
79 });
80 {{/js}}
81 {{/skipjs}}