Proyectos de Subversion Moodle

Rev

Rev 244 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
{{!
2
    This file is part of Moodle - http://moodle.org/
3
 
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.
8
 
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.
13
 
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/>.
16
}}
17
{{!
18
    Context variables required for this template:
19
    * sitename - The name of the site
20
    * output - The core renderer for the page
21
    * bodyattributes - attributes for the body tag as a string of html attributes
22
    * sidepreblocks - HTML for the blocks
23
    * hasblocks - true if there are blocks on this page
24
    * navdraweropen - true if the nav drawer should be open on page load
25
    * regionmainsettingsmenu - HTML for the region main settings menu
26
    * hasregionmainsettingsmenu - There is a region main settings menu on this page.
27
 
28
    Example context (json):
29
    {
30
        "sitename": "Moodle",
31
        "output": {
32
            "doctype": "<!DOCTYPE html>",
33
            "page_title": "Test page",
34
            "favicon": "favicon.ico",
35
            "main_content": "<h1>Headings make html validators happier</h1>"
36
         },
37
        "bodyattributes":"",
38
        "sidepreblocks": "<h2>Blocks html goes here</h2>",
39
        "hasblocks":true,
40
        "navdraweropen":true,
41
        "regionmainsettingsmenu": "",
42
        "hasregionmainsettingsmenu": false
43
    }
44
}}
45
{{> theme_universe/head }}
46
 
47
<body {{{ bodyattributes }}}>
48
 
49
    {{> core/local/toast/wrapper}}
50
 
51
    <div id="page-wrapper" class="d-print-block {{#output.courseheadermenu}}rui--course-with-nav{{/output.courseheadermenu}} {{^output.courseheadermenu}}rui--course-witout-nav{{/output.courseheadermenu}}">
52
 
53
        {{{ output.standard_top_of_body_html }}}
54
        {{^hidecourseindexnav}}
