[REM] *: drop o_cursor_default & o_cursor_pointer classes
Drop custom cursor classes in favor of Bootstrap default ones. Part of the overall v16 SCSS optimization/restyle, task-2704984. task-2918463 Part-of: odoo/odoo#97051
This commit is contained in:
committed by
Pierre Paridans
parent
fe5a3a89fb
commit
bd2a1110a0
@@ -114,21 +114,21 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: model_terms:ir.ui.view,arch_db:hr.hr_departure_wizard_view_form
|
||||
msgid ""
|
||||
"<span class=\"o_form_label o_hr_form_label o_cursor_default\">Close "
|
||||
"<span class=\"o_form_label o_hr_form_label cursor-default\">Close "
|
||||
"Activities</span>"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model_terms:ir.ui.view,arch_db:hr.hr_departure_wizard_view_form
|
||||
msgid ""
|
||||
"<span class=\"o_form_label o_hr_form_label o_cursor_default\">Detailed "
|
||||
"<span class=\"o_form_label o_hr_form_label cursor-default\">Detailed "
|
||||
"Reason</span>"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model_terms:ir.ui.view,arch_db:hr.hr_departure_wizard_view_form
|
||||
msgid ""
|
||||
"<span class=\"o_form_label o_hr_form_label o_cursor_default\">HR Info</span>"
|
||||
"<span class=\"o_form_label o_hr_form_label cursor-default\">HR Info</span>"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
<group id="action">
|
||||
<!-- Override invisible="1" when inheriting -->
|
||||
<div class="o_td_label" id="activities_label" invisible="1">
|
||||
<span class="o_form_label o_hr_form_label o_cursor_default">Close Activities</span>
|
||||
<span class="o_form_label o_hr_form_label cursor-default">Close Activities</span>
|
||||
</div>
|
||||
<!-- Override invisible="1" when inheriting -->
|
||||
<div class="column" id="activities" invisible="1">
|
||||
</div>
|
||||
<separator colspan="2"/>
|
||||
<div class="o_td_label" id="label_info">
|
||||
<span class="o_form_label o_hr_form_label o_cursor_default">HR Info</span>
|
||||
<span class="o_form_label o_hr_form_label cursor-default">HR Info</span>
|
||||
</div>
|
||||
<div class="column" id="info">
|
||||
<div><field name="archive_private_address"/><label for="archive_private_address"/></div>
|
||||
@@ -31,7 +31,7 @@
|
||||
</group>
|
||||
</group>
|
||||
<div>
|
||||
<span class="o_form_label o_hr_form_label o_cursor_default">Detailed Reason</span>
|
||||
<span class="o_form_label o_hr_form_label cursor-default">Detailed Reason</span>
|
||||
<field name="departure_description"/>
|
||||
</div>
|
||||
</sheet>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<templates id="template" xml:space="preserve">
|
||||
|
||||
<t t-name="hr_resume_data_row">
|
||||
<tr class="o_data_row o_cursor_default" t-attf-class="o_data_row #{is_last? 'o_data_row_last' : ''}" t-att-data-id="id">
|
||||
<tr class="o_data_row cursor-default" t-attf-class="o_data_row #{is_last? 'o_data_row_last' : ''}" t-att-data-id="id">
|
||||
<t t-if="data.display_type === 'classic'">
|
||||
<td class="o_resume_timeline_cell position-relative pe-lg-2">
|
||||
<div class="rounded-circle bg-info position-relative"/>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<templates id="template" xml:space="preserve">
|
||||
|
||||
<t t-name="hr_skill_data_row">
|
||||
<tr class="o_data_row o_cursor_default" t-att-data-id="id">
|
||||
<tr class="o_data_row cursor-default" t-att-data-id="id">
|
||||
<td class="o_data_cell o_skill_cell w-100">
|
||||
<t t-esc="data.skill_id.data.display_name"/>
|
||||
</td>
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
<span class="o_AttachmentViewer_nameText text-truncate" t-esc="attachmentViewer.attachmentViewerViewable.displayName"/>
|
||||
</div>
|
||||
<div class="flex-grow-1"/>
|
||||
<div class="o_AttachmentViewer_buttonDownload o_AttachmentViewer_headerItem o_AttachmentViewer_headerItemButton d-flex align-items-center px-3 o_cursor_pointer" t-on-click="attachmentViewer.onClickDownload" role="button" title="Download">
|
||||
<div class="o_AttachmentViewer_buttonDownload o_AttachmentViewer_headerItem o_AttachmentViewer_headerItemButton d-flex align-items-center px-3 cursor-pointer" t-on-click="attachmentViewer.onClickDownload" role="button" title="Download">
|
||||
<i class="o_AttachmentViewer_headerItemButtonIcon fa fa-download fa-fw" t-att-class="{ 'o-hasLabel me-2': messaging.device.sizeClass > messaging.device.sizeClasses.MD }" role="img"/>
|
||||
<t t-if="messaging.device.sizeClass > messaging.device.sizeClasses.MD">
|
||||
<span>Download</span>
|
||||
</t>
|
||||
</div>
|
||||
<div class="o_AttachmentViewer_headerItem o_AttachmentViewer_headerItemButton o_AttachmentViewer_headerItemButtonClose d-flex align-items-center mb-0 px-3 h4 text-reset o_cursor_pointer" t-on-click="attachmentViewer.onClickClose" role="button" title="Close (Esc)" aria-label="Close">
|
||||
<div class="o_AttachmentViewer_headerItem o_AttachmentViewer_headerItemButton o_AttachmentViewer_headerItemButtonClose d-flex align-items-center mb-0 px-3 h4 text-reset cursor-pointer" t-on-click="attachmentViewer.onClickClose" role="button" title="Close (Esc)" aria-label="Close">
|
||||
<i class="fa fa-fw fa-times" role="img"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -78,7 +78,7 @@
|
||||
<div class="o_AttachmentViewer_toolbarButton btn btn-dark p-3 rounded-0" t-on-click="attachmentViewer.onClickPrint" title="Print" role="button">
|
||||
<i class="fa fa-fw fa-print" role="img"/>
|
||||
</div>
|
||||
<div class="o_AttachmentViewer_buttonDownload o_AttachmentViewer_toolbarButton btn btn-dark p-3 rounded-0 o_cursor_pointer" t-on-click="attachmentViewer.onClickDownload" title="Download" role="button">
|
||||
<div class="o_AttachmentViewer_buttonDownload o_AttachmentViewer_toolbarButton btn btn-dark p-3 rounded-0 cursor-pointer" t-on-click="attachmentViewer.onClickDownload" title="Download" role="button">
|
||||
<i class="fa fa-download fa-fw" role="img"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<div class="o_CallInviteRequestPopup d-flex flex-column m-2 p-5 border border-dark rounded-1 bg-900" t-attf-class="{{ className }}" t-ref="root">
|
||||
<t t-if="callInviteRequestPopup.thread.rtcInvitingSession">
|
||||
<div class="o_CallInviteRequestPopup_partnerInfo d-flex flex-column justify-content-around align-items-center text-nowrap">
|
||||
<img class="o_CallInviteRequestPopup_partnerInfoImage mb-2 rounded-circle o_cursor_pointer"
|
||||
<img class="o_CallInviteRequestPopup_partnerInfoImage mb-2 rounded-circle cursor-pointer"
|
||||
t-att-src="callInviteRequestPopup.thread.rtcInvitingSession.channelMember.avatarUrl"
|
||||
t-on-click="callInviteRequestPopup.onClickAvatar"
|
||||
alt="Avatar"/>
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
|
||||
<!-- Buttons -->
|
||||
<t t-if="callMainView.hasSidebarButton">
|
||||
<i t-if="callMainView.callView.isSidebarOpen" class="o_CallMainView_sidebarButton o_cursor_pointer position-absolute fa fa-arrow-right" title="Hide sidebar" t-on-click="callMainView.onClickHideSidebar"/>
|
||||
<i t-else="" class="o_CallMainView_sidebarButton o_cursor_pointer position-absolute fa fa-arrow-left" title="Show sidebar" t-on-click="callMainView.onClickShowSidebar"/>
|
||||
<i t-if="callMainView.callView.isSidebarOpen" class="o_CallMainView_sidebarButton cursor-pointer position-absolute fa fa-arrow-right" title="Hide sidebar" t-on-click="callMainView.onClickHideSidebar"/>
|
||||
<i t-else="" class="o_CallMainView_sidebarButton cursor-pointer position-absolute fa fa-arrow-left" title="Show sidebar" t-on-click="callMainView.onClickShowSidebar"/>
|
||||
</t>
|
||||
<t t-if="callMainView.showOverlay or !callMainView.isControllerFloating">
|
||||
<div class="o_CallMainView_controls d-flex justify-content-center w-100 pb-1" t-att-class="{ 'o-isFloating position-absolute bottom-0 pb-3': callMainView.isControllerFloating }">
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="o_CallOptionMenu d-flex flex-column" t-attf-class="{{ className }}" t-ref="root">
|
||||
<t t-if="callOptionMenu.callActionListView.channel.videoCount > 0">
|
||||
<div class="o_CallOptionMenu_button btn d-flex align-items-center border-0 rounded">
|
||||
<label class="o_CallOptionMenu_checkBoxLabel o_cursor_pointer d-flex align-items-center mb-0 text-800 fw-normal">
|
||||
<label class="o_CallOptionMenu_checkBoxLabel cursor-pointer d-flex align-items-center mb-0 text-800 fw-normal">
|
||||
<input class="o_CallOptionMenu_checkBox mx-2 p-1" type="checkbox" t-on-change="callOptionMenu.onChangeVideoFilterCheckbox" t-att-checked="callOptionMenu.callView.filterVideoGrid"/>
|
||||
<span class="o_CallOptionMenu_buttonText py-1 ps-1 text-truncate">Video only</span>
|
||||
</label>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<t t-name="mail.CallParticipantCard" owl="1">
|
||||
<t t-if="callParticipantCard">
|
||||
<div class="o_CallParticipantCard position-relative o_cursor_pointer d-flex flex-column align-items-center justify-content-center mh-100 mw-100 p-1 rounded-1"
|
||||
<div class="o_CallParticipantCard position-relative cursor-pointer d-flex flex-column align-items-center justify-content-center mh-100 mw-100 p-1 rounded-1"
|
||||
t-att-class="{
|
||||
'o-isTalking': !callParticipantCard.isMinimized and callParticipantCard.isTalking,
|
||||
'o-isInvitation opacity-50': !callParticipantCard.rtcSession,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<t t-name="mail.CallParticipantVideo" owl="1">
|
||||
<t t-if="callParticipantVideoView">
|
||||
<video class="o_CallParticipantVideo w-100 h-100 rounded-1 bg-black o_cursor_pointer"
|
||||
<video class="o_CallParticipantVideo w-100 h-100 rounded-1 bg-black cursor-pointer"
|
||||
t-attf-class="{{ className }}"
|
||||
playsinline="true"
|
||||
autoplay="true"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<t t-name="mail.CallSettingsMenu" owl="1">
|
||||
<div class="o_CallSettingsMenu d-flex flex-column ms-2 overflow-auto" t-attf-class="{{ className }}" t-ref="root">
|
||||
<div class="o_CallSettingsMenu_option d-flex align-items-center flex-wrap m-2 p-1">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 o_cursor_pointer" title="Input device" aria-label="Input device">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 cursor-pointer" title="Input device" aria-label="Input device">
|
||||
<span class="o_CallSettingsMenuoptionName me-2 text-truncate fw-bolder">Input device</span>
|
||||
<div>
|
||||
<select name="inputDevice" class="o_CallSettingsMenu_optionDeviceSelect form-select" t-att-value="messaging.userSetting.audioInputDeviceId" t-on-change="callSettingsMenu.onChangeSelectAudioInput">
|
||||
@@ -17,14 +17,14 @@
|
||||
</label>
|
||||
</div>
|
||||
<div class="o_CallSettingsMenu_option d-flex align-items-center flex-wrap m-2 p-1">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 o_cursor_pointer" title="Use Push-to-talk" aria-label="Use Push-to-talk">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 cursor-pointer" title="Use Push-to-talk" aria-label="Use Push-to-talk">
|
||||
<span class="o_CallSettingsMenu_optionName me-2 text-truncate fw-bolder">Use Push-to-talk</span>
|
||||
<input type="checkbox" aria-label="toggle push-to-talk" title="toggle push-to-talk" t-on-change="callSettingsMenu.onChangePushToTalk" t-att-checked="messaging.userSetting.usePushToTalk ? 'checked' : ''"/>
|
||||
</label>
|
||||
</div>
|
||||
<t t-if="messaging.userSetting.usePushToTalk">
|
||||
<div class="o_CallSettingsMenu_option d-flex align-items-center flex-wrap m-2 p-1">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 o_cursor_pointer" title="Push-to-talk key" aria-label="Push-to-talk key">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 cursor-pointer" title="Push-to-talk key" aria-label="Push-to-talk key">
|
||||
<span class="o_CallSettingsMenu_optionName me-2 text-truncate fw-bolder">Push-to-talk key</span>
|
||||
<span class="o_CallSettingsMenu_optionPushToTalkGroup d-flex">
|
||||
<t t-if="messaging.userSetting.pushToTalkKey">
|
||||
@@ -44,7 +44,7 @@
|
||||
</div>
|
||||
<div t-if="callSettingsMenu.isRegisteringKey">Press a key to register it as the push-to-talk shortcut</div>
|
||||
<div class="o_CallSettingsMenu_option d-flex align-items-center flex-wrap m-2 p-1">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 o_cursor_pointer" title="Delay after releasing push-to-talk" aria-label="Delay after releasing push-to-talk">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 cursor-pointer" title="Delay after releasing push-to-talk" aria-label="Delay after releasing push-to-talk">
|
||||
<span class="o_CallSettingsMenu_optionName me-2 text-truncate fw-bolder">Delay after releasing push-to-talk</span>
|
||||
<div class="o_CallSettingsMenu_optionInputGroup d-flex w-100">
|
||||
<input class="o_CallSettingsMenu_optionInputGroupInput" type="range" min="1" max="2000" step="1" t-att-value="messaging.userSetting.voiceActiveDuration" t-on-change="callSettingsMenu.onChangeDelay"/>
|
||||
@@ -55,7 +55,7 @@
|
||||
</t>
|
||||
<t t-else="">
|
||||
<div class="o_CallSettingsMenu_option d-flex align-items-center flex-wrap m-2 p-1">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 o_cursor_pointer" title="Minimum activity for voice detection" aria-label="Minimum activity for voice detection">
|
||||
<label class="o_CallSettingsMenu_optionLabel d-flex align-items-center flex-wrap mw-100 cursor-pointer" title="Minimum activity for voice detection" aria-label="Minimum activity for voice detection">
|
||||
<span class="o_CallSettingsMenu_optionName me-2 text-truncate fw-bolder">Minimum activity for voice detection</span>
|
||||
<div class="o_CallSettingsMenu_optionInputGroup d-flex w-100">
|
||||
<input class="o_CallSettingsMenu_optionInputGroupInput" type="range" min="0.001" max="1" step="0.001" t-att-value="messaging.userSetting.voiceActivationThreshold" t-on-change="callSettingsMenu.onChangeThreshold"/>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="mail.ChannelMember" owl="1">
|
||||
<div class="o_ChannelMember d-flex align-items-center mx-2 p-2" t-att-class="{'o_cursor_pointer': channelMemberView.hasOpenChat}" t-attf-class="{{ className }}" t-att-data-partner-id="channelMemberView.channelMember.persona.partner and channelMemberView.channelMember.persona.partner.id" t-att-title="channelMemberView.memberTitleText" t-on-click="channelMemberView.onClickMember" t-ref="root">
|
||||
<div class="o_ChannelMember d-flex align-items-center mx-2 p-2" t-att-class="{'cursor-pointer': channelMemberView.hasOpenChat}" t-attf-class="{{ className }}" t-att-data-partner-id="channelMemberView.channelMember.persona.partner and channelMemberView.channelMember.persona.partner.id" t-att-title="channelMemberView.memberTitleText" t-on-click="channelMemberView.onClickMember" t-ref="root">
|
||||
<div class="o_ChannelMember_avatarContainer position-relative flex-shrink-0">
|
||||
<img class="o_ChannelMember_avatar rounded-circle w-100 h-100" t-att-src="channelMemberView.channelMember.avatarUrl" alt="Avatar"/>
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
<t t-name="mail.ChatWindowHeader" owl="1">
|
||||
<t t-if="chatWindowHeaderView and chatWindow">
|
||||
<div class="o_ChatWindowHeader d-flex align-items-center text-white" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'o_cursor_pointer': !messaging.device.isSmall }" t-attf-class="{{ className }}" t-on-click="chatWindowHeaderView.onClick" t-ref="root">
|
||||
<div class="o_ChatWindowHeader d-flex align-items-center text-white" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'cursor-pointer': !messaging.device.isSmall }" t-attf-class="{{ className }}" t-on-click="chatWindowHeaderView.onClick" t-ref="root">
|
||||
<t t-if="chatWindow.hasCloseAsBackButton">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandBack o_ChatWindowHeader_commandClose o_cursor_pointer d-flex align-items-center h-100 px-3 py-0 me-2" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall }" t-on-click="chatWindow.onClickClose" title="Close conversation">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandBack o_ChatWindowHeader_commandClose cursor-pointer d-flex align-items-center h-100 px-3 py-0 me-2" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall }" t-on-click="chatWindow.onClickClose" title="Close conversation">
|
||||
<i class="fa fa-arrow-left"/>
|
||||
</div>
|
||||
</t>
|
||||
@@ -26,42 +26,42 @@
|
||||
<div class="flex-grow-1"/>
|
||||
<div class="o_ChatWindowHeader_item o_ChatWindowHeader_rightArea d-flex align-items-center h-100 ms-1 me-0 my-0" t-att-class="{'opacity-75 opacity-100-hover': !messaging.device.isSmall }">
|
||||
<t t-if="chatWindow.hasCallButtons">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandCamera o_cursor_pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" t-att-disabled="chatWindow.thread.hasPendingRtcRequest" t-on-click="chatWindow.onClickCamera" title="Start a Video Call">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandCamera cursor-pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" t-att-disabled="chatWindow.thread.hasPendingRtcRequest" t-on-click="chatWindow.onClickCamera" title="Start a Video Call">
|
||||
<i class="fa fa-video-camera"/>
|
||||
</div>
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandPhone o_cursor_pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" t-att-disabled="chatWindow.thread.hasPendingRtcRequest" t-on-click="chatWindow.onClickPhone" title="Start a Call">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandPhone cursor-pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" t-att-disabled="chatWindow.thread.hasPendingRtcRequest" t-on-click="chatWindow.onClickPhone" title="Start a Call">
|
||||
<i class="fa fa-phone"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="chatWindow.hasInviteFeature">
|
||||
<t t-if="!chatWindow.channelInvitationForm">
|
||||
<div class="o_ChatWindowHeader_command o_cursor_pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" title="Add users" t-on-click="chatWindow.onClickShowInviteForm">
|
||||
<div class="o_ChatWindowHeader_command cursor-pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" title="Add users" t-on-click="chatWindow.onClickShowInviteForm">
|
||||
<i class="fa fa-lg fa-user-plus"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="chatWindow.channelInvitationForm">
|
||||
<div class="o_ChatWindowHeader_command o_cursor_pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" title="Stop adding users" t-on-click="chatWindow.onClickHideInviteForm">
|
||||
<div class="o_ChatWindowHeader_command cursor-pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" title="Stop adding users" t-on-click="chatWindow.onClickHideInviteForm">
|
||||
<i class="fa fa-lg fa-user-plus"/>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
<t t-if="chatWindow.thread and chatWindow.thread.hasMemberListFeature and !chatWindow.isMemberListOpened">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandShowMemberList o_cursor_pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall}" title="Show Member List" t-on-click="chatWindow.onClickShowMemberList">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandShowMemberList cursor-pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall}" title="Show Member List" t-on-click="chatWindow.onClickShowMemberList">
|
||||
<i class="fa fa-users"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="chatWindow.thread and chatWindow.thread.hasMemberListFeature and chatWindow.isMemberListOpened">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandHideMemberList o_cursor_pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" title="Hide Member List" t-on-click="chatWindow.onClickHideMemberList">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandHideMemberList cursor-pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" title="Hide Member List" t-on-click="chatWindow.onClickHideMemberList">
|
||||
<i class="fa fa-users"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="chatWindow.isExpandable">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandExpand o_cursor_pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" t-on-click="chatWindow.onClickExpand" title="Open in Discuss">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandExpand cursor-pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" t-on-click="chatWindow.onClickExpand" title="Open in Discuss">
|
||||
<i class="fa fa-expand"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="!chatWindow.hasCloseAsBackButton">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandClose o_cursor_pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" t-on-click="chatWindow.onClickClose" title="Close chat window">
|
||||
<div class="o_ChatWindowHeader_command o_ChatWindowHeader_commandClose cursor-pointer d-flex align-items-center h-100 px-3 py-0 m-0" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall, 'opacity-50 opacity-100-hover': !messaging.device.isSmall }" t-on-click="chatWindow.onClickClose" title="Close chat window">
|
||||
<i class="fa fa-close"/>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="mail.ChatWindowHiddenMenu" owl="1">
|
||||
<div class="o_ChatWindowHiddenMenu dropup position-fixed bottom-0 align-items-stretch d-flex px-2 py-1 rounded-top-3 bg-900 o_cursor_pointer" t-attf-class="{{ className }}" t-ref="root">
|
||||
<div class="o_ChatWindowHiddenMenu dropup position-fixed bottom-0 align-items-stretch d-flex px-2 py-1 rounded-top-3 bg-900 cursor-pointer" t-attf-class="{{ className }}" t-ref="root">
|
||||
<div class="o_ChatWindowHiddenMenu_dropdownToggle dropdown-toggle justify-content-center align-items-center flex-grow-1 d-flex mw-100" t-att-class="{ 'show opacity-50': messaging.chatWindowManager.isHiddenMenuOpen }" t-on-click="messaging.chatWindowManager.onClickHiddenMenuToggler">
|
||||
<div class="o_ChatWindowHiddenMenu_dropdownToggleIcon o_ChatWindowHiddenMenu_dropdownToggleItem me-1 fa fa-comments-o"/>
|
||||
<div class="o_ChatWindowHiddenMenu_dropdownToggleItem o_ChatWindowHiddenMenu_windowCounter mx-1 text-truncate">
|
||||
|
||||
@@ -30,10 +30,10 @@
|
||||
<t t-if="composerView.hasHeader">
|
||||
<div class="o_Composer_coreHeader text-truncate" t-att-class="{ 'small p-2': composerView.isInChatWindow or composerView.isInDiscuss }">
|
||||
<t t-if="composerView.threadView and composerView.threadView.replyingToMessageView">
|
||||
<span class="o_cursor_pointer" t-on-click="composerView.onClickReplyingToMessage">
|
||||
<span class="cursor-pointer" t-on-click="composerView.onClickReplyingToMessage">
|
||||
Replying to <b t-esc="composerView.threadView.replyingToMessageView.message.authorName"/>
|
||||
</span>
|
||||
<i t-if="composerView.threadView.thread !== messaging.inbox" class="o_Composer_cancelReply fa fa-lg fa-times-circle rounded-circle p-0 ms-1 o_cursor_pointer" title="Stop replying" t-on-click="composerView.onClickStopReplying"/>
|
||||
<i t-if="composerView.threadView.thread !== messaging.inbox" class="o_Composer_cancelReply fa fa-lg fa-times-circle rounded-circle p-0 ms-1 cursor-pointer" title="Stop replying" t-on-click="composerView.onClickStopReplying"/>
|
||||
</t>
|
||||
<t t-if="composerView.hasThreadName">
|
||||
<span class="o_Composer_threadName">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="mail.Emoji" owl="1">
|
||||
<span class="o_Emoji p-1 fs-3 o_cursor_pointer" t-att-class="emojiView.isHovered ? 'bg-200' : ''" t-on-click="emojiView.onClick" t-on-mouseenter="emojiView.onMouseenter" t-on-mouseleave="emojiView.onMouseleave" t-att-title="emojiView.emoji.description" t-att-data-source="emojiView.emoji.sources[0]" t-att-data-unicode="emojiView.emoji.unicode" t-attf-class="{{ className }}" t-ref="root">
|
||||
<span class="o_Emoji p-1 fs-3 cursor-pointer" t-att-class="emojiView.isHovered ? 'bg-200' : ''" t-on-click="emojiView.onClick" t-on-mouseenter="emojiView.onMouseenter" t-on-mouseleave="emojiView.onMouseleave" t-att-title="emojiView.emoji.description" t-att-data-source="emojiView.emoji.sources[0]" t-att-data-unicode="emojiView.emoji.unicode" t-attf-class="{{ className }}" t-ref="root">
|
||||
<t t-esc="emojiView.emoji.unicode"/>
|
||||
</span>
|
||||
</t>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="mail.EmojiCategoryView" owl="1">
|
||||
<span class="o_EmojiCategoryView px-2 py-1 fs-5 o_cursor_pointer" t-att-class="(emojiCategoryView.isHovered or emojiCategoryView.emojiCategoryBarViewOwnerAsActive) ? 'bg-300' : ''" t-on-click="emojiCategoryView.onClick" t-on-mouseenter="emojiCategoryView.onMouseenter" t-on-mouseleave="emojiCategoryView.onMouseleave" t-attf-class="{{ className }}" t-ref="root">
|
||||
<span class="o_EmojiCategoryView px-2 py-1 fs-5 cursor-pointer" t-att-class="(emojiCategoryView.isHovered or emojiCategoryView.emojiCategoryBarViewOwnerAsActive) ? 'bg-300' : ''" t-on-click="emojiCategoryView.onClick" t-on-mouseenter="emojiCategoryView.onMouseenter" t-on-mouseleave="emojiCategoryView.onMouseleave" t-attf-class="{{ className }}" t-ref="root">
|
||||
<t t-esc="emojiCategoryView.emojiCategory.categoryName"/>
|
||||
</span>
|
||||
</t>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<t t-name="mail.FollowerSubtype" owl="1">
|
||||
<t t-if="followerSubtypeView">
|
||||
<div class="o_FollowerSubtype" t-attf-class="{{ className }}" t-att-data-local-id="followerSubtypeView.localId" t-ref="root">
|
||||
<label class="o_FollowerSubtype_label flex-grow-1 align-items-center d-flex mb-0 p-2 o_cursor_pointer">
|
||||
<label class="o_FollowerSubtype_label flex-grow-1 align-items-center d-flex mb-0 p-2 cursor-pointer">
|
||||
<input class="o_FollowerSubtype_checkbox me-2" type="checkbox" t-att-checked="followerSubtypeView.follower.selectedSubtypes.includes(followerSubtypeView.subtype) ? 'checked': ''" t-on-change="followerSubtypeView.onChangeCheckbox"/>
|
||||
<t t-esc="followerSubtypeView.subtype.name"/>
|
||||
</label>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="mail.LegacyEmoji" owl="1">
|
||||
<span class="o_LegacyEmoji p-1 fs-5 o_cursor_pointer" t-on-click="props.emojiView.emojiListView.onClickEmoji" t-att-title="props.emojiView.emoji.description" t-att-data-source="props.emojiView.emoji.sources[0]" t-att-data-unicode="props.emojiView.emoji.unicode" t-attf-class="{{ className }}" t-ref="root">
|
||||
<span class="o_LegacyEmoji p-1 fs-5 cursor-pointer" t-on-click="props.emojiView.emojiListView.onClickEmoji" t-att-title="props.emojiView.emoji.description" t-att-data-source="props.emojiView.emoji.sources[0]" t-att-data-unicode="props.emojiView.emoji.unicode" t-attf-class="{{ className }}" t-ref="root">
|
||||
<t t-esc="props.emojiView.emoji.unicode"/>
|
||||
</span>
|
||||
</t>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<div class="o_Message_sidebar d-flex flex-shrink-0" t-att-class="{ 'o-message-squashed align-items-start': messageView.isSquashed, 'justify-content-center': messageView.isInChatWindow }">
|
||||
<t t-if="!messageView.isSquashed">
|
||||
<div class="o_Message_authorAvatarContainer o_Message_sidebarItem position-relative">
|
||||
<img class="o_Message_authorAvatar w-100 h-100 rounded-circle o_object_fit_cover" t-att-class="{ 'o_cursor_pointer': messageView.hasAuthorOpenChat, o_redirect: messageView.hasAuthorOpenChat }" t-att-src="messageView.message.avatarUrl" t-att-role="messageView.hasAuthorOpenChat ? 'button' : ''" t-att-tabindex="messageView.hasAuthorOpenChat ? '0' : ''" t-on-click="messageView.onClickAuthorAvatar" t-att-title="messageView.authorTitleText" t-att-alt="messageView.authorTitleText"/>
|
||||
<img class="o_Message_authorAvatar w-100 h-100 rounded-circle o_object_fit_cover" t-att-class="{ 'cursor-pointer': messageView.hasAuthorOpenChat, o_redirect: messageView.hasAuthorOpenChat }" t-att-src="messageView.message.avatarUrl" t-att-role="messageView.hasAuthorOpenChat ? 'button' : ''" t-att-tabindex="messageView.hasAuthorOpenChat ? '0' : ''" t-on-click="messageView.onClickAuthorAvatar" t-att-title="messageView.authorTitleText" t-att-alt="messageView.authorTitleText"/>
|
||||
<t t-if="messageView.personaImStatusIconView">
|
||||
<PersonaImStatusIcon
|
||||
className="'o_Message_personaImStatusIcon position-absolute bottom-0 end-0 d-flex align-items-center justify-content-center text-white'"
|
||||
@@ -66,7 +66,7 @@
|
||||
<t t-if="!messageView.isSquashed">
|
||||
<div class="o_Message_header d-flex flex-wrap align-items-baseline" t-att-class="{ 'justify-content-end': messageView.isInChatWindowAndIsAlignedRight }">
|
||||
<t t-if="messageView.message.author">
|
||||
<strong t-if="messageView.isShowingAuthorName" class="o_Message_authorName o_redirect me-1 text-truncate" t-att-class="{ 'o_cursor_pointer': messageView.hasAuthorOpenChat }" t-att-role="messageView.hasAuthorOpenChat ? 'button' : ''" t-att-tabindex="messageView.hasAuthorOpenChat ? '0' : ''" t-on-click="messageView.onClickAuthorName" t-att-title="messageView.authorTitleText">
|
||||
<strong t-if="messageView.isShowingAuthorName" class="o_Message_authorName o_redirect me-1 text-truncate" t-att-class="{ 'cursor-pointer': messageView.hasAuthorOpenChat }" t-att-role="messageView.hasAuthorOpenChat ? 'button' : ''" t-att-tabindex="messageView.hasAuthorOpenChat ? '0' : ''" t-on-click="messageView.onClickAuthorName" t-att-title="messageView.authorTitleText">
|
||||
<t t-if="messageView.message.originThread">
|
||||
<t t-esc="messageView.message.originThread.getMemberName(messageView.message.author)"/>
|
||||
</t>
|
||||
@@ -113,13 +113,13 @@
|
||||
<t t-if="messageView.messageListViewMessageViewItemOwner and messageView.message.originThread and messageView.message.originThread === messageView.messageListViewMessageViewItemOwner.messageListViewOwner.threadViewOwner.thread and messageView.message.notifications.length > 0">
|
||||
<div t-att-class="{ 'ms-2': messageView.isInChatWindowAndIsAlignedRight }">
|
||||
<t t-if="messageView.message.failureNotifications.length > 0">
|
||||
<span class="o_Message_notificationIconClickable o-error o_cursor_pointer text-danger" role="button" tabindex="0" t-on-click="messageView.onClickFailure">
|
||||
<span class="o_Message_notificationIconClickable o-error cursor-pointer text-danger" role="button" tabindex="0" t-on-click="messageView.onClickFailure">
|
||||
<i name="failureIcon" class="o_Message_notificationIcon fa fa-envelope" role="img" aria-label="Delivery failure"/>
|
||||
</span>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<Popover>
|
||||
<span class="o_Message_notificationIconClickable text-600 o_cursor_pointer">
|
||||
<span class="o_Message_notificationIconClickable text-600 cursor-pointer">
|
||||
<i name="notificationIcon" class="o_Message_notificationIcon fa fa-envelope-o"/>
|
||||
</span>
|
||||
<t t-set-slot="opened">
|
||||
|
||||
@@ -3,25 +3,25 @@
|
||||
<t t-name="mail.MessageActionList" owl="1">
|
||||
<t t-if="messageActionList">
|
||||
<div class="o_MessageActionList d-flex rounded-1 bg-white shadow-sm" t-att-class="{ 'o-isDeviceSmall': messaging.device.isSmall }" t-attf-class="{{ className }}" t-on-click="messageActionList.onClick" t-ref="root">
|
||||
<i t-if="messageActionList.message.hasReactionIcon" class="o_MessageActionList_action o_MessageActionList_actionReaction fa fa-lg fa-smile-o o_cursor_pointer" t-attf-class="{{ messaging.device.isSmall ? 'ps-3 py-3 pe-2' : 'ps-2 py-2 pe-1' }}" t-att-title="messageActionList.addReactionText" t-on-click="messageActionList.onClickActionReaction" t-ref="actionReaction"/>
|
||||
<i t-if="messageActionList.message.hasReactionIcon" class="o_MessageActionList_action o_MessageActionList_actionReaction fa fa-lg fa-smile-o cursor-pointer" t-attf-class="{{ messaging.device.isSmall ? 'ps-3 py-3 pe-2' : 'ps-2 py-2 pe-1' }}" t-att-title="messageActionList.addReactionText" t-on-click="messageActionList.onClickActionReaction" t-ref="actionReaction"/>
|
||||
<t t-if="!messageActionList.isCompact || !messageActionList.hasCompactIcon">
|
||||
<span t-if="messageActionList.message.canStarBeToggled" class="o_MessageActionList_action o_MessageActionList_actionStar o_cursor_pointer" t-attf-class="{{ messaging.device.isSmall ? 'px-2 py-3' : 'px-1 py-2' }}" t-att-class="{
|
||||
<span t-if="messageActionList.message.canStarBeToggled" class="o_MessageActionList_action o_MessageActionList_actionStar cursor-pointer" t-attf-class="{{ messaging.device.isSmall ? 'px-2 py-3' : 'px-1 py-2' }}" t-att-class="{
|
||||
'o_MessageActionList_actionStar_active': messageActionList.message.isStarred,
|
||||
'fa fa-lg fa-star': messageActionList.message.isStarred,
|
||||
'fa fa-lg fa-star-o': !messageActionList.message.isStarred,
|
||||
}" role="button" tabindex="0" aria-label="Mark as Todo" t-att-aria-pressed="messageActionList.message.isStarred ? 'true' : 'false'" title="Mark as Todo" t-on-click="messageActionList.onClickToggleStar"/>
|
||||
<span t-if="messageActionList.hasReplyIcon" class="o_MessageActionList_action o_MessageActionList_actionReply fa fa-lg fa-reply o_cursor_pointer" t-attf-class="{{ messaging.device.isSmall ? 'px-2 py-3' : 'px-1 py-2' }}" title="Reply" role="button" tabindex="0" aria-label="Reply" t-on-click="messageActionList.onClickReplyTo"/>
|
||||
<span t-if="messageActionList.hasMarkAsReadIcon" class="o_MessageActionList_action o_MessageActionList_actionMarkRead fa fa-lg fa-check o_cursor_pointer" t-attf-class="{{ messaging.device.isSmall ? 'px-2 py-3' : 'px-1 py-2' }}" title="Mark as Read" role="button" tabindex="0" aria-label="Mark as Read" t-on-click="messageActionList.onClickMarkAsRead"/>
|
||||
<span t-if="messageActionList.message.canBeDeleted" class="o_MessageActionList_action o_MessageActionList_actionEdit fa fa-lg fa-pencil o_cursor_pointer" t-attf-class="{{ messaging.device.isSmall ? 'px-2 py-3' : 'px-1 py-2' }}" title="Edit" role="button" tabindex="0" aria-label="Edit" t-on-click="messageActionList.onClickEdit"/>
|
||||
<span t-if="messageActionList.hasReplyIcon" class="o_MessageActionList_action o_MessageActionList_actionReply fa fa-lg fa-reply cursor-pointer" t-attf-class="{{ messaging.device.isSmall ? 'px-2 py-3' : 'px-1 py-2' }}" title="Reply" role="button" tabindex="0" aria-label="Reply" t-on-click="messageActionList.onClickReplyTo"/>
|
||||
<span t-if="messageActionList.hasMarkAsReadIcon" class="o_MessageActionList_action o_MessageActionList_actionMarkRead fa fa-lg fa-check cursor-pointer" t-attf-class="{{ messaging.device.isSmall ? 'px-2 py-3' : 'px-1 py-2' }}" title="Mark as Read" role="button" tabindex="0" aria-label="Mark as Read" t-on-click="messageActionList.onClickMarkAsRead"/>
|
||||
<span t-if="messageActionList.message.canBeDeleted" class="o_MessageActionList_action o_MessageActionList_actionEdit fa fa-lg fa-pencil cursor-pointer" t-attf-class="{{ messaging.device.isSmall ? 'px-2 py-3' : 'px-1 py-2' }}" title="Edit" role="button" tabindex="0" aria-label="Edit" t-on-click="messageActionList.onClickEdit"/>
|
||||
<!-- If there is no compact icon, delete will be the last button of the action list, a different styling will be applied. -->
|
||||
<span t-if="messageActionList.message.canBeDeleted" class="o_MessageActionList_action o_MessageActionList_actionDelete fa fa-lg fa-trash o_cursor_pointer" t-att-class="{
|
||||
<span t-if="messageActionList.message.canBeDeleted" class="o_MessageActionList_action o_MessageActionList_actionDelete fa fa-lg fa-trash cursor-pointer" t-att-class="{
|
||||
'px-2 py-3': messageActionList.hasCompactIcon and messaging.device.isSmall,
|
||||
'px-1 py-2': messageActionList.hasCompactIcon and !messaging.device.isSmall,
|
||||
'ps-2 py-3 pe-3': !messageActionList.hasCompactIcon and messaging.device.isSmall,
|
||||
'ps-1 py-2 pe-2': !messageActionList.hasCompactIcon and !messaging.device.isSmall,
|
||||
}" title="Delete" role="button" tabindex="0" aria-label="Delete" t-on-click="messageActionList.onClickDelete"/>
|
||||
</t>
|
||||
<span t-if="messageActionList.hasCompactIcon" class="o_MessageActionList_action o_MessageActionList_actionToggleCompact fa fa-lg fa-ellipsis-h o_cursor_pointer" t-attf-class="{{ messaging.device.isSmall ? 'ps-2 py-3 pe-3' : 'ps-1 py-2 pe-2' }}" t-att-title="messageActionList.isCompact ? 'Expend' : 'Compact'" role="button" tabindex="0" t-att-aria-label="messageActionList.isCompact ? 'Expend' : 'Compact'" t-on-click="messageActionList.onClickToggleCompact"/>
|
||||
<span t-if="messageActionList.hasCompactIcon" class="o_MessageActionList_action o_MessageActionList_actionToggleCompact fa fa-lg fa-ellipsis-h cursor-pointer" t-attf-class="{{ messaging.device.isSmall ? 'ps-2 py-3 pe-3' : 'ps-1 py-2 pe-2' }}" t-att-title="messageActionList.isCompact ? 'Expend' : 'Compact'" role="button" tabindex="0" t-att-aria-label="messageActionList.isCompact ? 'Expend' : 'Compact'" t-on-click="messageActionList.onClickToggleCompact"/>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
<small class="o_MessageInReplyToView position-relative d-block text-small" t-attf-class="{{ className }} {{ messageInReplyToView.messageView.isInChatWindowAndIsAlignedRight ? 'justify-content-end pe-5': 'ps-5' }}" t-ref="root">
|
||||
<span class="o_MessageInReplyToView_corner position-absolute bottom-0 top-50 pe-4 border-top text-300" t-attf-class="{{ messageInReplyToView.messageView.isInChatWindowAndIsAlignedRight ? 'o-isRightAlign border-end' : 'o-isLeftAlign border-start' }}" t-att-class="{ 'ms-n2': messageInReplyToView.messageView.isInDiscuss }"/>
|
||||
<t t-if="!messageInReplyToView.messageView.message.parentMessage.isEmpty">
|
||||
<span class="o_MessageInReplyToView_wrapOuter d-flex align-items-center text-muted opacity-75 opacity-100-hover o_cursor_pointer" t-attf-class="{{ messageInReplyToView.messageView.isInChatWindowAndIsAlignedRight ? 'pe-3': 'ps-3' }}" t-on-click="messageInReplyToView.onClickReply">
|
||||
<span class="o_MessageInReplyToView_wrapOuter d-flex align-items-center text-muted opacity-75 opacity-100-hover cursor-pointer" t-attf-class="{{ messageInReplyToView.messageView.isInChatWindowAndIsAlignedRight ? 'pe-3': 'ps-3' }}" t-on-click="messageInReplyToView.onClickReply">
|
||||
<img class="o_MessageInReplyToView_avatar me-2 rounded-circle" t-att-src="messageInReplyToView.messageView.message.parentMessage.avatarUrl" t-att-title="messageInReplyToView.messageView.message.parentMessage.authorName" alt="Avatar"/>
|
||||
<span class="o_MessageInReplyToView_wrapInner overflow-hidden">
|
||||
<b class="o_MessageInReplyToView_author">@<t t-out="messageInReplyToView.messageView.message.parentMessage.authorName"/></b>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<t t-name="mail.NotificationGroup" owl="1">
|
||||
<t t-if="notificationGroupView">
|
||||
<div class="o_NotificationListItem o_NotificationGroup d-flex flex-shrink-0 align-items-center p-1 o_cursor_pointer" t-attf-class="{{ className }}" t-on-click="notificationGroupView.onClick" t-ref="root">
|
||||
<div class="o_NotificationListItem o_NotificationGroup d-flex flex-shrink-0 align-items-center p-1 cursor-pointer" t-attf-class="{{ className }}" t-on-click="notificationGroupView.onClick" t-ref="root">
|
||||
<div class="o_NotificationListItem_sidebar o_NotificationGroup_sidebar m-1">
|
||||
<div class="o_NotificationListItem_imageContainer o_NotificationGroup_imageContainer o_NotificationGroup_sidebarItem position-relative">
|
||||
<img class="o_NotificationListItem_image o_NotificationGroup_image w-100 h-100 rounded-circle" t-att-src="notificationGroupView.imageSrc" alt="Message delivery failure image"/>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<t t-name="mail.NotificationRequest" owl="1">
|
||||
<t t-if="notificationRequestView">
|
||||
<div class="o_NotificationListItem o_NotificationRequest d-flex flex-shrink-0 align-items-center p-1 o_cursor_pointer" t-attf-class="{{ className }}" t-on-click="_onClick" t-ref="root">
|
||||
<div class="o_NotificationListItem o_NotificationRequest d-flex flex-shrink-0 align-items-center p-1 cursor-pointer" t-attf-class="{{ className }}" t-on-click="_onClick" t-ref="root">
|
||||
<div class="o_NotificationListItem_sidebar o_NotificationRequest_sidebar m-1">
|
||||
<div class="o_NotificationListItem_imageContainer o_NotificationRequest_imageContainer o_NotificationRequest_sidebarItem position-relative">
|
||||
<img class="o_NotificationListItem_image o_NotificationRequest_image w-100 h-100 rounded-circle" t-att-src="messaging.partnerRoot.avatarUrl" alt="Avatar of OdooBot"/>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
t-att-class="{
|
||||
'o-away': personaImStatusIconView.persona.im_status === 'away',
|
||||
'o-bot': messaging.partnerRoot.persona === personaImStatusIconView.persona,
|
||||
'o-has-open-chat o_cursor_pointer': props.hasOpenChat,
|
||||
'o-has-open-chat cursor-pointer': props.hasOpenChat,
|
||||
'o-offline': personaImStatusIconView.persona.im_status === 'offline',
|
||||
'o-online': personaImStatusIconView.persona.im_status === 'online',
|
||||
}"
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
The preview template is used by the discuss in mobile, and by the systray
|
||||
menu in order to show preview of threads.
|
||||
-->
|
||||
<div class="o_NotificationListItem o_ThreadNeedactionPreview d-flex flex-shrink-0 align-items-center p-1 o_cursor_pointer" t-attf-class="{{ className }}" t-on-click="threadNeedactionPreviewView.onClick" t-att-data-thread-local-id="threadNeedactionPreviewView.thread.localId" t-ref="root">
|
||||
<div class="o_NotificationListItem o_ThreadNeedactionPreview d-flex flex-shrink-0 align-items-center p-1 cursor-pointer" t-attf-class="{{ className }}" t-on-click="threadNeedactionPreviewView.onClick" t-att-data-thread-local-id="threadNeedactionPreviewView.thread.localId" t-ref="root">
|
||||
<div class="o_NotificationListItem_sidebar o_ThreadNeedactionPreview_sidebar m-1">
|
||||
<div class="o_NotificationListItem_imageContainer o_ThreadNeedactionPreview_imageContainer o_ThreadNeedactionPreview_sidebarItem position-relative">
|
||||
<img class="o_NotificationListItem_image o_ThreadNeedactionPreview_image w-100 h-100" t-att-src="image()" alt="Thread Image"/>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
The preview template is used by the discuss in mobile, and by the systray
|
||||
menu in order to show preview of threads.
|
||||
-->
|
||||
<div class="o_NotificationListItem o_ThreadPreview d-flex flex-shrink-0 align-items-center p-1 o_cursor_pointer" t-att-class="{ 'o-muted': threadPreviewView.thread.localMessageUnreadCounter === 0 }" t-attf-class="{{ className }}" t-on-click="threadPreviewView.onClick" t-att-data-thread-local-id="threadPreviewView.thread.localId" t-ref="root">
|
||||
<div class="o_NotificationListItem o_ThreadPreview d-flex flex-shrink-0 align-items-center p-1 cursor-pointer" t-att-class="{ 'o-muted': threadPreviewView.thread.localMessageUnreadCounter === 0 }" t-attf-class="{{ className }}" t-on-click="threadPreviewView.onClick" t-att-data-thread-local-id="threadPreviewView.thread.localId" t-ref="root">
|
||||
<div class="o_NotificationListItem_sidebar o_ThreadPreview_sidebar m-1">
|
||||
<div class="o_NotificationListItem_imageContainer o_ThreadPreview_imageContainer o_ThreadPreview_sidebarItem position-relative">
|
||||
<img class="o_NotificationListItem_image o_ThreadPreview_image w-100 h-100 rounded-circle" t-att-src="image()" alt="Thread Image"/>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="!threadViewTopbar.thread.description">
|
||||
<div class="o_ThreadViewTopbar_threadAddDescriptionEmptyLabel text-truncate text-900 opacity-50 opacity-100-hover o_cursor_pointer" t-on-click="threadViewTopbar.onClickTopbarThreadDescription">
|
||||
<div class="o_ThreadViewTopbar_threadAddDescriptionEmptyLabel text-truncate text-900 opacity-50 opacity-100-hover cursor-pointer" t-on-click="threadViewTopbar.onClickTopbarThreadDescription">
|
||||
Add a description
|
||||
</div>
|
||||
</t>
|
||||
|
||||
@@ -7,7 +7,7 @@ const { Component, xml } = owl;
|
||||
|
||||
class DialogCommand extends Component {}
|
||||
DialogCommand.template = xml`
|
||||
<div class="o_command_default d-flex align-items-center justify-content-between px-4 py-2 o_cursor_pointer">
|
||||
<div class="o_command_default d-flex align-items-center justify-content-between px-4 py-2 cursor-pointer">
|
||||
<t t-slot="name"/>
|
||||
<span t-if="props.email" t-out="props.email"/>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div t-name="product_matrix.matrix">
|
||||
<table class="o_matrix_input_table o_product_variant_matrix table table-sm table-striped table-bordered o_cursor_default">
|
||||
<table class="o_matrix_input_table o_product_variant_matrix table table-sm table-striped table-bordered cursor-default">
|
||||
<thead>
|
||||
<tr>
|
||||
<t t-foreach="header" t-as="column_header">
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
<t t-set="milestones" t-value="state.data.milestones"/>
|
||||
<div class="o_rightpanel_section" name="milestone" t-if="show_milestones">
|
||||
<div class="o_rightpanel_header">
|
||||
<div class="o_rightpanel_title o_cursor_default">
|
||||
<div class="o_rightpanel_title cursor-default">
|
||||
Milestones
|
||||
</div>
|
||||
<span class="o_rightpanel_button">
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
<ul class="nav o_survey_results_topbar_answer_filters mt-2">
|
||||
<t t-if="search_filters">
|
||||
<li t-foreach="search_filters" t-as="filter_data" class="nav-item me-2 my-1">
|
||||
<span t-attf-class="btn btn-light filter-remove-answer o_cursor_default">
|
||||
<span t-attf-class="btn btn-light filter-remove-answer cursor-default">
|
||||
<span t-esc="filter_data['question']"/> | <span t-esc="filter_data['answers']"></span>
|
||||
<i class="fa fa-times filter-remove-answer text-primary"
|
||||
t-att-data-row-id="filter_data['row_id']" t-att-data-answer-id="filter_data['answer_id']"></i>
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="web.DefaultCommandItem" owl="1">
|
||||
<div class="o_command_default d-flex align-items-center justify-content-between px-4 py-2 o_cursor_pointer">
|
||||
<div class="o_command_default d-flex align-items-center justify-content-between px-4 py-2 cursor-pointer">
|
||||
<t t-slot="name"/>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="web.HotkeyCommandItem" owl="1">
|
||||
<div class="o_command_hotkey d-flex align-items-center justify-content-between px-4 py-2 o_cursor_pointer">
|
||||
<div class="o_command_hotkey d-flex align-items-center justify-content-between px-4 py-2 cursor-pointer">
|
||||
<t t-slot="name"/>
|
||||
<span>
|
||||
<t t-foreach="getKeysToPress(props)" t-as="key" t-key="key_index">
|
||||
|
||||
@@ -51,7 +51,7 @@ DefaultFooter.template = xml`
|
||||
<t t-foreach="elements" t-as="element" t-key="element.namespace">
|
||||
<t t-if="!(element_first || element_last)">, </t>
|
||||
<t t-if="element_last and !element_first"> and </t>
|
||||
<span class="o_namespace btn-link text-primary o_cursor_pointer" t-on-click="() => this.onClick(element.namespace)">
|
||||
<span class="o_namespace btn-link text-primary cursor-pointer" t-on-click="() => this.onClick(element.namespace)">
|
||||
<span t-out="element.namespace" class="fw-bolder text-primary"/><t t-out="element.name"/>
|
||||
</span>
|
||||
</t>
|
||||
|
||||
@@ -144,7 +144,7 @@ var DataExport = Dialog.extend({
|
||||
$('<li>', {'class': 'o_export_field', 'data-field_id': fieldID}).append(
|
||||
$('<span>', {'class': "fa fa-sort o_short_field mx-1"}),
|
||||
label.trim(),
|
||||
$('<span>', {'class': 'o_remove_field o_cursor_pointer fa fa-trash m-1 float-end ', 'title': _t("Remove field")})
|
||||
$('<span>', {'class': 'o_remove_field cursor-pointer fa fa-trash m-1 float-end ', 'title': _t("Remove field")})
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1190,12 +1190,12 @@
|
||||
<t t-set="disabled" t-value="!clickable"/>
|
||||
<button type="button" t-att-data-value="i.id" disabled="disabled" title="Current state" aria-checked="true"
|
||||
t-att-role="is_dropdown ? 'menuitemradio': 'radio'"
|
||||
t-attf-class="btn o_arrow_button btn-primary disabled o_cursor_default #{is_dropdown ? 'dropdown-item bg-primary text-white': ''}" t-if="i.selected" aria-current="step">
|
||||
t-attf-class="btn o_arrow_button btn-primary disabled cursor-default #{is_dropdown ? 'dropdown-item bg-primary text-white': ''}" t-if="i.selected" aria-current="step">
|
||||
<t t-esc="i.display_name" role="img" t-attf-aria-label="#{i.display_name} is current state"/>
|
||||
</button>
|
||||
<button type="button" t-att-data-value="i.id" disabled="disabled" title="Not active state" aria-checked="false"
|
||||
t-att-role="is_dropdown ? 'menuitemradio': 'radio'"
|
||||
t-attf-class="btn o_arrow_button btn-secondary disabled o_cursor_default #{is_dropdown ? 'dropdown-item': ''}" t-if="!i.selected and disabled">
|
||||
t-attf-class="btn o_arrow_button btn-secondary disabled cursor-default #{is_dropdown ? 'dropdown-item': ''}" t-if="!i.selected and disabled">
|
||||
<t t-esc="i.display_name" role="img" t-attf-aria-label="#{i.display_name} is not current state"/>
|
||||
</button>
|
||||
<button type="button" t-att-data-value="i.id" title="Not active state, click to change it" aria-checked="false"
|
||||
@@ -1426,7 +1426,7 @@
|
||||
<t t-name="Export.TreeItems">
|
||||
<t t-foreach="fields" t-as="field" t-key="field_index">
|
||||
<t t-set="has_child" t-value="field.children && (field.id).split('/').length != 3" />
|
||||
<div t-att-data-id="field.id" t-attf-class="o_export_tree_item #{has_child ? 'haschild o_expand' : ''} o_cursor_pointer position-relative ps-3 " tabindex="-1" role="treeitem"> <!-- tabindex make the div focusable -->
|
||||
<div t-att-data-id="field.id" t-attf-class="o_export_tree_item #{has_child ? 'haschild o_expand' : ''} cursor-pointer position-relative ps-3 " tabindex="-1" role="treeitem"> <!-- tabindex make the div focusable -->
|
||||
<span t-if="has_child" class="o_expand_parent d-inline-block position-absolute top-0 start-0 mt-1 ml-n3 small fa fa-chevron-right" role="img" aria-label="Show sub-fields" title="Show sub-fields"/>
|
||||
<div t-attf-class="o_tree_column text-wrap">
|
||||
<t t-esc="field.string"/>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<span class="o_column_unfold"><i class="fa fa-arrows-h" role="img" aria-label="Unfold" title="Unfold"/></span>
|
||||
<span class="o_kanban_config dropdown">
|
||||
<a class="dropdown-toggle o-no-caret" data-bs-toggle="dropdown" href="#"><i class="fa fa-gear" role="img" aria-label="Settings" title="Settings"/></a>
|
||||
<div class="dropdown-menu o_cursor_default" role="menu">
|
||||
<div class="dropdown-menu cursor-default" role="menu">
|
||||
<a t-if="!widget.isMobile" role="menuitem" class="dropdown-item o_kanban_toggle_fold" href="#">Fold</a>
|
||||
<t t-if="widget.grouped_by_m2o">
|
||||
<a t-if="widget.editable and widget.id" role="menuitem" class="dropdown-item o_column_edit" href="#">Edit Stage</a>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<section t-foreach="model.get('sections', s => !s.empty)" t-as="section" t-key="section.id"
|
||||
t-attf-class="o_search_panel_section o_search_panel_{{ section.type }}"
|
||||
>
|
||||
<header class="o_search_panel_section_header pt-4 pb-2 text-uppercase o_cursor_default">
|
||||
<header class="o_search_panel_section_header pt-4 pb-2 text-uppercase cursor-default">
|
||||
<i t-attf-class="fa {{ section.icon }} o_search_panel_section_icon me-2 {{!section.color && section.type == 'filter' ? 'text-warning' : !section.color ? 'text-odoo': ''}}"
|
||||
t-att-style="section.color and ('color: ' + section.color)"
|
||||
/>
|
||||
|
||||
@@ -68,6 +68,17 @@ $utilities: map-merge(
|
||||
responsive: true,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
// Odoo Custom Utility Classes
|
||||
$utilities: map-merge(
|
||||
$utilities,
|
||||
(
|
||||
"cursor": (
|
||||
property: cursor,
|
||||
values: default pointer,
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<section t-foreach="sections" t-as="section" t-key="section.id"
|
||||
t-attf-class="o_search_panel_section o_search_panel_{{ section.type }}"
|
||||
>
|
||||
<header class="o_search_panel_section_header pt-4 pb-2 text-uppercase o_cursor_default">
|
||||
<header class="o_search_panel_section_header pt-4 pb-2 text-uppercase cursor-default">
|
||||
<i t-attf-class="fa {{ section.icon }} o_search_panel_section_icon {{!section.color && section.type == 'filter' ? 'text-warning' : !section.color ? 'text-odoo': ''}} me-2"
|
||||
t-att-style="section.color and ('color: ' + section.color)"
|
||||
/>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<t t-foreach="row.subGroupMeasurements" t-as="cell" t-key="'row_cell_' + cell_index">
|
||||
<td class="o_pivot_cell_value text-end" t-att-class="{
|
||||
o_empty: cell.value === undefined,
|
||||
o_cursor_pointer: cell.value !== undefined,
|
||||
'cursor-pointer': cell.value !== undefined,
|
||||
'fw-bold': cell.isBold,
|
||||
}" t-on-click="() => this.onCellClicked(cell)"
|
||||
t-on-mouseover="onMouseEnter" t-on-mouseout="onMouseLeave">
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
<t t-name="web.PivotHeader" owl="1">
|
||||
<th
|
||||
class="text-nowrap o_cursor_pointer fw-normal bg-100"
|
||||
class="text-nowrap cursor-pointer fw-normal bg-100"
|
||||
t-att-colspan="isXAxis ? cell.width : undefined"
|
||||
t-att-rowspan="isXAxis ? cell.height : undefined"
|
||||
t-att-class="{
|
||||
@@ -94,8 +94,8 @@
|
||||
|
||||
<t t-name="web.PivotMeasure" owl="1">
|
||||
<th class="text-muted text-center text-nowrap fw-normal bg-100" t-att-colspan="cell.width" t-att-rowspan="cell.height" t-att-class="{
|
||||
'o_pivot_origin_row o_cursor_pointer': cell.originIndexes,
|
||||
'o_pivot_measure_row o_cursor_pointer': !cell.originIndexes,
|
||||
'o_pivot_origin_row cursor-pointer': cell.originIndexes,
|
||||
'o_pivot_measure_row cursor-pointer': !cell.originIndexes,
|
||||
o_pivot_sort_order_asc: cell.order === 'asc',
|
||||
o_pivot_sort_order_desc: cell.order === 'desc',
|
||||
}" t-on-click.prevent="() => this.onMeasureClick(cell)" t-on-mouseover="onMouseEnter" t-on-mouseout="onMouseLeave">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</t>
|
||||
|
||||
<t t-name="web.ExportDataItem" owl="1">
|
||||
<div t-att-data-field_id="props.field.name" t-attf-class="o_export_tree_item o_cursor_pointer position-relative ps-4 {{ state.isExpanded ? 'o_expanded mb-2' : '' }}" role="treeitem" t-on-click.stop="onClick" t-on-dblclick="(ev) => !props.isFieldExpandable(props.field) and !this.isFieldSelected(props.field.name) and this.props.onAdd(ev)">
|
||||
<div t-att-data-field_id="props.field.name" t-attf-class="o_export_tree_item cursor-pointer position-relative ps-4 {{ state.isExpanded ? 'o_expanded mb-2' : '' }}" role="treeitem" t-on-click.stop="onClick" t-on-dblclick="(ev) => !props.isFieldExpandable(props.field) and !this.isFieldSelected(props.field.name) and this.props.onAdd(ev)">
|
||||
<span t-if="props.isFieldExpandable(props.field)" t-attf-class="o_expand_parent d-inline-block position-absolute small fa {{ state.isExpanded ? 'fa-chevron-down' : 'fa-chevron-right' }}" role="img" aria-label="Show sub-fields" title="expandText" />
|
||||
<div t-attf-class="o_tree_column d-flex justify-content-between align-items-center {{ props.field.required ? 'font-weight-bolder' : ''}}">
|
||||
<span t-if="props.isDebug and props.field.id" class="overflow-hidden" t-esc="`${props.field.string} (${props.field.id})`" />
|
||||
@@ -111,7 +111,7 @@
|
||||
<li t-attf-class="o_export_field {{ state.isSmall ? '' : 'o_export_field_sortable' }}" t-att-data-field_id="field.name">
|
||||
<span t-if="!state.isSmall" class="fa fa-sort o_sort_field mx-1" t-attf-style="opacity:{{ state.exportList.length === 1 ? 0 : 1 }}" />
|
||||
<span t-esc="isDebug and field.id ? `${field.string or field.label} (${field.id})` : field.string or field.label" />
|
||||
<span class="fa fa-trash m-1 float-end o_remove_field o_cursor_pointer" t-att-title="removeFieldText" t-on-click.stop="onRemoveItemExportList" />
|
||||
<span class="fa fa-trash m-1 float-end o_remove_field cursor-pointer" t-att-title="removeFieldText" t-on-click.stop="onRemoveItemExportList" />
|
||||
</li>
|
||||
</t>
|
||||
</ul>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="web.AppIconCommand" owl="1">
|
||||
<div class="o_command_default position-relative d-flex align-items-center justify-content-between px-4 py-2 o_cursor_pointer">
|
||||
<div class="o_command_default position-relative d-flex align-items-center justify-content-between px-4 py-2 cursor-pointer">
|
||||
<t t-slot="name"/>
|
||||
<img t-if="props.webIconData" class="o_app_icon position-relative rounded-1" t-attf-src="{{props.webIconData}}"/>
|
||||
<div t-else="" class="o_app_icon d-flex align-items-center justify-content-center" t-attf-style="background-color:{{props.webIcon.backgroundColor}}" >
|
||||
|
||||
@@ -60,15 +60,6 @@ kbd {
|
||||
font-family: $font-family-sans-serif;
|
||||
}
|
||||
|
||||
// These classes should be generated using BTS v5 utility-API once migrated.
|
||||
.o_cursor_pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.o_cursor_default {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
//== Badges
|
||||
.badge {
|
||||
min-width: $o-badge-min-width;
|
||||
|
||||
Reference in New Issue
Block a user