From f2ef7fea7f496609cebb5ecd938f417a0de3994d Mon Sep 17 00:00:00 2001 From: Christoph Thelen Date: Thu, 28 May 2015 11:35:32 +0200 Subject: [PATCH] Fix for #7658: Mark freetext answers as read --- src/main/webapp/app/WebSocket.js | 5 +++++ src/main/webapp/app/controller/Questions.js | 5 +++++ .../webapp/app/view/FreetextAnswerPanel.js | 20 +++++++++++++++---- .../app/view/speaker/QuestionDetailsPanel.js | 3 ++- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/main/webapp/app/WebSocket.js b/src/main/webapp/app/WebSocket.js index 627ddc3c..fb1cf49f 100644 --- a/src/main/webapp/app/WebSocket.js +++ b/src/main/webapp/app/WebSocket.js @@ -239,6 +239,11 @@ Ext.define('ARSnova.WebSocket', { this.socket.emit("readInterposedQuestion", question.getData()); }, + readFreetextAnswer: function (answer) { + console.debug("Socket.IO.emit: readFreetextAnswer", answer._id); + this.socket.emit("readFreetextAnswer", answer._id); + }, + setLearningProgressOptions: function (data) { console.debug("Socket.IO.emit: setLearningProgressOptions", data); this.socket.emit("setLearningProgressOptions", data); diff --git a/src/main/webapp/app/controller/Questions.js b/src/main/webapp/app/controller/Questions.js index b98d7ece..b38faa03 100644 --- a/src/main/webapp/app/controller/Questions.js +++ b/src/main/webapp/app/controller/Questions.js @@ -308,6 +308,11 @@ Ext.define("ARSnova.controller.Questions", { answer: options.answer }); + if (ARSnova.app.isSessionOwner && options.answer.read === false) { + options.answer.read = true; + ARSnova.app.socket.readFreetextAnswer(options.answer); + } + mainTabPanel.animateActiveItem(freetextDetailAnswerPanel, { type: 'slide', direction: 'left', diff --git a/src/main/webapp/app/view/FreetextAnswerPanel.js b/src/main/webapp/app/view/FreetextAnswerPanel.js index 0fdd1e0f..db8cac57 100644 --- a/src/main/webapp/app/view/FreetextAnswerPanel.js +++ b/src/main/webapp/app/view/FreetextAnswerPanel.js @@ -155,11 +155,23 @@ Ext.define('ARSnova.view.FreetextAnswerPanel', { }, itemCls: 'forwardListButton', - itemTpl: [ + // Display unread answers for teachers only + itemTpl: Ext.create('Ext.XTemplate', '
', - '{formattedTime}{answerSubject:htmlEncode}', - '
' - ], + '{formattedTime}', + '', + '{answerSubject:htmlEncode}', + '', + '', + '{answerSubject:htmlEncode}', + '', + '', + { + isStudent: function () { + return ARSnova.app.isSessionOwner !== true; + } + } + ), grouped: true, deferEmptyText: false, diff --git a/src/main/webapp/app/view/speaker/QuestionDetailsPanel.js b/src/main/webapp/app/view/speaker/QuestionDetailsPanel.js index 14ef9fca..864fdc3b 100644 --- a/src/main/webapp/app/view/speaker/QuestionDetailsPanel.js +++ b/src/main/webapp/app/view/speaker/QuestionDetailsPanel.js @@ -47,7 +47,8 @@ Ext.define('FreetextAnswer', { 'sessionId', 'type', '_rev', - 'answerThumbnailImage' + 'answerThumbnailImage', + 'read' ] } }); -- GitLab