55
        {{#courseindex}}
56
            {{< theme_universe/drawer }}
57
                {{$id}}universe-drawers-courseindex{{/id}}
58
                {{$drawerheadercontent}}
59
                    {{> theme_universe/courseindexdrawercontrols}}
60
                {{/drawerheadercontent}}
61
                {{$drawerclasses}}drawer drawer-left {{#courseindexopen}}show{{/courseindexopen}}{{/drawerclasses}}
62
                {{$drawercontent}}
63
                    {{{ output.display_course_progress }}}
64
                    {{{courseindex}}}
65
                {{/drawercontent}}
66
                {{$drawerpreferencename}}drawer-open-index{{/drawerpreferencename}}
67
                {{$drawerstate}}show-drawer-left{{/drawerstate}}
68
                {{$tooltipplacement}}right{{/tooltipplacement}}
69
                {{$drawercloseonresize}}1{{/drawercloseonresize}}
70
                {{$closebuttontext}}{{#str}}closecourseindex, core{{/str}}{{/closebuttontext}}
71
            {{/ theme_universe/drawer}}
72
        {{/courseindex}}
73
        {{/hidecourseindexnav}}
74
 
75
        {{> theme_universe/navbar }}
76
        <div id="page" data-region="mainpage" data-usertour="scroller" class="drawers {{#topbarcustomhtml}}topbar--ext{{/topbarcustomhtml}} {{#courseindexopen}}show-drawer-left{{/courseindexopen}} {{#blockdraweropen}}show-hidden-drawer show-drawer-right{{/blockdraweropen}} {{#blockdraweropen}}show-drawer-right{{/blockdraweropen}}  drag-container">
77
 
78
            <div id="topofscroll" class="main-inner">
79
 
80
                <div class="drawer-toggles d-flex">
81
                    {{#courseindex}}
82
                        <div class="drawer-toggler drawer-left-toggle open-nav d-print-none">
83
                            <button
84
                                class="btn-drawer btn-drawer--left drawertoggle"
85
                                data-toggler="drawers"
86
                                data-action="toggle"
87
                                data-target="universe-drawers-courseindex"
88
                                data-toggle="tooltip"
89
                                data-placement="right"
90
                                title="{{#str}}opendrawerindex, core{{/str}}"
91
                            >
92
                                <span class="sr-only">{{#str}}opendrawerindex, core{{/str}}</span>
93
                                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 5.99519C2 5.44556 2.44556 5 2.99519 5H11.0048C11.5544 5 12 5.44556 12 5.99519C12 6.54482 11.5544 6.99039 11.0048 6.99039H2.99519C2.44556 6.99039 2 6.54482 2 5.99519Z" fill="currentColor" /><path d="M2 11.9998C2 11.4501 2.44556 11.0046 2.99519 11.0046H21.0048C21.5544 11.0046 22 11.4501 22 11.9998C22 12.5494 21.5544 12.9949 21.0048 12.9949H2.99519C2.44556 12.9949 2 12.5494 2 11.9998Z" fill="currentColor" /><path d="M2.99519 17.0096C2.44556 17.0096 2 17.4552 2 18.0048C2 18.5544 2.44556 19 2.99519 19H15.0048C15.5544 19 16 18.5544 16 18.0048C16 17.4552 15.5544 17.0096 15.0048 17.0096H2.99519Z" fill="currentColor" /></svg>
94
                            </button>
95
                        </div>
96
                    {{/courseindex}}
97
                </div>
98
 
99
                <div id="page-content" class="page-content wrapper-fw">
100
 
101
                    <div id="region-main-box" class="region-main-wrapper">
102
 
103
                        <section id="region-main" aria-label="{{#str}}content{{/str}}">
104
                            <div class="rui-blocks-wrapper wrapper--with-margin wrapper-xl">
105
 
106
                                <div class="wrapper-course wrapper-page">
107
                                    {{{ output.breadcrumbs }}}
108
                                    {{{coursepageinformationbanners}}}
109
 
110
                                    {{#secondarymoremenu}}
111
                                    <div class="secondary-navigation d-print-none">
112
                                        {{> core/course-moremenu}}
113
                                    </div>
114
                                    {{/secondarymoremenu}}
115
 
116
                                    {{#courseimagecontent}}
117
                                        {{#output.course_hero}}
118
                                            <div class="rui-course-cover {{#courseimagefw}}rui-course-cover--fw{{/courseimagefw}} {{coursecoverstyle}} mb-3 d-print-none" style="background-image: url('{{{ output.course_hero }}}');" alt="{{#str}}courseoverviewfiles, moodle {{/str}}"></div>
119
                                        {{/output.course_hero}}
120
                                    {{/courseimagecontent}}
121
 
122
                                    {{#hasregionmainsettingsmenu}}
123
                                        <div class="region_main_settings_menu_proxy"></div>
124
                                    {{/hasregionmainsettingsmenu}}
125
                                    {{{ output.course_content_header }}}
126
                                    {{#headercontent}}
127
                                        {{> core/activity_header }}
128
                                    {{/headercontent}}
129
                                    {{#overflow}}
130
                                        <div class="container-fluid tertiary-navigation">
131
                                            <div class="navitem">
132
                                                {{> core/url_select}}
133
                                            </div>
134
                                        </div>
135
                                    {{/overflow}}
136
 
137
                                    {{#coursetablayout}}
138
                                        <div class="rui-course-nav-wrapper">
139
                                            <div class="moremenu navigation">
140
                                                <ul class="rui-course-nav nav nav-tabs" id="courseTab" role="tablist">
141
                                                    <li class="nav-item" role="presentation">
142
                                                        <a href="#courseTabContent"
143
                                                            class="nav-link {{^istab2active}}active active_tree_node{{/istab2active}}" id="course-tab1" data-toggle="tab" data-target="#tab1" type="button" role="tab" aria-controls="tab1" {{^istab2active}}aria-selected="true"{{/istab2active}} {{#istab2active}}aria-selected="false"{{/istab2active}}>
144
                                                            {{{titlecoursetab1}}}
145
                                                        </a>
146
                                                    </li>
147
                                                    <li class="nav-item" role="presentation">
148
                                                        <a href="#tab2" class="nav-link {{#istab2active}}active active_tree_node{{/istab2active}}" id="course-tab2" data-toggle="tab" data-target="#tab2" type="button" role="tab" aria-controls="tab2" {{#istab2active}}aria-selected="true"{{/istab2active}} {{^istab2active}}aria-selected="false"{{/istab2active}}>
149
                                                            {{{titlecoursetab2}}}
150
                                                        </a>
151
                                                    </li>
152
                                                    <li class="nav-item" role="presentation">
153
                                                        <a href="#tab3" class="nav-link" id="course-tab3" data-toggle="tab" data-target="#tab3" type="button" role="tab" aria-controls="tab3" aria-selected="false">
154
                                                            {{{titlecoursetab3}}}
155
                                                        </a>
156
                                                    </li>
157
                                                    <li class="nav-item" role="presentation">
158
                                                        <a href="#tab4" class="nav-link" id="course-tab4" data-toggle="tab" data-target="#tab4" type="button" role="tab" aria-controls="tab4" aria-selected="false">
159
                                                            {{{titlecoursetab4}}}
160
                                                        </a>
161
                                                    </li>
162
                                                    <li class="nav-item" role="presentation">
163
                                                        <a href="#tab5" class="nav-link" id="course-tab5" data-toggle="tab" data-target="#tab5" type="button" role="tab" aria-controls="tab5" aria-selected="false">
164
                                                            {{{titlecoursetab5}}}
165
                                                        </a>
166
                                                    </li>
167
                                                    <li role="none" class="dropdown dropdownmoremenu morebutton d-none" data-region="morebutton">
168
                                                        <a class="btn btn-icon btn--more nav-link p-0 {{#isactive}}active{{/isactive}}" href="#" id="moremenu-dropdown-topbar" role="{{#istablist}}tab{{/istablist}}{{^istablist}}menuitem{{/istablist}}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" tabindex="-1">
169
                                                            <svg width="24" height="24" fill="none" viewBox="0 0 24 24">
170
                                                                <path fill="currentColor" d="M13 12C13 12.5523 12.5523 13 12 13C11.4477 13 11 12.5523 11 12C11 11.4477 11.4477 11 12 11C12.5523 11 13 11.4477 13 12Z"></path>
171
                                                                <path fill="currentColor" d="M13 8C13 8.55228 12.5523 9 12 9C11.4477 9 11 8.55228 11 8C11 7.44772 11.4477 7 12 7C12.5523 7 13 7.44772 13 8Z"></path>
172
                                                                <path fill="currentColor" d="M13 16C13 16.5523 12.5523 17 12 17C11.4477 17 11 16.5523 11 16C11 15.4477 11.4477 15 12 15C12.5523 15 13 15.4477 13 16Z"></path>
173
                                                            </svg>
174
                                                        </a>
175
                                                        <ul class="dropdown-menu dropdown-menu-left" data-region="moredropdown" aria-labelledby="moremenu-dropdown-topbar" role="menu">
176
                                                        </ul>
177
                                                    </li>
178
                                                </ul>
179
                                            </div>
180
                                        </div>
181
                                        {{#js}}
182
                                            require(['core/moremenu'], function(moremenu) {
183
                                            moremenu(document.querySelector('#courseTab'));
184
                                            });
185
                                        {{/js}}
186
 
187
                                        {{#hasctopbl}}
188
                                        <div class="wrapper-fw">
189
                                            <section id="ctopbl" data-region="tmpl-course-blocks" class="rui-blocks-area">
190
                                                {{{ ctopbl }}}
191
                                            </section>
192
                                        </div>
193
                                        {{/hasctopbl}}
194
 
195
                                        <div class="tab-content" id="courseTabContent">
196
                                            <div class="tab-pane fade {{^istab2active}}show active{{/istab2active}}" id="tab1" role="tabpanel" aria-labelledby="course-tab1">
197
                                                {{#ipcourseimage}}
198
                                                    {{#output.course_hero}}
199
                                                        <div class="rui-course-cover {{#courseimagefw}}rui-course-cover--fw{{/courseimagefw}} {{coursecoverstyle}} mb-3" style="background-image: url('{{{ output.course_hero }}}');"></div>
200
                                                    {{/output.course_hero}}
201
                                                {{/ipcourseimage}}
202
                                                {{{ output.full_header }}}
203
                                                {{{ coursetab-a }}}
204
                                                {{{ coursetab1content }}}
205
 
206
                                            </div>
207
                                            <div class="tab-pane fade {{#istab2active}}show active{{/istab2active}}"" id="tab2" role="tabpanel" aria-labelledby="course-tab2">
208
                                                <div class="wrapper-fw">
209
 
210
                                                    {{#hascstopbl}}
211
                                                        <section id="cstopbl" data-region="tmpl-course-blocks" class="rui-blocks-area wrapper-xl">
212
                                                            {{{ cstopbl }}}
213
                                                        </section>
214
                                                    {{/hascstopbl}}
215
 
216
                                                    {{{ coursetab2content }}}
217
 
218
                                                    {{{ output.main_content }}}
219
                                                    {{{ coursetab-b }}}
220
 
221
                                                    {{#hascsbottombl}}
222
                                                        <section id="csbottombl" data-region="tmpl-course-blocks" class="rui-blocks-area wrapper-xl">
223
                                                            {{{ csbottombl }}}
224
                                                        </section>
225
                                                    {{/hascsbottombl}}
226
                                                </div>
227
                                            </div>
228
                                            <div class="tab-pane fade" id="tab3" role="tabpanel" aria-labelledby="course-tab3">
229
                                                <div class="wrapper-fw">
230
                                                    {{{ coursetab3content }}}
231
                                                    {{{ coursetab-c }}}
232
                                                </div>
233
                                            </div>
234
                                            <div class="tab-pane fade" id="tab4" role="tabpanel" aria-labelledby="course-tab4">
235
                                                <div class="wrapper-fw">
236
                                                    {{{ coursetab4content }}}
237
                                                    {{{ coursetab-d }}}
238
                                                </div>
239
                                            </div>
240
                                            <div class="tab-pane fade" id="tab5" role="tabpanel" aria-labelledby="course-tab5">
241
                                                <div class="wrapper-fw {{# output.course_contacts }}rui-list--gap {{/ output.course_contacts }}">
242
                                                    {{{ coursetab5content }}}
243
                                                    {{{ coursetab-e }}}
244
 
245
                                                    {{#cccteacherslist}}{{{ output.course_contacts }}}{{/cccteacherslist}}
246
                                                </div>
247
                                            </div>
248
                                        </div>
249
 
250
                                    {{/coursetablayout}}
251
 
252
                                    {{^coursetablayout}}
253
 
254
                                        {{{ output.full_header }}}
255
 
256
                                        {{#ipcourseimage}}
257
                                            {{#output.course_hero}}
258
                                                <div class="rui-course-cover my-3" style="background-image: url('{{{ output.course_hero }}}');"></div>
259
                                            {{/output.course_hero}}
260
                                        {{/ipcourseimage}}
261
 
262
                                        {{#hascstopbl}}
263
                                            <section id="cstopbl" data-region="tmpl-course-blocks" class="rui-blocks-area mt-4">
264
                                                {{{ cstopbl }}}
265
                                            </section>
266
                                        {{/hascstopbl}}
267
 
268
                                        {{{ output.main_content }}}
269
 
270
                                        {{#hascsbottombl}}
271
                                            <div>
272
                                                <section id="csbottombl" data-region="tmpl-course-blocks" class="rui-blocks-area">
273
                                                    {{{ csbottombl }}}
274
                                                </section>
275
                                            </div>
276
                                        {{/hascsbottombl}}
277
 
278
                                    {{/coursetablayout}}
279
 
280
                                    {{{ output.activity_navigation }}}
281
                                    {{{ output.course_content_footer }}}
282
 
283
                                </div>
284
 
285
                            </div>
286
                        </section>
287
                        {{#hasblocks}}
288
                            {{< theme_universe/drawer }}
289
                                {{$id}}universe-drawers-blocks{{/id}}
290
                                {{$drawerclasses}}drawer drawer-right{{#blockdraweropen}} show{{/blockdraweropen}}{{/drawerclasses}}
291
                                {{$drawercontent}}
292
                                    <section class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
293
                                        {{{ addblockbutton }}}
258 ariadna 294
                                        {{{ sidepreblocks }}}
1 efrain 295
                                    </section>
296
                                {{/drawercontent}}
297
                                {{$drawerpreferencename}}drawer-open-block{{/drawerpreferencename}}
298
                                {{$forceopen}}{{#forceblockdraweropen}}1{{/forceblockdraweropen}}{{/forceopen}}
299
                                {{$drawerstate}}show-drawer-right{{/drawerstate}}
300
                                {{$tooltipplacement}}left{{/tooltipplacement}}
301
                                {{$drawercloseonresize}}1{{/drawercloseonresize}}
302
                                {{$closebuttontext}}{{#str}}closeblockdrawer, core{{/str}}{{/closebuttontext}}
303
                            {{/ theme_universe/drawer}}
304
                        {{/hasblocks}}
305
 
306
                    </div>
307
 
308
                    {{#hascbottombl}}
309
                        <div class="wrapper-fw">
310
                            <section id="cbottombl" data-region="tmpl-course-blocks" class="rui-blocks-area wrapper--with-margin wrapper-xl">
311
                                {{{ cbottombl }}}
312
                            </section>
313
                        </div>
314
                    {{/hascbottombl}}
315
 
316
                </div>
317
 
318
            </div>
319
 
320
            {{> theme_universe/footer }}
321
 
322
        </div>
323
 
324
        {{{ output.standard_after_main_region_html }}}
325
 
326
    </div>
327
 
328
    <script>
329
        // Get all elements with class "rui-modprogress"
330
        var progressDivs = document.querySelectorAll('.rui-modprogress');
331
 
332
        // Iterate over each div element
333
        progressDivs.forEach(function(div) {
334
            // Extract the text content from the div
335
            var textContent = div.textContent.trim();
336
 
337
            // Extract only numbers using regular expression
338
            var numbers = textContent.match(/\d+/g);
339
 
340
            // Check if numbers are extracted successfully
341
            if (numbers && numbers.length === 2) {
342
                // Split the value before and after the "/" character
343
                var beforeSlash = numbers[0];
344
                var afterSlash = numbers[1];
345
 
346
                // Update count-completed-value and count-total-value
347
                var parentDiv = div.closest('.section-summary-activities');
348
                var completedSpan = parentDiv.querySelector('.count-completed-value');
349
                var totalSpan = parentDiv.querySelector('.count-total-value');
350
 
351
                // Calculate the percentage of completion
352
                var percentage = (beforeSlash / afterSlash) * 100;
353
 
354
                // Update aria-valuenow attribute
355
                var progressBar = parentDiv.querySelector('.rui-progress-bar');
356
                if (progressBar) {
357
                    progressBar.setAttribute('aria-valuenow', percentage);
358
                    progressBar.style.width = percentage + "%";
359
                }
360
 
361
                if (completedSpan && totalSpan) {
362
                    completedSpan.textContent = beforeSlash;
363
                    totalSpan.textContent = afterSlash;
364
                }
365
 
366
            } else {
367
                console.error("Error: Failed to extract numbers from the div with ID:", div.id);
368
            }
369
        });
370
    </script>
371
 
372
</body>
373
 
374
</html>
375
{{#js}}
376
    M.util.js_pending('theme_universe/loader');
377
    require(['theme_universe/loader', 'theme_universe/drawer'], function(Loader, Drawer) {
378
    Drawer.init();
379
    M.util.js_complete('theme_universe/loader');
380
    });
381
{{/js}}