diff --git a/src/main/webapp/app/WebSocket.js b/src/main/webapp/app/WebSocket.js index 5564b7ab9c317abb786c93b78f8ef152bc2104b3..2ebd19d8570aa9c9a5125c7ecc4861e26ff6e6ff 100644 --- a/src/main/webapp/app/WebSocket.js +++ b/src/main/webapp/app/WebSocket.js @@ -55,7 +55,8 @@ Ext.define('ARSnova.WebSocket', { countPreparationQuestionAnswers: "arsnova/socket/question/lecturer/preparation/answercount", learningProgressOptions: "arsnova/socket/session/learningprogress/options", learningProgressChange: "arsnova/socket/session/learningprogress/change", - countFlashcards: "arsnova/question/lecturer/flashcard/count" + countFlashcards: "arsnova/question/lecturer/flashcard/count", + flipFlashcards: "arsnova/session/flashcards/flip" }, memoization: {}, @@ -251,6 +252,11 @@ Ext.define('ARSnova.WebSocket', { this.fireEvent(this.events.countFlashcards, count); }, this)); + this.socket.on('flipFlashcards', Ext.bind(function (flip) { + console.debug("Socket.IO: flipFlashcards", flip); + this.fireEvent(this.events.flipFlashcards, flip); + }, this)); + this.socket.on('learningProgressOptions', Ext.bind(function (options) { console.debug("Socket.IO: learningProgressOptions", options); this.fireEvent(this.events.learningProgressOptions, options); diff --git a/src/main/webapp/app/model/Session.js b/src/main/webapp/app/model/Session.js index 4a528498d9b448346a6f7b6ec169635cdd31eabb..1b2cee8afbfb14facc91a5997311fb8e0a44f568 100644 --- a/src/main/webapp/app/model/Session.js +++ b/src/main/webapp/app/model/Session.js @@ -89,6 +89,7 @@ Ext.define('ARSnova.model.Session', { sessionLeave: "arsnova/session/leave", learningProgressOptions: "arsnova/session/learningprogress/options", learningProgressChange: "arsnova/session/learningprogress/change", + flipFlashcards: "arsnova/session/flashcards/flip", featureChange: "arsnova/session/features/change" }, @@ -105,6 +106,11 @@ Ext.define('ARSnova.model.Session', { this.fireEvent(this.events.learningProgressChange); }, this); + ARSnova.app.socket.on(ARSnova.app.socket.events.flipFlashcards, function (flip) { + ARSnova.app.getController('FlashcardQuestions').flipFlashcards(flip); + this.fireEvent(this.events.flipFlashcards, flip); + }, this); + ARSnova.app.socket.on(ARSnova.app.socket.events.featureChange, function (features) { var prevFeatures = ARSnova.app.getController('Feature').getActiveFeatures(); @@ -175,6 +181,10 @@ Ext.define('ARSnova.model.Session', { return this.getProxy().lockFeedbackInput(sessionStorage.getItem("keyword"), lock, callbacks); }, + flipFlashcards: function (flip, callbacks) { + return this.getProxy().flipFlashcards(sessionStorage.getItem("keyword"), flip, callbacks); + }, + getMyLearningProgress: function (sessionKeyword, callbacks) { var me = this; return this.getProxy().getMyLearningProgress(sessionKeyword, this.getLearningProgress(), { diff --git a/src/main/webapp/app/proxy/RestProxy.js b/src/main/webapp/app/proxy/RestProxy.js index f58bd0e3706dedd522dc68eb57ffe13dd6338450..5c03f9a041514a49e9c1682fb9136d1ba89cc315 100755 --- a/src/main/webapp/app/proxy/RestProxy.js +++ b/src/main/webapp/app/proxy/RestProxy.js @@ -904,6 +904,18 @@ Ext.define('ARSnova.proxy.RestProxy', { }); }, + flipFlashcards: function (sessionKeyword, flip, callbacks) { + this.arsjax.request({ + url: "session/" + sessionKeyword + "/flipflashcards", + method: "POST", + params: { + flip: flip + }, + success: callbacks.success, + failure: callbacks.failure + }); + }, + getFeedback: function (sessionKeyword, callbacks) { this.arsjax.request({ url: "session/" + sessionKeyword + "/feedback/",