File: website_slides_templates_lesson_fullscreen.xml

package info (click to toggle)
odoo 18.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 878,716 kB
  • sloc: javascript: 927,937; python: 685,670; xml: 388,524; sh: 1,033; sql: 415; makefile: 26
file content (206 lines) | stat: -rw-r--r-- 14,191 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<?xml version="1.0" ?>
<odoo><data>

<!-- Slide template for the fullscreen mode -->
<template id="slide_fullscreen" name="Fullscreen">
    <t t-set="head">
        <link rel="canonical" t-att-href="slide.website_url" />
    </t>
    <t t-call="website.layout">
        <div class="o_wslides_fs_main d-flex flex-column"
            t-att-data-channel-id="slide.channel_id.id"
            t-att-data-channel-enroll="slide.channel_id.enroll"
            t-att-data-signup-allowed="signup_allowed"
            t-att-data-session-answers="session_answers">

            <div class="o_wslides_slide_fs_header d-flex flex-shrink-0 text-white">
                <div class="d-flex">
                    <a class="o_wslides_fs_toggle_sidebar d-flex align-items-center px-3" href="#" title="Lessons">
                        <i class="fa fa-bars"/><span class="d-none d-md-inline-block ms-1">Lessons</span>
                    </a>
                    <a class="o_wslides_fs_review d-flex align-items-center" title="Reviews" t-if="slide.channel_id.allow_comment">
                        <t t-call="portal_rating.rating_stars_static_popup_composer">
                            <t t-set="rating_avg" t-value="rating_avg"/>
                            <t t-set="rating_total" t-value="rating_count"/>
                            <t t-set="object" t-value="channel"/>
                            <t t-set="token" t-value="channel.access_token"/>
                            <t t-set="hash" t-value="message_post_hash"/>
                            <t t-set="pid" t-value="message_post_pid"/>
                            <t t-set="default_message" t-value="last_message"/>
                            <t t-set="default_message_id" t-value="last_message_id"/>
                            <t t-set="default_rating_value" t-value="last_rating_value"/>
                            <t t-set="default_attachment_ids" t-value="last_message_attachment_ids"/>
                            <t t-set="force_submit_url" t-value="'/slides/mail/update_comment' if last_message_id else False"/>
                            <t t-set="disable_composer" t-value="not channel.can_review"/>
                            <t t-set="_link_btn_classes" t-value="'d-inline-block text-white fw-light shadow-none'"/>
                            <t t-set="icon" t-value="'fa fa-pencil'"/>
                            <t t-set="_text_classes" t-value="'d-none d-md-inline-block'"/>
                            <t t-set="hide_rating_avg" t-value="True"/>
                            <t t-set="is_fullscreen" t-value="True"/>
                        </t>
                    </a>
                </div>
                <div class="d-flex ms-auto">
                    <a class="o_wslides_fs_share d-flex align-items-center px-3" href="#" title="Share">
                        <i class="fa fa-share-alt"/>
                        <span class="d-none d-md-inline-block ms-2">Share</span>
                    </a>
                    <a class="d-flex align-items-center px-3 o_wslides_fs_exit_fullscreen" t-attf-href="/slides/slide/#{slug(slide)}" title="Exit Fullscreen">
                        <i class="fa fa-sign-out"/><span class="d-none d-md-inline-block ms-1">Exit Fullscreen</span>
                    </a>
                    <a class="d-flex align-items-center px-3" t-attf-href="/slides/#{slug(slide.channel_id)}" title="Back to course">
                        <i class="fa fa-home"/><span class="d-none d-md-inline-block ms-1">Back to course</span>
                    </a>
                </div>
            </div>

            <div class="o_wslides_fs_container d-flex position-relative overflow-hidden flex-grow-1">
                <div class="o_wslides_fs_content align-items-stretch justify-content-center d-flex flex-grow-1 order-2"></div>

                <div class="o_wslides_fs_sidebar o_wslides_fs_sidebar_hidden text-white flex-shrink-0 order-1">
                    <div class="o_wslides_fs_sidebar_content d-flex flex-column px-3 pt-3 h-100">
                        <div class="o_wslides_fs_sidebar_header mb-3">
                            <a class="h5 d-block mb-1" t-attf-href="/slides/#{slug(slide.channel_id)}">
                                <span t-field="slide.channel_id.name"/>
                            </a>
                            <div t-if="not is_public_user">
                                <span t-attf-class="o_wslides_channel_completion_completed badge text-bg-success #{'d-none' if not slide.channel_id.completed else ''}">
                                    <i class="fa fa-check"/> Completed
                                </span>
                                <div t-attf-class="o_wslides_channel_completion_progressbar #{'d-none' if slide.channel_id.completed else 'd-flex'} w-100 align-items-center">
                                    <div class="progress flex-grow-1 bg-black-50" style="height: 6px;">
                                        <div class="progress-bar" role="progressbar" t-attf-style="width: #{slide.channel_id.completion}%" t-att-aria-valuenow="slide.channel_id.completion" aria-valuemin="0" aria-valuemax="100" aria-label="Progress bar"></div>
                                    </div>
                                    <div class="ms-3 small">
                                        <span class="o_wslides_progress_percentage" t-esc="slide.channel_id.completion"/> %
                                    </div>
                                </div>
                            </div>
                        </div>
                        <ul class="mx-n3 list-unstyled my-0 pb-2 overflow-auto">
                            <t t-foreach="category_data" t-as="category">
                                <t t-if="category.get('slides')">
                                    <t t-call="website_slides.slide_fullscreen_sidebar_category">
                                        <t t-set="slides" t-value="category['slides']"/>
                                        <t t-set="current_slide" t-value="slide"/>
                                    </t>
                                </t>
                            </t>
                        </ul>
                    </div>
                    <a href="#" class="o_wslides_fs_toggle_sidebar d-md-none bg-black-50"/>
                </div>
            </div>
        </div>
    </t>
