MDL-64787 tool_analytics: New template to select the evaluation mode

This commit is contained in:
David Monllaó 2019-03-07 21:00:51 +01:00
parent e97dfff78d
commit 4c44a1f6a0
3 changed files with 47 additions and 31 deletions

View File

@ -1 +1 @@
define(["jquery","core/str","core/log","core/notification","core/modal_factory","core/modal_events"],function(a,b,c,d,e,f){var g={clear:{title:{key:"clearpredictions",component:"tool_analytics"},body:{key:"clearmodelpredictions",component:"tool_analytics"}},"delete":{title:{key:"delete",component:"tool_analytics"},body:{key:"deletemodelconfirmation",component:"tool_analytics"}}},h='<div class="box mb-4">{{evaluationmodeinfo}}</div><div class="form-check"><input class="form-check-input" type="radio" name="evaluationmode" id="id-mode-trainedmodel" value="trainedmodel" checked><label class="form-check-label" for="id-mode-trainedmodel">{{trainedmodellabel}}</label></div><div class="form-check"><input class="form-check-input" type="radio" name="evaluationmode" id="id-mode-configuration" value="configuration"><label class="form-check-label" for="id-mode-configuration">{{configurationlabel}}</label></div>',i=function(b){return a(b.closest("tr")[0]).find("span.target-name").text()};return{confirmAction:function(h,j){a('[data-action-id="'+h+'"]').on("click",function(h){h.preventDefault();var k=a(h.currentTarget);if("undefined"==typeof g[j])return void c.error('Action "'+j+'" is not allowed.');var l=[g[j].title,g[j].body];l[1].param=i(k);var m=b.get_strings(l),n=e.create({type:e.types.SAVE_CANCEL});a.when(m,n).then(function(a,b){return b.setTitle(a[0]),b.setBody(a[1]),b.setSaveButtonText(a[0]),b.getRoot().on(f.save,function(){window.location.href=k.attr("href")}),b.show(),b}).fail(d.exception)})},selectEvaluationMode:function(c,g){a('[data-action-id="'+c+'"]').on("click",function(c){c.preventDefault();var i=a(c.currentTarget);if(!g)return void(window.location.href=i.attr("href"));var j=b.get_strings([{key:"evaluatemodel",component:"tool_analytics"},{key:"evaluationmode",component:"tool_analytics"},{key:"evaluationmodeinfo",component:"tool_analytics"},{key:"evaluationmodetrainedmodel",component:"tool_analytics"},{key:"evaluationmodeconfiguration",component:"tool_analytics"}]),k=e.create({type:e.types.SAVE_CANCEL});a.when(j,k).then(function(b,c){c.getRoot().on(f.hidden,c.destroy.bind(c)),c.setTitle(b[1]),c.setSaveButtonText(b[0]);var d=h.replace(/{{evaluationmodeinfo}}/,b[2]).replace(/{{trainedmodellabel}}/,b[3]).replace(/{{configurationlabel}}/,b[4]);return c.setBody(d),c.getRoot().on(f.save,function(){var b=a("input[name='evaluationmode']:checked").val();"trainedmodel"==b&&i.attr("href",i.attr("href")+"&mode=trainedmodel"),window.location.href=i.attr("href")}),c.show(),c}).fail(d.exception)})}}});
define(["jquery","core/str","core/log","core/notification","core/modal_factory","core/modal_events","core/templates"],function(a,b,c,d,e,f,g){var h={clear:{title:{key:"clearpredictions",component:"tool_analytics"},body:{key:"clearmodelpredictions",component:"tool_analytics"}},"delete":{title:{key:"delete",component:"tool_analytics"},body:{key:"deletemodelconfirmation",component:"tool_analytics"}}},i=function(b){return a(b.closest("tr")[0]).find("span.target-name").text()};return{confirmAction:function(g,j){a('[data-action-id="'+g+'"]').on("click",function(g){g.preventDefault();var k=a(g.currentTarget);if("undefined"==typeof h[j])return void c.error('Action "'+j+'" is not allowed.');var l=[h[j].title,h[j].body];l[1].param=i(k);var m=b.get_strings(l),n=e.create({type:e.types.SAVE_CANCEL});a.when(m,n).then(function(a,b){return b.setTitle(a[0]),b.setBody(a[1]),b.setSaveButtonText(a[0]),b.getRoot().on(f.save,function(){window.location.href=k.attr("href")}),b.show(),b}).fail(d.exception)})},selectEvaluationMode:function(c,h){a('[data-action-id="'+c+'"]').on("click",function(c){c.preventDefault();var i=a(c.currentTarget);if(!h)return void(window.location.href=i.attr("href"));var j=b.get_strings([{key:"evaluatemodel",component:"tool_analytics"},{key:"evaluationmode",component:"tool_analytics"}]),k=e.create({type:e.types.SAVE_CANCEL}),l=g.render("tool_analytics/evaluation_mode_selection",{});a.when(j,k).then(function(b,c){return c.getRoot().on(f.hidden,c.destroy.bind(c)),c.setTitle(b[1]),c.setSaveButtonText(b[0]),c.setBody(l),c.getRoot().on(f.save,function(){var b=a("input[name='evaluationmode']:checked").val();"trainedmodel"==b&&i.attr("href",i.attr("href")+"&mode=trainedmodel"),window.location.href=i.attr("href")}),c.show(),c}).fail(d.exception)})}}});

