summaryrefslogtreecommitdiff
path: root/addons/website_slides/static/src/xml
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_slides/static/src/xml')
-rw-r--r--addons/website_slides/static/src/xml/activity.xml38
-rw-r--r--addons/website_slides/static/src/xml/slide_course_join.xml24
-rw-r--r--addons/website_slides/static/src/xml/slide_management.xml25
-rw-r--r--addons/website_slides/static/src/xml/slide_quiz.xml166
-rw-r--r--addons/website_slides/static/src/xml/slide_quiz_create.xml92
-rw-r--r--addons/website_slides/static/src/xml/website_slides_channel.xml56
-rw-r--r--addons/website_slides/static/src/xml/website_slides_channel_tag.xml20
-rw-r--r--addons/website_slides/static/src/xml/website_slides_fullscreen.xml22
-rw-r--r--addons/website_slides/static/src/xml/website_slides_share.xml59
-rw-r--r--addons/website_slides/static/src/xml/website_slides_unsubscribe.xml28
-rw-r--r--addons/website_slides/static/src/xml/website_slides_upload.xml191
11 files changed, 721 insertions, 0 deletions
diff --git a/addons/website_slides/static/src/xml/activity.xml b/addons/website_slides/static/src/xml/activity.xml
new file mode 100644
index 00000000..a2f5b2c0
--- /dev/null
+++ b/addons/website_slides/static/src/xml/activity.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<templates xml:space="preserve">
+ <t t-extend="mail.activity_items">
+ <t t-jquery=".o_thread_message .o_thread_message_core .o_thread_message_tools" t-operation="replace">
+ <t t-if="activity.activity_type_id[1] == 'Access Request'">
+ <t t-if="activity.user_id[0] === uid">
+ <a role="button" class="btn btn-link btn-success text-muted text-success o_activity_link o_activity_action_grant_access" t-att-data-partner-id="activity.request_partner_id[0]">
+ <i class="fa fa-check"/> Grant Access
+ </a>
+ <a role="button" class="btn btn-link btn-danger text-muted text-danger o_activity_link o_activity_action_refuse_access" t-att-data-partner-id="activity.request_partner_id[0]">
+ <i class="fa fa-times"/> Refuse Access
+ </a>
+ </t>
+ </t>
+ <t t-else="">
+ <div class="o_thread_message_tools btn-group">
+ <t t-call="mail.activity_thread_message_tools"/>
+ </div>
+ </t>
+ </t>
+ </t>
+
+ <t t-inherit="mail.Activity" t-inherit-mode="extension">
+ <xpath expr="//*[@name='tools']" position="replace">
+ <t t-if="activity.requestingPartner and activity.thread.model === 'slide.channel'">
+ <div class="o_Activity_tools">
+ <button class="o_Activity_toolButton o_Activity_grantAccessButton btn btn-link" t-on-click="_onGrantAccess">
+ <i class="fa fa-check"/> Grant Access
+ </button>
+ <button class="o_Activity_toolButton o_Activity_refuseAccessButton btn btn-link" t-on-click="_onRefuseAccess">
+ <i class="fa fa-times"/> Refuse Access
+ </button>
+ </div>
+ </t>
+ <t t-else="">$0</t>
+ </xpath>
+ </t>
+</templates>
diff --git a/addons/website_slides/static/src/xml/slide_course_join.xml b/addons/website_slides/static/src/xml/slide_course_join.xml
new file mode 100644
index 00000000..0241915c
--- /dev/null
+++ b/addons/website_slides/static/src/xml/slide_course_join.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates>
+ <t t-name="slide.course.join">
+ <div>
+ <a role="button"
+ class="btn btn-primary o_wslides_js_course_join_link text-uppercase font-weight-bold"
+ title="Join the Course" aria-label="Join the Course"
+ href="#">
+ <t t-if="widget.channel.channelEnroll == 'public'">
+ <t t-if="widget.publicUser">
+ Sign in
+ </t>
+ <t t-else="" t-esc="widget.joinMessage" />
+ </t>
+ </a>
+ </div>
+ </t>
+
+ <t t-name="slide.course.join.request">
+ <div>
+ <p>Do you want to request access to this course ?</p>
+ </div>
+ </t>
+</templates>
diff --git a/addons/website_slides/static/src/xml/slide_management.xml b/addons/website_slides/static/src/xml/slide_management.xml
new file mode 100644
index 00000000..53397b20
--- /dev/null
+++ b/addons/website_slides/static/src/xml/slide_management.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+
+ <t t-name="slides.slide.archive">
+ <div>
+ <p>Are you sure you want to archive this slide ?</p>
+ </div>
+ </t>
+
+ <t t-name="slides.category.add">
+ <div>
+ <form action="/slides/category/add" method="POST" id="slide_category_add_form">
+ <input type="hidden" name="csrf_token" t-att-value="csrf_token"/>
+ <input type="hidden" name="channel_id" t-att-value="widget.channelId"/>
+ <div class="form-group row">
+ <label for="section_name" class="col-sm-3 col-form-label">Section name</label>
+ <div class="col-sm-9">
+ <input type="text" class="form-control" name="name" id="section_name" required="required"/>
+ </div>
+ </div>
+ </form>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/website_slides/static/src/xml/slide_quiz.xml b/addons/website_slides/static/src/xml/slide_quiz.xml
new file mode 100644
index 00000000..aa7bcc3f
--- /dev/null
+++ b/addons/website_slides/static/src/xml/slide_quiz.xml
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+ <t t-name="slide.slide.quiz">
+ <div class="o_wslides_fs_quiz_container o_wslides_wrap h-100 w-100 overflow-auto pb-5">
+ <div class="container">
+
+ <div t-foreach="widget.quiz.questions" t-as="question"
+ t-attf-class="o_wslides_js_lesson_quiz_question mt-3 mb-4 #{widget.slide.completed ? 'completed-disabled' : ''}"
+ t-att-data-question-id="question.id" t-att-data-title="question.question">
+ <div class="h4">
+ <small class="text-muted"><span t-esc="question_index+1"/>. </small> <span t-esc="question.question"/>
+ </div>
+ <div class="list-group">
+ <t t-foreach="question.answer_ids" t-as="answer">
+ <a t-att-data-answer-id="answer.id" href="#"
+ t-att-data-text="answer.text_value"
+ t-attf-class="o_wslides_quiz_answer list-group-item d-flex align-items-center list-group-item-action #{widget.slide.completed &amp;&amp; answer.is_correct ? 'list-group-item-success' : '' }">
+
+ <label class="my-0 d-flex align-items-center justify-content-center mr-2">
+ <input type="radio"
+ t-att-name="question.id"
+ t-att-value="answer.id"
+ class="d-none"/>
+ <i t-att-class="'fa fa-circle text-400' + (!(widget.slide.completed &amp;&amp; answer.is_correct) ? '' : ' d-none')"></i>
+ <i class="fa fa-times-circle text-danger d-none"></i>
+ <i t-att-class="'fa fa-check-circle text-success' + (widget.slide.completed &amp;&amp; answer.is_correct ? '' : ' d-none')"></i>
+ </label>
+ <span t-esc="answer.text_value"/>
+ </a>
+ </t>
+ <div class="o_wslides_quiz_answer_info list-group-item list-group-item-info d-none">
+ <i class="fa fa-info-circle"/>
+ <span class="o_wslides_quiz_answer_comment"/>
+ </div>
+ </div>
+ </div>
+ <div t-if="!widget.slide.completed" class="o_wslides_js_lesson_quiz_validation border-top pt-3"/>
+ <div t-else="" class="row">
+ <div class="o_wslides_js_lesson_quiz_validation col py-2 bg-100 mb-2 border-bottom"/>
+ </div>
+ </div>
+ </div>
+ </t>
+
+ <t t-name="slide.slide.quiz.validation">
+ <div id="validation">
+ <div t-if="!widget.isMember">
+ <div class="o_wslides_join_course alert alert-info d-flex align-items-center justify-content-between">
+ <div t-if="widget.channel.channelEnroll == 'invite'">
+ <b>This course is private.
+ <span t-if="widget.publicUser">
+ Please
+ <a t-att-href="'/web/login?redirect=' + widget.redirectURL" class="font-weight-bold">
+ sign in
+ </a>
+ to enroll.
+ </span>
+ <a t-else="" href="#" class="font-weight-bold o_wslides_js_channel_enroll"
+ t-att-data-channel-id="widget.channel.channelId">
+ <span t-if="widget.channel.channelRequestedAccess" class="text-success">
+ Responsible already contacted.
+ </span>
+ <span t-else="">
+ Contact the responsible to enroll.
+ </span>
+ </a>
+ </b>
+ <span class="my-0 h4">
+ <span title="Succeed and gain karma" aria-label="Succeed and gain karma" class="badge badge-pill badge-warning text-white font-weight-bold ml-3 px-2 py-1">
+ + <t t-esc="widget.quiz.quizKarmaGain"/> XP
+ </span>
+ </span>
+ </div>
+ <div t-else="" class="w-100">
+ <b class="h5 mb-0 o_wslides_quiz_join_course_message">
+ <span t-if="widget.channel.channelEnroll == 'public'">
+ <t t-if="widget.publicUser">
+ Sign in and join the course to verify your answers!
+ </t>
+ <t t-else="">
+ Join the course to take the quiz and verify your answers!
+ </t>
+ </span>
+ </b>
+ <span class="my-0 h4">
+ <span title="Succeed and gain karma" aria-label="Succeed and gain karma" class="badge badge-pill badge-warning text-white font-weight-bold ml-3 px-2 py-1">
+ + <t t-esc="widget.quiz.quizKarmaGain"/> XP
+ </span>
+ </span>
+ <div class="o_wslides_join_course_widget float-right"/>
+ </div>
+ </div>
+ <span t-if="widget.publicUser &amp;&amp; widget.channel.signupAllowed" class="d-block mt-2">
+ <span>Don't have an account ?</span>
+ <a class="font-weight-bold" t-att-href="'/web/signup?redirect=' + widget.url">Sign Up !</a>
+ </span>
+ </div>
+ <div t-else="" class="d-md-flex align-items-center justify-content-between">
+ <div t-att-class="'d-flex align-items-center' + (widget.slide.completed ? ' alert alert-success my-0 py-1 px-3' : '')">
+ <button t-if="! widget.slide.completed" role="button" title="Check answers" aria-label="Check answers"
+ class="btn btn-primary text-uppercase font-weight-bold o_wslides_js_lesson_quiz_submit">Check your answers</button>
+ <b t-else="" class="my-0 h5">Done !</b>
+ <span class="my-0 h5" style="line-height: 1">
+ <span role="button" title="Succeed and gain karma" aria-label="Succeed and gain karma" class="badge badge-pill badge-warning text-white font-weight-bold ml-3 px-2">
+ + <t t-if="!widget.slide.completed" t-esc="widget.quiz.quizKarmaGain"/><t t-else="" t-esc="widget.quiz.quizKarmaWon"/> XP
+ </span>
+ </span>
+ </div>
+ <div class="ml-auto mt-3 mt-md-0">
+ <button t-if="widget.quiz.quizAttemptsCount > 0 &amp;&amp; widget.slide.channelCanUpload" class="btn btn-light border o_wslides_js_lesson_quiz_reset">
+ Reset
+ </button>
+ <button t-if="widget.slide.completed &amp;&amp; widget.slide.hasNext" class="btn btn-primary o_wslides_quiz_continue">
+ Continue <i class="fa fa-chevron-right ml-1"/>
+ </button>
+ </div>
+ </div>
+ </div>
+ </t>
+
+ <t t-name="slide.slide.quiz.finish">
+ <div>
+ <button type="button" class="o_wslides_quiz_modal_close_btn close position-absolute" data-dismiss="modal" aria-label="Close">&#215;</button>
+ <div class="o_wslides_gradient d-none d-md-flex flex-shrink-0">
+ <img class="o_wslides_quiz_modal_hero" src="/website_slides/static/src/img/quiz_modal_success.svg" alt=""/>
+ </div>
+ <div class="d-flex flex-column flex-grow-1 justify-content-between pl-md-5 p-3 overflow-auto">
+ <div>
+ <h1 class="o_wslides_quiz_modal_title mt-3 display-4 font-weight-bold">Amazing!</h1>
+ <div class="pb-3">
+ <h4 class="o_wslides_quiz_modal_xp_gained pb-2 d-flex fade">You gained <span class="badge badge-pill badge-success text-white font-weight-bold ml-2 mr-1"><t t-esc="widget.quiz.quizKarmaWon"/> XP</span> !</h4>
+ <div class="mt-5 mb-4">
+ <div class="progress">
+ <div class="progress-bar" role="progressbar" t-att-aria-valuenow="widget.quiz.rankProgress.previous_rank.progress" aria-valuemin="0" aria-valuemax="100"
+ t-attf-style="width: #{widget.quiz.rankProgress.previous_rank.progress}%"/>
+ <div class="progress-bar-tooltip" data-toggle="tooltip" data-placement="top" t-att-title="widget.quiz.rankProgress.new_rank.karma" />
+ </div>
+ <small class="float-left text-primary font-weight-bold o_wslides_quiz_modal_rank_lower_bound">
+ <t t-esc="widget.quiz.rankProgress.previous_rank.lower_bound"/>
+ </small>
+ <small t-if="widget.quiz.rankProgress.previous_rank.upper_bound" class="float-right font-weight-bold o_wslides_quiz_modal_rank_upper_bound">
+ <t t-esc="widget.quiz.rankProgress.previous_rank.upper_bound"/>
+ </small>
+ </div>
+ </div>
+ <div class="pb-3 o_wslides_quiz_modal_rank_motivational">
+ <t t-set="showLastRankDescription" t-value="widget.quiz.rankProgress.last_rank &amp;&amp; !widget.quiz.rankProgress.level_up" />
+ <t t-raw="showLastRankDescription ? widget.quiz.rankProgress.description : widget.quiz.rankProgress.previous_rank.motivational" />
+ </div>
+ </div>
+ <div class="o_wslides_quiz_modal_dismiss align-self-end d-none">
+ <t t-if="widget.quiz.rankProgress.level_up">
+ <a type="button" target="_blank" t-attf-href="/profile/user/#{widget.userId}" class="btn btn-light border">Check Profile</a>
+ </t>
+ <t t-if="widget.hasNext">
+ <button type="button" class="btn btn-light border o_wslides_quiz_modal_btn">Next <i class="fa fa-chevron-right"/></button>
+ </t>
+ <t t-else="">
+ <a type="button" href="/slides" class="btn btn-light border">End course</a>
+ </t>
+ </div>
+ </div>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/website_slides/static/src/xml/slide_quiz_create.xml b/addons/website_slides/static/src/xml/slide_quiz_create.xml
new file mode 100644
index 00000000..d9cf7de0
--- /dev/null
+++ b/addons/website_slides/static/src/xml/slide_quiz_create.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+
+ <t t-name="slide.quiz.question.input">
+ <div t-attf-class="o_wsildes_quiz_question_input mt-3 #{!widget.update ? 'col' : ''}" t-att-data-id="widget.question.id || ''">
+ <form class="mb-3">
+ <div class="o_wslides_quiz_question row align-items-center mr-0 mb-2">
+ <div class="input-group ml-3">
+ <div class="input-group-prepend">
+ <span class="input-group-text o_wslides_quiz_question_sequence"><t t-esc="widget.sequence"/></span>
+ </div>
+ <input type="text" name="question-name" class="form-control col-11" placeholder="Enter your question"
+ t-att-value="widget.question.text"/>
+ </div>
+ </div>
+ <div class="text-muted mb-2">
+ <span>Select the correct answer below :</span>
+ </div>
+ <div class="list-group">
+ <t t-if="widget.question.answers" >
+ <t t-foreach="widget.question.answers" t-as="answer" >
+ <t t-call="slide.quiz.answer.line"/>
+ </t>
+ </t>
+ <t t-else="" >
+ <t t-foreach="[1, 2, 3]">
+ <t t-call="slide.quiz.answer.line" />
+ </t>
+ </t>
+ </div>
+ </form>
+ <t t-if="widget.update" t-call="slide.quiz.update.buttons"/>
+ <t t-else="" t-call="slide.quiz.create.buttons"/>
+ </div>
+ </t>
+
+ <t t-name="slide.quiz.answer.line">
+ <div class="o_wslides_js_quiz_answer row align-items-center mb-1" t-attf-data-answer-id="#{answer ? answer.id : ''}" >
+ <div class="col ml-3 ml-md-5">
+ <div class="row align-items-center">
+ <div class="input-group col-9 p-0">
+ <input type="text" class="o_wslides_js_quiz_answer_value form-control" placeholder="Enter your answer" t-attf-value="#{answer ? answer.text_value : ''}"/>
+ <div class="input-group-append">
+ <div class="input-group-text">
+ <a class="o_wslides_js_quiz_is_correct" title="This is the correct answer">
+ <label class="my-0">
+ <input t-if="answer and answer.is_correct" class="d-none" type="radio" name="radio" checked="true" />
+ <input t-else="" class="d-none" type="radio" name="radio" />
+ <i class="o_wslides_js_quiz_icon fa fa-lg fa-check-circle-o text-muted" />
+ </label>
+ </a>
+ </div>
+ </div>
+ </div>
+ <i t-attf-class="o_wslides_js_quiz_icon o_wslides_js_quiz_comment_answer fa fa-lg fa-info-circle p-md-2 py-2 pl-2 pr-1 #{answer &amp;&amp; answer.comment ? 'text-primary' : 'text-muted'}" title="Add comment on this answer" />
+ <i class="o_wslides_js_quiz_icon o_wslides_js_quiz_add_answer fa fa-lg fa-plus-circle p-md-2 py-2 px-1 text-muted" title="Add an answer below this one" />
+ <i class="o_wslides_js_quiz_icon o_wslides_js_quiz_remove_answer fa fa-lg fa-trash-o p-md-2 py-2 px-1 text-muted" title="Remove this answer" />
+ </div>
+ <div class="o_wslides_js_quiz_answer_comment row align-items-center d-none">
+ <input type="text" class="form-control col-8 offset-1 mt-1" placeholder="This is the correct answer, congratulations"
+ t-attf-value="#{answer ? answer.comment : ''}" />
+ <i class="o_wslides_js_quiz_icon o_wslides_js_quiz_remove_answer_comment fa fa-lg fa-trash-o p-2 text-muted" title="Remove the answer comment" />
+ </div>
+ </div>
+ </div>
+ </t>
+
+ <t t-name="slide.quiz.create.buttons">
+ <div>
+ <a class="o_wslides_js_quiz_validate_question btn btn-primary text-white border" role="button">
+ <span>Save</span>
+ </a>
+ <a class="o_wslides_js_quiz_cancel_question btn btn-light border" role="button">
+ <span>Cancel</span>
+ </a>
+ </div>
+ </t>
+
+ <t t-name="slide.quiz.update.buttons">
+ <a class="o_wslides_js_quiz_validate_question o_wslides_js_quiz_update btn btn-primary text-white border" role="button">
+ <span>Update</span>
+ </a>
+ <a class="o_wslides_js_quiz_cancel_question btn btn-light border" role="button">
+ <span>Cancel</span>
+ </a>
+ </t>
+
+ <t t-name="slide.quiz.confirm.deletion">
+ <div>Are you sure you want to delete this question : <strong t-esc="widget.questionTitle"/> ?</div>
+ </t>
+
+</templates>
diff --git a/addons/website_slides/static/src/xml/website_slides_channel.xml b/addons/website_slides/static/src/xml/website_slides_channel.xml
new file mode 100644
index 00000000..80f02148
--- /dev/null
+++ b/addons/website_slides/static/src/xml/website_slides_channel.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<templates xml:space="preserve">
+
+ <t t-name="website.slide.channel.create">
+ <div>
+ <form action="/slides/channel/add" method="POST" id="slide_channel_add_form">
+ <input type="hidden" name="csrf_token" t-att-value="csrf_token"/>
+ <div class="form-group">
+ <label for="title" class="col-form-label">Title</label>
+ <input type="text" class="form-control" name="name" id="title" placeholder="Computer Science for kids" required="1"/>
+ <p id="title-required" class="text-danger mt-1 mb-0 d-none">Please fill in this field</p>
+ </div>
+ <div class="form-group">
+ <label for="tag_ids" class="col-form-label">Tags</label>
+ <input type="text" class="form-control" name="tag_ids" id="tag_ids" placeholder="Tags"/>
+ </div>
+ <label for="channel_type">Choose a layout</label>
+ <div class="form-row">
+ <div class="form-group col-6">
+ <div class="form-check px-0">
+ <input class="form-check-input d-none" type="radio" name="channel_type" id="channel_type1" value="training" checked="checked"/>
+ <label for="channel_type1">
+ <img class="w-100" src="/website_slides/static/src/img/channel-training-layout.png" alt="Training Layout"/>
+ </label>
+ </div>
+ </div>
+ <div class="form-group col-6">
+ <div class="form-check px-0">
+ <input class="form-check-input d-none" type="radio" name="channel_type" id="channel_type2" value="documentation"/>
+ <label for="channel_type2">
+ <img class="w-100" src="/website_slides/static/src/img/channel-documentation-layout.png" alt="Documentation Layout"/>
+ </label>
+ </div>
+ </div>
+ </div>
+ <div class="form-group">
+ <label for="title">Description</label>
+ <textarea rows="2" class="form-control" name="description" id="description"
+ placeholder="Common tasks for a computer scientist is asking the right questions and answering
+ questions. In this course, you'll study those topics with activities about mathematics, science and logic." />
+ </div>
+ <div class="form-group">
+ <label id="communication-label">Review</label>
+ <div class="o_wslide_channel_communication_type">
+ <div class="form-check">
+ <input class="form-check-input" type="checkbox" id="allow_comment" name="allow_comment" checked="checked"/>
+ <span class="form-check-label" for="allow_comment">Allow students to review your course</span>
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/website_slides/static/src/xml/website_slides_channel_tag.xml b/addons/website_slides/static/src/xml/website_slides_channel_tag.xml
new file mode 100644
index 00000000..081032e0
--- /dev/null
+++ b/addons/website_slides/static/src/xml/website_slides_channel_tag.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<templates xml:space="preserve">
+
+ <t t-name="website.slides.tag.add">
+ <div class="form-group">
+ <form action="/slides/channel/tag/add" method="POST" id="slides_channel_tag_add_form">
+ <div class="form-group">
+ <label for="tag_id" class="col-form-label">Tag</label>
+ <input class="form-control" id="tag_id" required="required"/>
+ </div>
+ <div class="form-group">
+ <label id="tag_group_label" for="tag_group_id" class="col-form-label">Tag Group</label>
+ <input class="form-control" id="tag_group_id"/>
+ </div>
+ </form>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/website_slides/static/src/xml/website_slides_fullscreen.xml b/addons/website_slides/static/src/xml/website_slides_fullscreen.xml
new file mode 100644
index 00000000..ceebb9d2
--- /dev/null
+++ b/addons/website_slides/static/src/xml/website_slides_fullscreen.xml
@@ -0,0 +1,22 @@
+<templates id="template" xml:space="preserve">
+
+ <t t-name="website.slides.fullscreen.content">
+ <t t-if="_.contains(['document', 'presentation'], widget.get('slide').type)">
+ <div class="embed-responsive h-100">
+ <iframe t-att-src="widget.get('slide').embedUrl" class="o_wslides_iframe_viewer" allowFullScreen="true" frameborder="0"/>
+ </div>
+ </t>
+ <t t-if="widget.get('slide').type === 'infographic'">
+ <div class="o_wslides_fs_player w-100 h-100 overflow-auto d-flex align-items-start justify-content-center">
+ <img t-att-src="'/web/image/slide.slide/'+ widget.get('slide').id +'/image_1024'" class="img-fluid position-relative m-auto" alt="Slide image"/>
+ </div>
+ </t>
+ </t>
+
+ <t t-name="website.slides.fullscreen.video">
+ <div class="player embed-responsive embed-responsive-16by9 embed-responsive-item h-100">
+ <iframe t-att-id="'youtube-player' + widget.slide.id" t-att-src="widget.slide.embedUrl" allowFullScreen="true" frameborder="0" enablejsapi="1" autoplay="1" allow="autoplay"></iframe>
+ </div>
+ </t>
+
+</templates>
diff --git a/addons/website_slides/static/src/xml/website_slides_share.xml b/addons/website_slides/static/src/xml/website_slides_share.xml
new file mode 100644
index 00000000..6f7792fb
--- /dev/null
+++ b/addons/website_slides/static/src/xml/website_slides_share.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+
+ <t t-name="website.slide.share.modal">
+ <div>
+ <t t-call="website.slide.share.socialmedia"/>
+ </div>
+ </t>
+
+ <t t-name="website.slide.share.socialmedia">
+ <div class="row">
+ <div class="col-12 col-lg-6 mb-4">
+ <h5 class="mt-0 mb-2">Share on Social Networks</h5>
+ <div class="btn-group" role="group">
+ <a t-attf-href="https://www.facebook.com/sharer/sharer.php?u=#{window.location.href}" class="btn border bg-white o_wslides_js_social_share" social-key="facebook" aria-label="Share on Facebook" title="Share on Facebook"><i class="fa fa-facebook-square fa-fw"/></a>
+ <a t-attf-href="https://twitter.com/intent/tweet?text=#{widget.slide.name}&amp;url=#{window.location.href}" class="btn border bg-white o_wslides_js_social_share" social-key="twitter" aria-label="Share on Twitter" title="Share on Twitter"><i class="fa fa-twitter fa-fw"/></a>
+ <a t-attf-href="http://www.linkedin.com/sharing/share-offsite/?url=#{window.location.href}" social-key="linkedin" class="btn border bg-white o_wslides_js_social_share" aria-label="Share on LinkedIn" title="Share on LinkedIn"><i class="fa fa-linkedin fa-fw"/></a>
+ </div>
+ </div>
+ <div class="col-12 col-lg-6">
+ <h5 class="mt-0 mb-2">Share Link</h5>
+ <div class="input-group">
+ <input type="text" class="form-control o_wslides_js_share_link" t-att-value="window.location.href" readonly="readonly" onClick="this.select();" />
+ <div class="input-group-append">
+ <button class="btn btn-sm btn-primary o_clipboard_button" style="border-top-right-radius: 4px;border-bottom-right-radius: 4px;" >
+ <span class="fa fa-clipboard"> Copy Link</span>
+ </button>
+ </div>
+ </div>
+ </div>
+ <div t-attf-class="col-12 col-lg-6">
+ <t t-call="website.slide.share.email"/>
+ </div>
+ </div>
+ </t>
+
+ <t t-name="website.slide.share.email">
+ <h5 class="mt-4">Share by mail</h5>
+ <div t-if="!widget.session.is_website_user" class="form-inline">
+ <form class="form-group o_wslides_js_share_email" role="form">
+ <div class="input-group">
+ <input type="email" class="form-control" placeholder="your-friend@domain.com"/>
+ <span class="input-group-append">
+ <button class="btn btn-primary" type="button"
+ data-loading-text="Sending..."
+ t-attf-data-slide-id="#{widget.slide.id}"
+ style="border-top-right-radius: 4px;border-bottom-right-radius: 4px;">
+ <i class="fa fa-envelope-o"/> Send Email
+ </button>
+ </span>
+ </div>
+ </form>
+ </div>
+ <div t-if="widget.session.is_website_user" class="alert alert-info d-inline-block">
+ <p class="mb-0">Please <a t-attf-href="/web?redirect=#{window.location.href}" class="font-weight-bold"> login </a> to share this <t t-esc="widget.slide.type"/> by email.</p>
+ </div>
+ </t>
+
+</templates> \ No newline at end of file
diff --git a/addons/website_slides/static/src/xml/website_slides_unsubscribe.xml b/addons/website_slides/static/src/xml/website_slides_unsubscribe.xml
new file mode 100644
index 00000000..c27c2b89
--- /dev/null
+++ b/addons/website_slides/static/src/xml/website_slides_unsubscribe.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+
+ <t t-name="slides.course.unsubscribe.modal">
+ <div>
+ <div class="o_w_slide_unsubscribe_modal_container">
+ <t t-call="slides.course.unsubscribe.modal.subscription"/>
+ </div>
+ </div>
+ </t>
+
+ <t t-name="slides.course.unsubscribe.modal.subscription">
+ <form class="clearfix">
+ <div class="form-group row">
+ <div class="controls mt8 ml-3">
+ <input id="subscribed" name="subscribed" type="checkbox"/>
+ <label for="subscribed" class="col-form-label font-weight-normal">Be notified when a new content is added.</label>
+ </div>
+ </div>
+ </form>
+ </t>
+
+ <t t-name="slides.course.unsubscribe.modal.leave">
+ <p>Do you really want to leave the course?</p>
+ <p>All completed classes and earned karma will be lost.</p>
+ </t>
+
+</templates>
diff --git a/addons/website_slides/static/src/xml/website_slides_upload.xml b/addons/website_slides/static/src/xml/website_slides_upload.xml
new file mode 100644
index 00000000..c517b320
--- /dev/null
+++ b/addons/website_slides/static/src/xml/website_slides_upload.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+
+ <t t-name="website.slide.upload.modal">
+ <div>
+ <div class="o_w_slide_upload_modal_container">
+ <t t-call="website.slide.upload.modal.select"/>
+ </div>
+ </div>
+ </t>
+
+ <!--
+ Slide Type Selection template
+ -->
+ <t t-name="website.slide.upload.modal.select">
+ <div class="row p-1 mt-4">
+ <div t-foreach="widget.slide_type_data" t-as="slide_type" class="col-6 col-md-3">
+ <t t-set="type_data" t-value="widget.slide_type_data[slide_type]"/>
+
+ <a href="#" t-att-data-slide-type="slide_type"
+ class="content-type d-flex flex-column align-items-center mb-4 o_wslides_select_type btn rounded border text-600 p-3">
+ <i t-attf-class="fa #{type_data['icon']} mb-2 fa-3x"/>
+ <t t-esc="type_data['label']"/>
+ </a>
+ </div>
+ </div>
+ <t t-if="widget.modulesToInstall">
+ <t t-foreach="widget.modulesToInstall" t-as="module_info">
+ <a class="o_wslides_js_upload_install_button w-100 text-center mb-4 btn rounded border text-600 p-3"
+ href="#" t-att-title="module_info['name']"
+ t-att-data-module-id="module_info['id']">
+ <i class="fa fa-trophy"></i> <t t-esc="module_info['motivational']"/>
+ </a>
+ </t>
+ </t>
+ </t>
+
+ <!--
+ Uploading template
+ -->
+ <t t-name="website.slide.upload.modal.uploading">
+ <div class="text-center" role="status">
+ <div class="fa-3x">
+ <i class="fa fa-spinner fa-pulse"></i>
+ </div>
+ <h4>Uploading document ...</h4>
+ </div>
+ </t>
+
+ <!--
+ Import module template
+ -->
+ <t t-name="website.slide.upload.modal.import">
+ <p id="o_wslides_install_module_text"/>
+ </t>
+
+ <!--
+ Slide Type common form part template
+ -->
+ <t t-name="website.slide.upload.modal.common">
+ <div class="form-group">
+ <label for="name" class="col-form-label">Title</label>
+ <input id="name" name="name" placeholder="Title" class="form-control" required="required"/>
+ </div>
+ <div t-if="!widget.defaultCategoryID" class="form-group">
+ <label for="category_id" class="col-form-label">Section</label>
+ <input class="form-control" id="category_id"/>
+ </div>
+ <div class="form-group">
+ <label for="tag_ids" class="col-form-label">Tags</label>
+ <input id="tag_ids" name="tag_ids" type="hidden"/>
+ </div>
+ <div class="form-group">
+ <label for="duration" class="col-form-label">Duration</label>
+ <div class="input-group">
+ <input type="number" id="duration" min="0" name="duration" placeholder="Estimated slide completion time" class="form-control"/>
+ <div class="input-group-prepend">
+ <span class="input-group-text">Minutes</span>
+ </div>
+ </div>
+ </div>
+ </t>
+
+ <!--
+ Slide Type templates
+ -->
+ <t t-name="website.slide.upload.modal.presentation">
+ <div>
+ <form class="clearfix">
+ <div class="row">
+ <div id="o_wslides_js_slide_upload_left_column" class="col-md-6">
+ <div class="form-group">
+ <label for="upload" class="col-form-label">Choose a PDF or an Image</label>
+ <input id="upload" name="file" class="form-control h-100" accept="image/*,application/pdf" type="file" required="required"/>
+ </div>
+ <canvas id="data_canvas" class="d-none"></canvas>
+ <t t-call="website.slide.upload.modal.common"/>
+ </div>
+ <div id="o_wslides_js_slide_upload_preview_column" class="col-md-6">
+ <div class="img-thumbnail h-100">
+ <div class="o_slide_tutorial p-3">
+ <div class="h5">How to upload your PowerPoint Presentations or Word Documents?</div>
+ <div class="mx-3 my-4">Save your presentations or documents as PDF files and upload them.</div>
+ <div class="alert alert-warning" role="alert">
+ <i class="fa fa-info-circle pr-2"/>
+ Only JPG, PNG, PDF, files types are supported
+ </div>
+ </div>
+ <div class="o_slide_preview d-none">
+ <img src="/website_slides/static/src/img/document.png" id="slide-image" title="Content Preview" alt="Content Preview" class="img-fluid"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+ </t>
+
+ <t t-name="website.slide.upload.modal.webpage">
+ <div>
+ <form class="clearfix">
+ <div class="row">
+ <div id="o_wslides_js_slide_upload_left_column" class="col-md-6">
+ <canvas id="data_canvas" class="d-none"></canvas>
+ <t t-call="website.slide.upload.modal.common"/>
+ </div>
+ <div id="o_wslides_js_slide_upload_preview_column" class="col-md-6">
+ <div class="img-thumbnail h-100">
+ <div class="o_slide_tutorial p-3">
+ <div class="h5">How to create a Lesson as a Web Page?</div>
+ <div class="mx-3 my-4">First, create your lesson, then edit it with the website builder. You'll be able to drop building blocks on your page and edit them.</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+ </t>
+
+ <t t-name="website.slide.upload.modal.video">
+ <div>
+ <form class="clearfix">
+ <div class="row">
+ <div id="o_wslides_js_slide_upload_left_column" class="col-md-6">
+ <div class="form-group">
+ <label for="url" class="col-form-label">Youtube Link</label>
+ <input id="url" name="url" class="form-control" placeholder="Youtube Video URL" required="required"/>
+ </div>
+ <canvas id="data_canvas" class="d-none"></canvas>
+ <t t-call="website.slide.upload.modal.common"/>
+ </div>
+ <div id="o_wslides_js_slide_upload_preview_column" class="col-md-6">
+ <div class="img-thumbnail h-100">
+ <div class="o_slide_tutorial p-3">
+ <div class="h5">How to upload your videos ?</div>
+ <div class="mx-3 my-4">First, upload your videos on YouTube and mark them as <strong>unlisted</strong>. This way, they will be secured.</div>
+ <div class="mx-3 my-4">What does <strong>unlisted</strong> means? The YouTube "unlisted" means it is a video which can be viewed only by the users with the link to it. Your video will never come up in the search results nor on your channel.</div>
+ <div class="mx-3 my-4"><a href="https://support.google.com/youtube/answer/157177" target="_blank" >Change video privacy settings</a></div>
+ </div>
+ <div class="o_slide_preview d-none">
+ <img src="/website_slides/static/src/img/document.png" id="slide-image" title="Content Preview" alt="Content Preview" class="img-fluid"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+ </t>
+
+ <t t-name="website.slide.upload.quiz">
+ <div>
+ <form class="clearfix">
+ <div class="row">
+ <div id="o_wslides_js_slide_upload_left_column" class="col-md-6">
+ <canvas id="data_canvas" class="d-none"></canvas>
+ <t t-call="website.slide.upload.modal.common"/>
+ </div>
+ <div id="o_wslides_js_slide_upload_preview_column" class="col-md-6">
+ <div class="img-thumbnail h-100">
+ <div class="o_slide_tutorial p-3">
+ <div class="h5">Test your students with small Quizzes</div>
+ <div class="mx-3 my-4">With Quizzes you can keep your students focused and motivated by answering some questions and gaining some karma points</div>
+ <img src="/website_slides/static/src/img/onboarding-quiz.png" title="Quiz Demo Data" class="img-fluid"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+ </t>
+</templates>