diff options
Diffstat (limited to 'addons/website_slides/static/src/xml')
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 && 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 && 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 && 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 && 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 && widget.slide.channelCanUpload" class="btn btn-light border o_wslides_js_lesson_quiz_reset"> + Reset + </button> + <button t-if="widget.slide.completed && 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">×</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 && !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 && 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}&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> |
