From 2456f46b2bd1ee7c190ca810eefad01a16d34253 Mon Sep 17 00:00:00 2001 From: Thomas Hille Date: Mon, 27 Feb 2017 17:19:51 +0100 Subject: [PATCH] changed name of intervention modal, timer in editor.js set text now. some time calculations in editor for interventions --- app/assets/javascripts/editor/editor.js.erb | 28 +++++++++++++++++-- app/views/exercises/_editor.html.slim | 2 +- ...tml.slim => _intervention_modal.html.slim} | 4 +-- 3 files changed, 28 insertions(+), 6 deletions(-) rename app/views/interventions/{_working_too_long.html.slim => _intervention_modal.html.slim} (89%) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index f978ad0a..0e644d7d 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -585,11 +585,33 @@ configureEditors: function () { url: $('#editor').data('working-times-url'), success: function (data) { var percentile75 = data['working_time_75_percentile']; - var accu = data['working_time_accumulated']; - $('#avg-working-time').text(`75th percentile: ${percentile75} and accumulated time: ${accu}`); + var accumulatedWorkTimeUser = data['working_time_accumulated']; + + var timeUntilBreak = 15 * 60; + + if ((accumulatedWorkTimeUser - percentile75) > 0) { + // working time is already over 75 percentile + var timeUntilAskQuestion = 7 * 60; + } else { + // working time is less than 75 percentile + // ensure we give user at least 10 minutes before we bother the user + var timeUntilAskQuestion = (percentile75 - accumulatedWorkTimeUser) > 10 * 60 ? (percentile75 - accumulatedWorkTimeUser) : 10 * 60; + } + + // if notifications are too close to each other, ensure some time differences between them + if (Math.abs(timeUntilAskQuestion - timeUntilBreak) < 5){ + timeUntilBreak = timeUntilBreak * 2; + } + setTimeout(function() { + $('#intervention-text').text(`Willst du eine Pause machen? 75th percentile: ${percentile75} and accumulated time: ${accumulatedWorkTimeUser}`); $('#intervention-modal').modal('show') - }, 10000); + }, timeUntilBreak); + + setTimeout(function() { + $('#intervention-text').text(`Willst du eine Frage stellen?`); + $('#intervention-modal').modal('show') + }, timeUntilAskQuestion); } }); }, diff --git a/app/views/exercises/_editor.html.slim b/app/views/exercises/_editor.html.slim index df25104d..be82a5b7 100644 --- a/app/views/exercises/_editor.html.slim +++ b/app/views/exercises/_editor.html.slim @@ -22,4 +22,4 @@ = render('shared/modal', id: 'comment-modal', title: t('exercises.implement.comment.request'), template: 'exercises/_request_comment_dialogcontent') -= render('shared/modal', id: 'intervention-modal', title: 'Leg mal eine Pause ein', template: 'interventions/_working_too_long') \ No newline at end of file += render('shared/modal', id: 'intervention-modal', title: 'Leg mal eine Pause ein', template: 'interventions/_intervention_modal') \ No newline at end of file diff --git a/app/views/interventions/_working_too_long.html.slim b/app/views/interventions/_intervention_modal.html.slim similarity index 89% rename from app/views/interventions/_working_too_long.html.slim rename to app/views/interventions/_intervention_modal.html.slim index 31e8a963..af783dfa 100644 --- a/app/views/interventions/_working_too_long.html.slim +++ b/app/views/interventions/_intervention_modal.html.slim @@ -2,8 +2,8 @@ h5 = 'Aufpassen!' /textarea.form-control#question(style='resize:none;') -p = 'Uns ist aufgefallen, dass Sie schon sehr lange an dieser Aufgabe sitzen. Wollen Sie nicht vielleicht mal eine Pause einlegen?' -#avg-working-time +p = 'Uns ist aufgefallen, dass Sie schon sehr lange an dieser Aufgabe sitzen.' +#intervention-text /p = "AVG: #{@working_time_avg}" /p = "ACCUMULATED: #{@working_time_accumulated}"