Rev 1 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
{{!This file is part of Moodle - http://moodle.org/Moodle is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.Moodle is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with Moodle. If not, see <http://www.gnu.org/licenses/>.}}{{!@template tool_analytics/models_listTemplate for models list.Classes required for JS:* The list od models wrapped within a id="predictionmodelslist" element.Data attributes required for JS:* [data-widget="toggle"] indicates the clickable element for expanding/collapsingthe list of indicators used by the given model.* [data-model-name="..."] should be provided by an element wrapping the model's actions menuand contain the plain text name of the model.Context variables required for this template:* models: array - list of models to display- id: int - model unique identifier- modelname: string - name of the model- name: object - data for the inplace editable element template- target: string - name of the target associated with the model- targetclass: string - fully qualified name of the target class- targethelp: object - data for the help tooltip template- enabled: bool - is the model enabled- indicatorsnum: int - number of indicators- indicators: array - list of indicators used by the model+ name: string - name of the indicator+ help: object - data for the help tooltip template- insights: object - data for the single select template- noinsights: string - text to display instead of insights* warnings: array - list of data for notification warning template* infos: array - list of data for notification info template* createmodelurl: string - URL to create a new model* importmodelurl: string - URL to import a modelExample context (json):{"models": [{"id": 11,"modelname": "Prevent devs at risk","name": {"component": "local_analyticsdemo","itemtype": "modelname","itemid": 42,"displayvalue": "Prevent devs at risk","value": ""},"target": "Prevent devs at risk","targetclass": "\\local_analyticsdemo\\analytics\\target\\dev_risk","targethelp": {"title": "Help with Prevent devs at risk","text": "This target blah blah ...","url": "http://example.org/help","linktext": "","icon": {"extraclasses": "","attributes": [{"name": "src", "value": "../../../pix/help.svg"},{"name": "alt", "value": "Help icon"}]}},"enabled": 1,"indicatorsnum": 2,"indicators": [{"name": "Indicator 1","help": {"text": "This indicator blah blah ...","title": "Help with Indicator 1","url": "http://example.org/help","linktext": "","icon": {"extraclasses": "","attributes": [{"name": "src", "value": "../../../pix/help.svg"},{"name": "alt", "value": "Help icon"}]}}},{"name": "Indicator 2","help": {"text": "This indicator blah blah ...","title": "Help with Indicator 2","url": "http://example.org/help","linktext": "","icon": {"extraclasses": "","attributes": [{"name": "src", "value": "../../../pix/help.svg"},{"name": "alt", "value": "Help icon"}]}}}],"timesplitting": "Quarters","timesplittinghelp": {"text": "This time splitting methof blah blah ...","title": "Help with Quarters","url": "http://example.org/help","linktext": "","icon": {"extraclasses": "","attributes": [{"name": "src", "value": "../../../pix/help.svg"},{"name": "alt", "value": "Help icon"}]}},"noinsights": "No insights available yet"}],"warnings": [{"message": "Be ware, this is just an example!"}],"createmodelurl": "#","importmodelurl": "#"}}}{{#warnings}}{{> core/notification_warning}}{{/warnings}}{{#infos}}{{> core/notification_info}}{{/infos}}<div class="box"><div class="top-nav d-flex">{{#newmodelmenu}}{{>core/action_menu}}{{/newmodelmenu}}</div><table id="predictionmodelslist" class="generaltable fullwidth"><caption>{{#str}}analyticmodels, tool_analytics{{/str}}</caption><thead><tr><th scope="col">{{#str}}modelname, tool_analytics{{/str}}</th><th scope="col">{{#str}}enabled, tool_analytics{{/str}}</th><th scope="col">{{#str}}indicators, tool_analytics{{/str}}</th><th scope="col">{{#str}}modeltimesplitting, tool_analytics{{/str}}</th><th scope="col">{{#str}}insights, tool_analytics{{/str}}</th><th scope="col">{{#str}}actions{{/str}}</th></tr></thead><tbody>{{#models}}<tr data-model-name="{{modelname}}"><td>{{#name}}<span class="model-name">{{>core/inplace_editable}}</span>{{/name}}<div><small class="target-class">{{targetclass}}</small>{{#targethelp}}{{>core/help_icon}}{{/targethelp}}</div></td><td>{{#enabled}}{{#pix}}i/checked, core, {{#str}}yes{{/str}}{{/pix}}{{/enabled}}{{^enabled}}{{#str}}no{{/str}}{{/enabled}}</td><td><a data-widget="toggle"title="{{#str}} clicktohideshow {{/str}}"aria-expanded="false"aria-controls="indicators-{{id}}"role="button"href="">{{#str}} indicatorsnum, tool_analytics, {{indicatorsnum}} {{/str}}</a><ul class="hidden" id="indicators-{{id}}">{{#indicators}}<li>{{name}}{{#help}}{{>core/help_icon}}{{/help}}</li>{{/indicators}}</ul></td><td>{{#timesplitting}}{{timesplitting}}{{#timesplittinghelp}}{{>core/help_icon}}{{/timesplittinghelp}}{{/timesplitting}}{{^timesplitting}}{{#str}}notdefined, tool_analytics{{/str}}{{#timesplittinghelp}}{{>core/help_icon}}{{/timesplittinghelp}}{{/timesplitting}}</td><td>{{! models_list renderer is responsible of sending one or the other}}{{#insights}}{{> core/single_select }}{{/insights}}{{#noinsights}}{{.}}{{/noinsights}}</td><td>{{#actions}}{{> core/action_menu}}{{/actions}}</td></tr>{{/models}}</tbody></table></div>{{#js}}require(['jquery'], function($) {// Toggle the visibility of the indicators list.$('#predictionmodelslist').on('click', '[data-widget="toggle"]', function(e) {e.preventDefault();var toggle = $(e.currentTarget);var listid = toggle.attr('aria-controls');$(document.getElementById(listid)).toggle();if (toggle.attr('aria-expanded') == 'false') {toggle.attr('aria-expanded', 'true');} else {toggle.attr('aria-expanded', 'false');}});});{{/js}}