View File

@ -20,8 +20,8 @@
* @copyright 2017 David Monllao
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define(['jquery', 'core/str', 'core/log', 'core/notification', 'core/modal_factory', 'core/modal_events'],
function($, Str, log, Notification, ModalFactory, ModalEvents) {
define(['jquery', 'core/str', 'core/log', 'core/notification', 'core/modal_factory', 'core/modal_events', 'core/templates'],
function($, Str, log, Notification, ModalFactory, ModalEvents, Templates) {
/**
* List of actions that require confirmation and confirmation message.
@ -48,20 +48,6 @@ define(['jquery', 'core/str', 'core/log', 'core/notification', 'core/modal_facto
}
};
/**
* Template to display the evaluation mode choices.
*/
var evaluationRadioHTML = '<div class="box mb-4">{{evaluationmodeinfo}}</div>' +
'<div class="form-check">' +
'<input class="form-check-input" type="radio" name="evaluationmode" id="id-mode-trainedmodel" value="trainedmodel" ' +
'checked>' +
'<label class="form-check-label" for="id-mode-trainedmodel">{{trainedmodellabel}}</label>' +
'</div>' +
'<div class="form-check">' +
'<input class="form-check-input" type="radio" name="evaluationmode" id="id-mode-configuration" value="configuration">' +
'<label class="form-check-label" for="id-mode-configuration">{{configurationlabel}}</label>' +
'</div>';
/**
* Returns the model name.
*
@ -140,18 +126,10 @@ define(['jquery', 'core/str', 'core/log', 'core/notification', 'core/modal_facto
}, {
key: 'evaluationmode',
component: 'tool_analytics'
}, {
key: 'evaluationmodeinfo',
component: 'tool_analytics'
}, {
key: 'evaluationmodetrainedmodel',
component: 'tool_analytics'
}, {
key: 'evaluationmodeconfiguration',
component: 'tool_analytics'
}
]);
var modalPromise = ModalFactory.create({type: ModalFactory.types.SAVE_CANCEL});
var bodyPromise = Templates.render('tool_analytics/evaluation_mode_selection', {});
$.when(stringsPromise, modalPromise).then(function(strings, modal) {
@ -160,11 +138,7 @@ define(['jquery', 'core/str', 'core/log', 'core/notification', 'core/modal_facto
modal.setTitle(strings[1]);
modal.setSaveButtonText(strings[0]);
var body = evaluationRadioHTML.replace(/{{evaluationmodeinfo}}/, strings[2])
.replace(/{{trainedmodellabel}}/, strings[3])
.replace(/{{configurationlabel}}/, strings[4]);
modal.setBody(body);
modal.setBody(bodyPromise);
modal.getRoot().on(ModalEvents.save, function() {
var evaluationMode = $("input[name='evaluationmode']:checked").val();

View File

@ -0,0 +1,42 @@
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the 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 of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template tool_analytics/evaluation_mode_selector
Evaluation mode selector.
The purpose of this template is to render the evaluation mode radio button.
Classes required for JS:
* none
Data attributes required for JS:
* none
Example context (json):
{
}
}}
<div class="box mb-4">{{#str}} evaluationmodeinfo, tool_analytics {{/str}}</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="evaluationmode" id="id-mode-trainedmodel" value="trainedmodel" checked>
<label class="form-check-label" for="id-mode-trainedmodel">{{#str}} evaluationmodetrainedmodel, tool_analytics {{/str}}</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="evaluationmode" id="id-mode-configuration" value="configuration">
<label class="form-check-label" for="id-mode-configuration">{{#str}} evaluationmodeconfiguration, tool_analytics {{/str}}</label>
</div>