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_meet/views | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/website_event_meet/views')
6 files changed, 455 insertions, 0 deletions
diff --git a/addons/website_event_meet/views/assets.xml b/addons/website_event_meet/views/assets.xml new file mode 100644 index 00000000..0d57557f --- /dev/null +++ b/addons/website_event_meet/views/assets.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <template id="assets_frontend" inherit_id="website.assets_frontend" name="Event Meet Assets"> + <xpath expr="." position="inside"> + <link href="/website_event_meet/static/src/scss/event_meet_templates.scss" rel="stylesheet" type="text/scss"/> + <script src="/website_event_meet/static/src/js/customize_options.js" type="text/javascript"/> + <script src="/website_event_meet/static/src/js/website_event_meeting_room.js" type="text/javascript"/> + <script src="/website_event_meet/static/src/js/website_event_create_meeting_room_button.js" type="text/javascript"/> + </xpath> + </template> +</odoo> diff --git a/addons/website_event_meet/views/event_event_views.xml b/addons/website_event_meet/views/event_event_views.xml new file mode 100644 index 00000000..498f64ac --- /dev/null +++ b/addons/website_event_meet/views/event_event_views.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo><data> + + <record id="event_event_view_form" model="ir.ui.view"> + <field name="name">event.event.view.form.inherit.meet</field> + <field name="model">event.event</field> + <field name="inherit_id" ref="website_event.event_event_view_form"/> + <field name="arch" type="xml"> + <xpath expr="//field[@name='is_published']" position="before"> + <button class="oe_stat_button" context="{'default_event_id': active_id, 'search_default_event_id': active_id}" icon="fa-comments-o" name="%(event_meeting_room_action)d" type="action"> + <field name="meeting_room_count" string="Rooms" widget="statinfo"/> + </button> + </xpath> + <xpath expr="//label[@for='community_menu']" position="attributes"> + <attribute name="invisible">0</attribute> + </xpath> + <xpath expr="//field[@name='community_menu']" position="attributes"> + <attribute name="invisible">0</attribute> + </xpath> + <xpath expr="//field[@name='community_menu']" position="after"> + <field name="meeting_room_allow_creation" invisible="1"/> + </xpath> + </field> + </record> + +</data></odoo> + diff --git a/addons/website_event_meet/views/event_meet_templates_list.xml b/addons/website_event_meet/views/event_meet_templates_list.xml new file mode 100644 index 00000000..a6b7d5b9 --- /dev/null +++ b/addons/website_event_meet/views/event_meet_templates_list.xml @@ -0,0 +1,180 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + +<template id="event_meet" name="Meeting Rooms"> + <t t-call="website_event.layout"> + <div class="o_wevent_online o_wevent_online_bg o_wemeet_index"> + <!-- Drag/Drop Area --> + <div id="oe_structure_website_event_location_1" class="oe_structure"/> + <!-- Content --> + <div class="o_wemeet_container container"> + <div class="row mb-5 mx-0"> + <t t-call="website_event_meet.community_main"/> + <t t-call="website_event_meet.community_aside"/> + </div> + </div> + <!-- Drag/Drop Area --> + <div id="oe_structure_website_event_location_2" class="oe_structure mb-5"/> + </div> + </t> +</template> + +<!-- ============================================================ --> +<!-- CONTENT: MAIN TEMPLATES --> +<!-- ============================================================ --> + +<!-- Meeting Rooms Main Display --> +<template id="community_main" name="Meeting Rooms: Main Display"> + <div class="col-12 col-md-8 pl-0 pr-0 pr-md-3 mt-3"> + <h2 class="d-flex flex-row justify-content-between"> + <span>Join a room</span> + <div class="dropdown"> + <a class="dropdown-toggle o-no-caret btn p-0" title="Languages Menu" + aria-label="Dropdown menu" data-display="static" data-toggle="dropdown" href="#" role="button"> + <span t-esc="current_lang.name if current_lang else 'All Languages'"/> ▼</a> + <div class="dropdown-menu" role="menu"> + <a class="dropdown-item" role="menuitem" t-attf-href="/event/#{slug(event)}/community">All Languages + </a> + <a class="dropdown-item" role="menuitem" t-as="language" t-attf-href="/event/#{slug(event)}/community?lang=#{language.id}" t-esc="language.name" t-foreach="available_languages"/> + </div> + </div> + </h2> + <hr class="mt-2 mb-3"/> + <p class="mt-">Choose a topic that interests you and start talking with the community. <br/> Don't forget to setup your camera and microphone.</p> + <div class="d-flex flex-column justify-content-start align-items-start"> + <t t-as="meeting_room" t-call="website_event_meet.meeting_room_card" t-foreach="meeting_rooms"> + <t t-set="meeting_room" t-value="meeting_room"/> + <t t-set="opened" t-value="int(meeting_room.id == open_room_id)"/> + </t> + <div t-if="not meeting_rooms" class="m-auto text-center text-muted"> + <h3 class="mt8">No Room Open</h3> + <p>Create one to get conversations going</p> + </div> + </div> + </div> +</template> + +<template id="meeting_room_card" name="Meeting Room Card"> + <div class="modal o_join_later_modal" t-attf-id="o_join_later_modal_#{meeting_room.id}" tabindex="-1" role="dialog" style="height: 400px; top:calc(50% - 200px);"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="mt-4 col-12 alert alert-warning text-center" role="alert"> + <nav class="navbar navbar-default"> + <div class="container-fluid"> + <div class="navbar-header"> + <div class="o_wevent_meeting_room_card_menu"></div> + </div> + </div> + </nav> + <button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button> + <t t-if="not event.is_done"> + <span>This room is not open right now!</span><br /> + Join us here on the + <strong itemprop="startDate" t-field="event.with_context(tz=event.date_tz).date_begin" t-options="{'format': 'medium'}"/> + to have a chat with us! + </t> + <t t-else=""> + Event <span t-esc="event.name" class="font-weight-bold"/> is over. + <br/> + <span>Join us next time to chat about <b t-esc="meeting_room.name"/>!</span> + </t> + </div> + + <div class="modal-body row"> + <div class="col-3"> + <div class="w-100" t-attf-style="background-image: #{json.loads(event.cover_properties).get('background-image')}; min-height: 5rem; background-size: cover;"/> + </div> + <div class="col"> + <h5 t-esc="meeting_room.name"/> + <div class="text-muted mb-2"><i class="fa fa-globe"/> <span t-esc="meeting_room.room_lang_id.name"/></div> + <span t-if="meeting_room.summary" t-raw="meeting_room.summary"/> + </div> + </div> + </div> + </div> + </div> + + <!-- Action to do when clicking on the card --> + <t t-if="event.is_ongoing or is_event_manager"> + <!--During the event or if event manager--> + <t t-set="meeting_room_href" t-value="'/event/' + slug(event) + '/meeting_room/' + slug(meeting_room)"/> + </t> + <t t-elif="not event.is_ongoing and not event.is_participating"> + <!--Pre-event, if not registered yet--> + <t t-set="meeting_room_href" t-value="'/event/' + slug(event) + '/register?from_room_id=%i' % meeting_room.id"/> + </t> + <t t-else=""> + <!--Pre-event, if registered but event not stared yet--> + <t t-set="meeting_room_href" t-value="'#'"/> + <t t-set="meeting_room_data_toggle" t-value="'modal'"/> + <t t-set="meeting_room_data_target" t-value="'#o_join_later_modal_%i' % meeting_room.id"/> + </t> + + <a t-if="is_event_manager or not meeting_room.room_is_full" + t-att-data-meeting-room-id="meeting_room.id" + t-att-data-open-room="opened" + t-att-data-is-event-manager="int(is_event_manager)" + t-attf-class="card o_wevent_meeting_room_card w-100 my-2 bg-light d-block text-decoration-none" + t-att-href="meeting_room_href" + t-att-data-toggle="meeting_room_data_toggle" + t-att-data-target="meeting_room_data_target"> + <div class="text-decoration-none w-100 h-100 p-3"> + <div class="o_wevent_meeting_room_corner_ribbon" t-if="meeting_room.room_is_full">Full</div> + <div class="d-flex flex-column"> + <div class="d-flex flex-row justify-content-between"> + <h4 class="text-break mw-75 text-uppercase" t-esc="meeting_room.name"/> + <div t-if="is_event_manager" class="w-25"> + <div class="dropdown float-right dropleft"> + <button class="btn py-0" data-toggle="dropdown"><h3 class="m-0">⋮</h3></button> + <div class="dropdown-menu"> + <div class="dropdown-item font-weight-bold disabled">Room Manager</div> + <button class="dropdown-item btn btn-danger o_wevent_meeting_room_duplicate" type="button">Duplicate</button> + <button class="dropdown-item btn btn-danger o_wevent_meeting_room_delete" type="button">Close</button> + </div> + </div> + <button t-attf-class="o_wevent_meeting_room_is_pinned float-right btn #{'o_wevent_meeting_room_pinned' if meeting_room.is_pinned else ''}"> + <i class="fa fa-thumb-tack"/> + </button> + </div> + </div> + <span class="text-muted" t-field="meeting_room.summary"/> + <div class="d-flex flex-row justify-content-between align-items-center"> + <span class="h6 m-0 row"> + <span t-esc="meeting_room.room_participant_count"/>&nbsp; + <span t-if="meeting_room.target_audience" class="text-uppercase" t-field="meeting_room.target_audience"/> + <span t-else="" class="text-uppercase">participant(s)</span> + </span> + <div class="d-inline border py-1 px-2 bg-secondary" t-esc="meeting_room.room_lang_id.name"/> + </div> + </div> + </div> + </a> +</template> + +<!-- ============================================================ --> +<!-- ASIDE: CREATE A ROOM --> +<!-- ============================================================ --> + +<template id="community_aside" name="Community: Aside"> + <div class="col-md-4 p-0 mt-3 o_wevent_community_aside"> + <div class="d-none d-md-block mb-3" t-if="event.meeting_room_allow_creation"> + <h2>Start a topic</h2> + <hr class="mt-2 mb-3"/> + <p>Want to create your own discussion room ?</p> + <a href="#" role="button" + class="btn btn-primary o_wevent_create_room_button" + t-if="event.is_ongoing or event.start_today or is_event_manager" + t-att-data-event-id="event.id" + t-att-data-default-lang-code="default_lang_code"> + <span>Create a Room</span> + </a> + <div t-else="" class="d-flex flex-column"> + <button disabled="disabled" class="btn btn-primary align-self-start">Create a Room</button> + Room creation will be available when event starts at + <span class="font-weight-bold" t-field="event.with_context(tz=event.date_tz).date_begin" t-options="{'format': 'medium'}"/> + </div> + </div> + </div> +</template> + +</odoo> diff --git a/addons/website_event_meet/views/event_meet_templates_page.xml b/addons/website_event_meet/views/event_meet_templates_page.xml new file mode 100644 index 00000000..158a8fdc --- /dev/null +++ b/addons/website_event_meet/views/event_meet_templates_page.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + +<template id="event_meet_main" name="Event Meet"> + <t t-set="no_header" t-value="option_widescreen"/> + <t t-set="no_footer" t-value="option_widescreen"/> + <t t-call="website_event.layout"> + <div class="o_wevent_online o_wevent_online_bg o_wemeet_index"> + <!-- Options --> + <t t-set="option_widescreen" t-value="option_widescreen or False"/> + <!-- Drag/Drop Area --> + <div id="oe_structure_wemeet_index_1" class="oe_structure"/> + <!-- Content --> + <div t-att-class="'o_wevent_online_page_container %s' % ('container pb-3' if not option_widescreen else 'pb-3')"> + <div class="row mb-5 mx-0"> + <t t-call="website_event_meet.meeting_room_aside"/> + <t t-call="website_event_meet.meeting_room_main"/> + </div> + </div> + <!-- Drag/Drop Area --> + <div id="oe_structure_wemeet_index_2" class="oe_structure"/> + </div> + </t> +</template> + +<!-- ============================================================ --> +<!-- CONTENT: MAIN TEMPLATES --> +<!-- ============================================================ --> + +<template id="meeting_room_main" name="Meeting Room: Main Content"> + <div t-att-class="'col-12 o_wevent_online_page_main o_wemeet_room_main bg-white p-0 %s' % ('col-md-9 col-lg-10' if option_widescreen else 'col-md-8 col-lg-9')"> + <!-- EVENT NOT STARTED ALERTS --> + <t t-if="not meeting_room.event_id.is_ongoing"> + <div t-if="meeting_room.event_id.is_done" class="alert alert-warning text-center"> + The event <span t-esc="meeting_room.event_id.name" class="font-weight-bold"/> is over. + <br/> + <span>Join us next time to chat about <b t-esc="meeting_room.name"/>!</span> + </div> + <div t-else="" class="alert alert-warning text-center"> + The event <span t-esc="meeting_room.event_id.name" class="font-weight-bold"/> + <span t-if="meeting_room.event_id.start_today"> + starts in + <span t-esc="meeting_room.event_id.start_remaining" + t-options="{'widget': 'duration', 'digital': True, 'unit': 'minute', 'round': 'minute'}"/>. + </span> + <span class="my-0" t-else="meeting_room.event_id.start_today"> + starts on + <span t-field="meeting_room.event_id.with_context(tz=meeting_room.event_id.date_tz).date_begin" + t-options="{'format': 'medium'}"/> (<t t-esc="meeting_room.event_id.date_tz"/>). + </span> + <br/> + <span>Join us there to chat about <b t-esc="meeting_room.name"/> !</span> + </div> + </t> + <!-- ROOM CONTENT --> + <div class="d-flex flex-column"> + <div t-if="meeting_room.room_is_full and not is_event_manager" class="alert alert-warning text-center"> + <span>Oops! This room is full !</span><br />Come back later to have a chat with us! + </div> + <div t-else="" class="d-flex flex-column"> + <div id="o_wemeet_jitsi_iframe"> + <div class="o_wjitsi_chat_room_loading position-absolute w-100 text-center text-muted"> + <i class="fa fa-spin fa-spinner mr-3"/> + <span>Loading your room...</span> + </div> + </div> + <div class="d-flex flex-row-reverse"> + <t t-call="website_jitsi.chat_room_join_button"> + <t t-set="_classes" t-value="'d-none'"/> + <t t-set="room_name" t-value="meeting_room.room_name"/> + <t t-set="chat_room_id" t-value="meeting_room.chat_room_id.id"/> + <t t-set="auto_open" t-value="1"/> + <t t-set="attach_to" t-value="'#o_wemeet_jitsi_iframe'"/> + <t t-set="max_capacity" t-value="meeting_room.room_max_capacity"/> + <t t-set="check_full" t-value="int(not is_event_manager)"/> + <t t-set="default_username" t-value="default_username"/> + <t t-set="jitsi_server_domain" t-value="meeting_room.chat_room_id.jitsi_server_domain"/> + </t> + </div> + </div> + </div> + <!-- ROOM DESCRIPTION --> + <div class="mx-3"> + <span class="h5 d-inline-block mt-3 mb-1" t-esc="meeting_room.name"/> + <br/> + <span class="text-muted">A chat among <span class="font-weight-bold" t-esc="meeting_room.target_audience"/></span> + </div> + <hr class="mt-2 mb-0"/> + <div t-field="meeting_room.summary" class="my-2 mx-3 oe_no_empty"/> + </div> +</template> + +<!-- ============================================================ --> +<!-- ASIDE: CONTROL PANEL --> +<!-- ============================================================ --> + +<template id="meeting_room_aside" name="Meeting Room: Aside"> + <div t-att-class="'col-12 pl-0 pr-0 pr-md-3 o_wevent_online_page_aside %s' % ('col-md-3 col-lg-2' if option_widescreen else 'col-md-4 col-lg-3')"> + <div class="bg-white o_wevent_online_page_aside_content"> + <div class="d-flex align-items-center justify-content-between mx-2 py-1"> + <span class="h5 mb-0 pt-0 pt-md-3 pb-0 pb-md-2">Other Rooms</span> + <a href="#collapse_meet_room_aside" data-toggle="collapse" class="d-lg-none p-2 text-decoration-none o_wevent_online_page_aside_collapse collapsed"> + <i class="fa fa-chevron-down d-lg-none"/> + </a> + </div> + <ul id="collapse_meet_room_aside" class="list-unstyled collapse d-lg-block mb-0"> + <li t-foreach="meeting_rooms_other" t-as="meeting_room_other"> + <a class="d-block w-100 h-100 px-2 pt-2 pb-1 text-decoration-none" + t-att-href="'/event/%s/meeting_room/%s' % (slug(event), slug(meeting_room_other))"> + <div class="flex-grow-1 mw-100"> + <div class="text-truncate" t-esc="meeting_room_other.name"/> + <span class="text-muted" t-esc="meeting_room_other.summary"></span> + <div class="d-flex justify-content-between align-items-center"> + <div class="text-muted"> + <b>&#9900;&nbsp;</b> + <small><t t-esc="meeting_room_other.room_participant_count"/> <t t-esc="meeting_room_other.target_audience"/></small> + </div> + <small t-if="meeting_room_other.room_lang_id" class="text-muted"><i class="fa fa-globe"/> <t t-esc="meeting_room_other.room_lang_id.name"/></small> + </div> + </div> + </a> + </li> + </ul> + </div> + </div> +</template> + +</odoo> diff --git a/addons/website_event_meet/views/event_meeting_room_views.xml b/addons/website_event_meet/views/event_meeting_room_views.xml new file mode 100644 index 00000000..c7489ccb --- /dev/null +++ b/addons/website_event_meet/views/event_meeting_room_views.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<odoo> + <record id="website_event_meet.event_meeting_room_action" model="ir.actions.act_window"> + <field name="name">Meeting Room</field> + <field name="res_model">event.meeting.room</field> + <field name="view_mode">tree,form</field> + </record> + <record id="event_meeting_room_view_search" model="ir.ui.view"> + <field name="name">event.meeting.room.search</field> + <field name="model">event.meeting.room</field> + <field name="arch" type="xml"> + <search string="Meeting Room"> + <field name="event_id"/> + </search> + </field> + </record> + <record id="event_meeting_room_view_form" model="ir.ui.view"> + <field name="name">event.meeting.room.form</field> + <field name="model">event.meeting.room</field> + <field name="arch" type="xml"> + <form string="Meeting Room"> + <sheet> + <div class="oe_button_box" name="button_box"> + <field name="website_url" invisible="1"/> + <field name="is_published" widget="website_redirect_button"/> + </div> + <label for="name"/> + <h1> + <field name="name" placeholder="e.g. Finance"/> + </h1> + <group> + <group> + <field name="event_id"/> + <field name="summary" placeholder="e.g. Let's talk about Corporate Finance"/> + <field name="target_audience" placeholder="e.g. Accountants"/> + <field name="is_pinned"/> + </group> + <group> + <field name="chat_room_id" required="0"/> + <field name="room_participant_count" readonly="1"/> + <field name="room_max_capacity" widget="radio" options="{'horizontal': true}"/> + <field name="room_lang_id" options="{'no_create': True}"/> + </group> + </group> + <notebook> + <page name="Reporting" string="Reporting"> + <group> + <field name="room_last_activity"/> + <field name="room_max_participant_reached"/> + </group> + </page> + </notebook> + </sheet> + </form> + </field> + </record> + <record id="event_meeting_room_view_tree" model="ir.ui.view"> + <field name="name">event.meeting.room.tree</field> + <field name="model">event.meeting.room</field> + <field name="arch" type="xml"> + <tree string="Meeting Room" multi_edit="1"> + <field name="name"/> + <field name="summary"/> + <field name="target_audience"/> + <field name="is_published"/> + <field name="is_pinned"/> + <field name="room_is_full" readonly="1"/> + <field name="room_participant_count" readonly="1"/> + <field name="room_max_capacity"/> + <field name="room_lang_id"/> + </tree> + </field> + </record> + <record id="event_meeting_room_view_search" model="ir.ui.view"> + <field name="name">event.meeting.room.search</field> + <field name="model">event.meeting.room</field> + <field name="arch" type="xml"> + <search> + <field name="name" string="Topic"/> + <field name="summary" string="Summary"/> + <field name="target_audience" string="Audience"/> + <field name="event_id" string="Event"/> + <filter domain="[('is_published', '=', False)]" name="filter_unpublished" string="Unpublished"/> + <group expand="0" string="Group By"> + <filter string="Event" name="groupby_event" domain="[]" context="{'group_by': 'event_id'}"/> + </group> + </search> + </field> + </record> +</odoo> diff --git a/addons/website_event_meet/views/event_type_views.xml b/addons/website_event_meet/views/event_type_views.xml new file mode 100644 index 00000000..0aa7478f --- /dev/null +++ b/addons/website_event_meet/views/event_type_views.xml @@ -0,0 +1,19 @@ +<?xml version="1.0"?> +<odoo><data> + <record id="event_type_view_form" model="ir.ui.view"> + <field name="name">event.type.view.form.inherit.meet</field> + <field name="model">event.type</field> + <field name="inherit_id" ref="website_event.event_type_view_form"/> + <field name="arch" type="xml"> + <xpath expr="//div[@id='community-menu']" position='after'> + <div class="row mt16" attrs="{'invisible': [('website_menu', '=', False)]}"> + <label class="col-lg-4" for="meeting_room_allow_creation"/> <field name="meeting_room_allow_creation"/> + </div> + </xpath> + <xpath expr="//div[@id='community-menu']" position="attributes"> + <attribute name="attrs">{'invisible': [('website_menu', '=', False)]}</attribute> + </xpath> + </field> + </record> + +</data></odoo> |
