summaryrefslogtreecommitdiff
path: root/addons/website_event_track_live_quiz/static/src
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
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_event_track_live_quiz/static/src')
-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
-rw-r--r--addons/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml14
-rw-r--r--addons/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml14
4 files changed, 120 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;
+
+});
diff --git a/addons/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml b/addons/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml
new file mode 100644
index 00000000..91c37f78
--- /dev/null
+++ b/addons/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+
+<t t-extend="website_event_track_live.website_event_track_suggestion">
+ <t t-jquery="a.owevent_track_suggestion_replay" t-operation="before">
+ <a t-if="widget.currentTrack.showQuiz" class="btn btn-primary btn-lg mr-2 owevent_track_suggestion_quiz"
+ href="#we_track_quiz_container"
+ onclick="$('.o_quiz_js_quiz_container').removeClass('d-none');">
+ <span>Take the Quiz</span>
+ </a>
+ </t>
+</t>
+
+</odoo>
diff --git a/addons/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml b/addons/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml
new file mode 100644
index 00000000..a1524d14
--- /dev/null
+++ b/addons/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+
+<t t-extend="quiz.validation">
+ <t t-jquery="button.o_quiz_js_quiz_reset" t-operation="after">
+ <a t-if="widget.nextSuggestion"
+ t-attf-class="btn border o_quiz_js_quiz_next_track #{widget.track.completed ? 'btn-secondary' : 'btn-light'}"
+ t-att-href="widget.nextSuggestion.suggestion.website_url">
+ Next Track
+ </a>
+ </t>
+</t>
+
+</odoo>