diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/website_event_track_live_quiz/static/src | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/website_event_track_live_quiz/static/src')
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> |
