summaryrefslogtreecommitdiff
path: root/addons/website_event_track_live_quiz/static/src/js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/website_event_track_live_quiz/static/src/js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_event_track_live_quiz/static/src/js')
-rw-r--r--addons/website_event_track_live_quiz/static/src/js/event_quiz.js58
-rw-r--r--addons/website_event_track_live_quiz/static/src/js/website_event_track_suggestion.js34
2 files changed, 92 insertions, 0 deletions
diff --git a/addons/website_event_track_live_quiz/static/src/js/event_quiz.js b/addons/website_event_track_live_quiz/static/src/js/event_quiz.js
new file mode 100644
index 00000000..2fd34e66
--- /dev/null
+++ b/addons/website_event_track_live_quiz/static/src/js/event_quiz.js
@@ -0,0 +1,58 @@
+odoo.define('website_event_track_live_quiz.event_quiz', function (require) {
+'use strict';
+
+var Quiz = require('website_event_track_quiz.event.quiz');
+
+var WebsiteEventTrackSuggestionQuiz = Quiz.include({
+ xmlDependencies: Quiz.prototype.xmlDependencies.concat([
+ '/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml',
+ ]),
+
+ /**
+ * @override
+ */
+ willStart: function () {
+ return Promise.all([
+ this._super(...arguments),
+ this._getTrackSuggestion()
+ ]);
+ },
+
+ //--------------------------------------------------------------------------
+ // Private
+ //--------------------------------------------------------------------------
+
+ _submitQuiz: function () {
+ var self = this;
+ return this._super(...arguments).then(function (data) {
+ if (data.quiz_completed) {
+ self.$('.o_quiz_js_quiz_next_track')
+ .removeClass('btn-light')
+ .addClass('btn-secondary');
+ }
+
+ return Promise.resolve(data);
+ });
+ },
+
+ //--------------------------------------------------------------------------
+ // Handlers
+ //--------------------------------------------------------------------------
+
+ _getTrackSuggestion: function () {
+ var self = this;
+ return this._rpc({
+ route: '/event_track/get_track_suggestion',
+ params: {
+ track_id: this.track.id,
+ }
+ }).then(function (suggestion) {
+ self.nextSuggestion = suggestion;
+ return Promise.resolve();
+ });
+ }
+});
+
+return WebsiteEventTrackSuggestionQuiz;
+
+});
diff --git a/addons/website_event_track_live_quiz/static/src/js/website_event_track_suggestion.js b/addons/website_event_track_live_quiz/static/src/js/website_event_track_suggestion.js
new file mode 100644
index 00000000..17f98f9b
--- /dev/null
+++ b/addons/website_event_track_live_quiz/static/src/js/website_event_track_suggestion.js
@@ -0,0 +1,34 @@
+odoo.define('website_event_track_live_quiz.website_event_track_suggestion', function (require) {
+'use strict';
+
+var WebsiteEventTrackSuggestion = require('website_event_track_live.website_event_track_suggestion');
+
+var WebsiteEventTrackSuggestionLiveQuiz = WebsiteEventTrackSuggestion.include({
+ xmlDependencies: WebsiteEventTrackSuggestion.prototype.xmlDependencies.concat([
+ '/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml',
+ ]),
+ events: _.extend({}, WebsiteEventTrackSuggestion.prototype.events, {
+ 'click .owevent_track_suggestion_quiz': '_onQuizClick'
+ }),
+
+ init: function (parent, options) {
+ this._super(...arguments);
+ this.currentTrack.showQuiz = options.current_track.show_quiz;
+ },
+
+ //--------------------------------------------------------------------------
+ // Handlers
+ //--------------------------------------------------------------------------
+
+ /**
+ * If the user takes the quiz, stop the next suggestion timer
+ */
+ _onQuizClick: function () {
+ clearInterval(this.timerInterval);
+ this.$('.owevent_track_suggestion_timer_text_wrapper').remove();
+ }
+});
+
+return WebsiteEventTrackSuggestionLiveQuiz;
+
+});