summaryrefslogtreecommitdiff
path: root/addons/website_sale_slides/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_sale_slides/static/src
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_sale_slides/static/src')
-rw-r--r--addons/website_sale_slides/static/src/js/slides_course_join.js46
-rw-r--r--addons/website_sale_slides/static/src/js/slides_course_quiz.js25
-rw-r--r--addons/website_sale_slides/static/src/js/slides_course_unsubscribe.js12
-rw-r--r--addons/website_sale_slides/static/src/xml/slide_course_join.xml15
-rw-r--r--addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml15
-rw-r--r--addons/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml16
6 files changed, 129 insertions, 0 deletions
diff --git a/addons/website_sale_slides/static/src/js/slides_course_join.js b/addons/website_sale_slides/static/src/js/slides_course_join.js
new file mode 100644
index 00000000..4fe1c28a
--- /dev/null
+++ b/addons/website_sale_slides/static/src/js/slides_course_join.js
@@ -0,0 +1,46 @@
+odoo.define('website_sale_slides.course.join.widget', function (require) {
+"use strict";
+
+var CourseJoinWidget = require('website_slides.course.join.widget').courseJoinWidget;
+const wUtils = require('website.utils');
+
+CourseJoinWidget.include({
+ xmlDependencies: (CourseJoinWidget.prototype.xmlDependencies || []).concat(
+ ["/website_sale_slides/static/src/xml/slide_course_join.xml"]
+ ),
+ init: function (parent, options) {
+ this._super.apply(this, arguments);
+ this.productId = options.channel.productId || false;
+ },
+
+ //--------------------------------------------------------------------------
+ // Handlers
+ //--------------------------------------------------------------------------
+
+ /**
+ * When the user joins the course, if it's set as "on payment" and the user is logged in,
+ * we redirect to the shop page for this course.
+ *
+ * @param {MouseEvent} ev
+ * @override
+ * @private
+ */
+ _onClickJoin: function (ev) {
+ ev.preventDefault();
+
+ if (this.channel.channelEnroll === 'payment' && !this.publicUser) {
+ this.beforeJoin().then(function () {
+ wUtils.sendRequest('/shop/cart/update', {
+ product_id: this.productId,
+ express: 1,
+ });
+ });
+ } else {
+ this._super.apply(this, arguments);
+ }
+ },
+});
+
+return CourseJoinWidget;
+
+});
diff --git a/addons/website_sale_slides/static/src/js/slides_course_quiz.js b/addons/website_sale_slides/static/src/js/slides_course_quiz.js
new file mode 100644
index 00000000..3922a631
--- /dev/null
+++ b/addons/website_sale_slides/static/src/js/slides_course_quiz.js
@@ -0,0 +1,25 @@
+odoo.define('website_sale_slides.quiz', function (require) {
+"use strict";
+
+var sAnimations = require('website.content.snippets.animation');
+var Quiz = require('website_slides.quiz').Quiz;
+
+sAnimations.registry.websiteSlidesQuizNoFullscreen.include({
+ _extractChannelData: function (slideData) {
+ return _.extend({}, this._super.apply(this, arguments), {
+ productId: slideData.productId,
+ enroll: slideData.enroll,
+ currencyName: slideData.currencyName,
+ currencySymbol: slideData.currencySymbol,
+ price: slideData.price,
+ hasDiscountedPrice: slideData.hasDiscountedPrice
+ });
+ }
+});
+
+Quiz.include({
+ xmlDependencies: (Quiz.prototype.xmlDependencies || []).concat(
+ ["/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml"]
+ )
+});
+});
diff --git a/addons/website_sale_slides/static/src/js/slides_course_unsubscribe.js b/addons/website_sale_slides/static/src/js/slides_course_unsubscribe.js
new file mode 100644
index 00000000..34449ce7
--- /dev/null
+++ b/addons/website_sale_slides/static/src/js/slides_course_unsubscribe.js
@@ -0,0 +1,12 @@
+odoo.define('website_sale_slides.unsubscribe_modal', function (require) {
+"use strict";
+
+var SlidesUnsubscribe = require('website_slides.unsubscribe_modal');
+
+SlidesUnsubscribe.websiteSlidesUnsubscribe.include({
+ xmlDependencies: (SlidesUnsubscribe.websiteSlidesUnsubscribe.prototype.xmlDependencies || []).concat(
+ ["/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml"]
+ ),
+});
+
+});
diff --git a/addons/website_sale_slides/static/src/xml/slide_course_join.xml b/addons/website_sale_slides/static/src/xml/slide_course_join.xml
new file mode 100644
index 00000000..404386d7
--- /dev/null
+++ b/addons/website_sale_slides/static/src/xml/slide_course_join.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+ <t t-extend="slide.course.join">
+ <t t-jquery=".o_wslides_js_course_join_link" t-operation="append">
+ <t t-if="widget.channel.channelEnroll == 'payment'">
+ <t t-if="widget.publicUser">
+ Sign in
+ </t>
+ <t t-else="">
+ Buy course
+ </t>
+ </t>
+ </t>
+ </t>
+</templates>
diff --git a/addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml b/addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml
new file mode 100644
index 00000000..a03182dd
--- /dev/null
+++ b/addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+ <t t-extend="slide.slide.quiz.validation">
+ <t t-jquery=".o_wslides_quiz_join_course_message" t-operation="append">
+ <span t-if="widget.channel.channelEnroll == 'payment'">
+ <t t-if="widget.publicUser">
+ Sign in and buy the course to take the quiz
+ </t>
+ <t t-else="">
+ Buy the course to validate your answers!
+ </t>
+ </span>
+ </t>
+ </t>
+</templates>
diff --git a/addons/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml b/addons/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml
new file mode 100644
index 00000000..1cadfbbf
--- /dev/null
+++ b/addons/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+
+ <t t-extend="slides.course.unsubscribe.modal.leave">
+ <t t-jquery="p:last" t-operation="after">
+ <t t-if="widget.enroll === 'payment'">
+ <p class="alert alert-warning">
+ <i class="fa fa-exclamation-triangle fa-3x float-left mr-3"></i>
+ This course is paid.<br/>
+ Leaving the course and re-enrolling afterwards means that you'll be charged again.
+ </p>
+ </t>
+ </t>
+ </t>
+
+</templates>