From c235e32636d1dbcae2ff1b7f3b01d930f5ee8181 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20G=C3=A4rtner?= <andreas.gaertner@mni.thm.de> Date: Thu, 6 Oct 2016 15:53:10 +0200 Subject: [PATCH] Add methods for flashcard flip feature --- .../app/controller/FlashcardQuestions.js | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/main/webapp/app/controller/FlashcardQuestions.js b/src/main/webapp/app/controller/FlashcardQuestions.js index 4777bcfe3..9284e3aa1 100644 --- a/src/main/webapp/app/controller/FlashcardQuestions.js +++ b/src/main/webapp/app/controller/FlashcardQuestions.js @@ -25,6 +25,8 @@ Ext.define("ARSnova.controller.FlashcardQuestions", { models: ['ARSnova.model.Question'] }, + flip: false, + listQuestions: function () { var sTP = ARSnova.app.mainTabPanel.tabPanel.speakerTabPanel; sTP.newQuestionPanel.setVariant('flashcard'); @@ -57,6 +59,53 @@ Ext.define("ARSnova.controller.FlashcardQuestions", { ARSnova.app.questionModel.getFlashcards.apply(ARSnova.app.questionModel, arguments); }, + flipFlashcards: function (flip) { + this.flip = flip; + this.flipAllFlashcards(flip); + }, + + flipAllFlashcards: function (flip) { + var tabPanel, carousel; + + if (ARSnova.app.userRole === ARSnova.app.USER_ROLE_SPEAKER) { + tabPanel = ARSnova.app.mainTabPanel.tabPanel.speakerTabPanel; + carousel = tabPanel.showcaseQuestionPanel; + } else { + tabPanel = ARSnova.app.mainTabPanel.tabPanel.userTabPanel; + carousel = tabPanel.userQuestionsPanel; + } + + if (tabPanel.getActiveItem() === carousel && + carousel.getMode() === 'flashcard') { + carousel.getInnerItems().forEach(function (flashcard) { + if (flashcard.questionObj.questionType === 'flashcard') { + flashcard.questionContainer.isFlipped = flip; + if (flip) { + flashcard.questionContainer.addCls('flipped'); + flashcard.flashcardToggleButton.setText( + Messages.HIDE_FLASHCARD_ANSWER); + + if (flashcard.editButtons) { + flashcard.editButtons.flipFlashcardsButton + .element.down('.iconBtnImg').replaceCls( + 'icon-flashcard-front', 'icon-flashcard-back'); + } + } else { + flashcard.questionContainer.removeCls('flipped'); + flashcard.flashcardToggleButton.setText( + Messages.SHOW_FLASHCARD_ANSWER); + + if (flashcard.editButtons) { + flashcard.editButtons.flipFlashcardsButton + .element.down('.iconBtnImg').replaceCls( + 'icon-flashcard-back', 'icon-flashcard-front'); + } + } + } + }); + } + }, + adHoc: function () { var sTP = ARSnova.app.mainTabPanel.tabPanel.speakerTabPanel; sTP.sortQuestionsPanel.setController(this); -- GitLab