diff --git a/src/main/webapp/app/controller/FlashcardQuestions.js b/src/main/webapp/app/controller/FlashcardQuestions.js index 4777bcfe3f50aa87e5cb5b90d19cbdd47ed440f0..9284e3aa1eda4933b9175ab2e21724a44c7f56f3 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);