</template>


<template id="slide_fullscreen_sidebar_category" name="Slides category template for fullscreen view side bar">
    <t t-set="category_collapsed" t-value="category and category.get('is_collapsed')"/>
    <t t-if="category" t-set="category" t-value="category.get('category')"/>
    <li class="o_wslides_fs_sidebar_section py-2 px-3">
        <a t-if="category" class="text-uppercase text-500 py-1 small d-flex" t-attf-id="category-collapse-#{category.id if category else 0}"
            data-bs-toggle="collapse" role="button" t-att-aria-expanded="'true' if category_collapsed else 'false'"
            t-attf-href="#collapse-#{category.id if category else 0}" t-attf-aria-controls="collapse-#{category.id if category else 0}">
            <b t-field="category.name"/>
            <div class="flex-grow-1"/>
            <i class="fa fa-fw fa-caret-left" role="img"/>
            <i class="fa fa-fw fa-caret-down" role="img"/>
        </a>
        <ul t-attf-class="o_wslides_fs_sidebar_section_slides position-relative px-0 pb-1 my-0 mx-n3 collapse #{'show' if category_collapsed else ''}"
            t-attf-id="collapse-#{category.id if category else 0}">
            <t t-set="is_member" t-value="current_slide.channel_id.is_member"/>
            <t t-set="can_access_channel" t-value="is_member or current_slide.channel_id.can_publish"/>
            <t t-foreach="slides" t-as="slide">
                <t t-set="slide_completed" t-value="channel_progress[slide.id].get('completed')"/>
                <t t-set="use_slide_icon" t-value="True"/>
                <t t-set="can_access" t-value="can_access_channel or slide.is_preview"/>
                <t t-set="is_member" t-value="current_slide.channel_id.is_member"/>
                <t t-set="is_member_or_invited" t-value="is_member or current_slide.channel_id.is_member_invited"/>
                <li t-attf-class="o_wslides_fs_sidebar_list_item d-flex py-1 #{'active' if slide.id == current_slide.id else ''}"
                    t-att-data-id="slide.id"
                    t-att-data-can-access="can_access"
                    t-att-data-name="slide.name"
                    t-att-data-category="slide.slide_category"
                    t-att-data-video-source-type="slide.video_source_type"
                    t-att-data-slug="slug(slide)"
                    t-att-data-has-question="1 if slide.question_ids else 0"
                    t-att-data-is-quiz="0"
                    t-att-data-completed="slide_completed"
                    t-att-data-embed-code="slide.embed_code if slide.slide_category in ['video', 'document', 'infographic'] else False"
                    t-att-data-can-self-mark-completed="slide.can_self_mark_completed"
                    t-att-data-can-self-mark-uncompleted="slide.can_self_mark_uncompleted"
                    t-att-data-is-member="is_member"
                    t-att-data-is-member-or-invited="is_member_or_invited"
                    t-att-data-session-answers="session_answers"
                    t-att-data-website-share-url="slide.website_share_url"
                    t-att-data-email-sharing="bool(slide.channel_id.share_slide_template_id)">
                    <div class="ms-2 o_wslides_sidebar_content overflow-hidden">
                        <a t-if="can_access" class="d-block" href="#">
                            <div class="d-flex">
                                <t t-if="is_member" t-call="website_slides.slide_sidebar_done_button"/>
                                <i t-else="" t-attf-class="fa #{slide.slide_icon_class} me-2"/>
                                <div class="o_wslides_fs_slide_name text-truncate" t-esc="slide.name"/>
                            </div>
                        </a>
                        <span t-else="" class="d-block" href="#">
                            <div class="d-flex">
                                <t t-if="is_member" t-call="website_slides.slide_sidebar_done_button"/>
                                <i t-else="" t-attf-class="fa #{slide.slide_icon_class} me-2 text-600"/>
                                <div class="o_wslides_fs_slide_name text-600 text-truncate" t-esc="slide.name"/>
                            </div>
                        </span>
                        <ul class="list-unstyled w-100 small fw-light" t-if="slide.sudo().slide_resource_ids or (slide.question_ids and not slide.slide_category =='quiz')" >
                            <t t-if="can_access_channel" t-foreach="slide.slide_resource_ids" t-as="resource">
                                <li class="ps-1 mb-1">
                                    <a t-if="resource.resource_type == 'url'" class="o_wslides_fs_slide_link" t-att-href="resource.link" target="_blank">
                                        <i class="fa fa-link me-2"/><span t-esc="resource.name"/>
                                    </a>
                                    <a t-else="" class="o_wslides_fs_slide_link ps-0" t-att-href="resource.download_url">
                                        <i class="fa fa-download me-2"/><span t-esc="resource.name"/>
                                    </a>
                                </li>
                            </t>
                            <div t-else="" class="o_wslides_js_course_join o_wslides_no_access ps-0">
                                <li t-if="slide.channel_id.enroll == 'public' or (slide.channel_id.enroll == 'invite' and slide.channel_id.is_member_invited)"
                                    class="o_wslides_fs_slide_link mb-1">
                                    <i class="fa fa-download me-1"/>
                                    <t t-call="website_slides.join_course_link">
                                        <t t-set="for_resources" t-value="1"/>
                                    </t>
                                </li>
                            </div>
                            <li class="o_wslides_fs_sidebar_list_item ps-0 mb-1" t-if="slide.question_ids and not slide.slide_category == 'quiz'"
                                t-att-data-id="slide.id"
                                t-att-data-can-access="can_access"
                                t-att-data-video-source-type="slide.video_source_type"
                                t-att-data-name="slide.name"
                                t-att-data-category="slide.slide_category"
                                t-att-data-slug="slug(slide)"
                                t-att-data-has-question="1 if slide.question_ids else 0"
                                t-att-data-is-quiz="1"
                                t-att-data-completed="slide_completed"
                                t-att-data-can-self-mark-completed="slide.can_self_mark_completed"
                                t-att-data-can-self-mark-uncompleted="slide.can_self_mark_uncompleted"
                                t-att-data-is-member="is_member"
                                t-att-data-is-member-or-invited="is_member_or_invited"
                                t-att-data-session-answers="session_answers"
                                t-att-data-website-share-url="slide.website_share_url">
                                <a t-if="can_access" class="o_wslides_fs_slide_quiz o_wslides_fs_slide_name" href="#" t-att-index="i">
                                    <i class="fa fa-flag-checkered text-warning"/>Quiz
                                </a>
                                <span t-else="" class="text-600">
                                    <i class="fa fa-flag-checkered text-warning"/>Quiz
                                </span>
                            </li>
                        </ul>
                    </div>
                </li>
            </t>
        </ul>
    </li>
</template>


</data></odoo>