Browse Source

Simplified message select

Closes #816
master
Igor Zhukov 9 years ago
parent
commit
73afbd2912
  1. 34
      app/js/controllers.js
  2. 4
      app/less/app.less
  3. 23
      app/less/desktop.less
  4. 18
      app/less/mobile.less
  5. 2
      app/partials/desktop/im.html

34
app/js/controllers.js

@ -1391,15 +1391,37 @@ angular.module('myApp.controllers', ['myApp.i18n'])
} }
function toggleMessage (messageID, $event) { function toggleMessage (messageID, $event) {
var target = $event.target, if ($scope.historyState.startBot) {
shiftClick = $event.shiftKey; return false;
}
if (shiftClick) { if (!$scope.historyState.selectActions) {
$scope.$broadcast('ui_selection_clear'); var sel = (
window.getSelection && window.getSelection() ||
document.getSelection && document.getSelection() ||
document.selection && document.selection.createRange().text || ''
).toString().replace(/^\s+|\s+$/g, '');
if (sel) {
return false;
}
var target = $event.target;
while (target) {
if (target.className.indexOf('im_message_outer_wrap') != -1) {
break;
}
if (target.tagName == 'A' ||
target.onclick ||
target.getAttribute('ng-click')) {
return false;
}
target = target.parentNode;
}
} }
if (!$scope.historyState.selectActions && !$(target).hasClass('icon-select-tick') && !$(target).hasClass('im_content_message_select_area')) { var shiftClick = $event.shiftKey;
return false; if (shiftClick) {
$scope.$broadcast('ui_selection_clear');
} }
if ($scope.selectedMsgs[messageID]) { if ($scope.selectedMsgs[messageID]) {

4
app/less/app.less

@ -1659,7 +1659,7 @@ div.im_message_video_thumb {
background-position: -2px -542px; background-position: -2px -542px;
} }
.im_history_selectable { .im_history_select_active {
a { a {
pointer-events: none; pointer-events: none;
} }
@ -3075,6 +3075,8 @@ a.peer_photo_init {
color: #fff; color: #fff;
text-align: center; text-align: center;
text-transform: uppercase; text-transform: uppercase;
.user-select(none);
} }
h5 { h5 {

23
app/less/desktop.less

@ -911,11 +911,11 @@ a.footer_link.active:active {
.im_message_selected .im_message_audio_duration, .im_message_selected .im_message_audio_duration,
.im_message_selected .im_message_audio_size, .im_message_selected .im_message_audio_size,
.im_message_selected .im_message_fwd_date, .im_message_selected .im_message_fwd_date,
.im_history_selectable .im_message_outer_wrap:hover .im_message_date, .im_history_select_active .im_message_outer_wrap:hover .im_message_date,
.im_history_selectable .im_message_outer_wrap:hover .im_message_document_size, .im_history_select_active .im_message_outer_wrap:hover .im_message_document_size,
.im_history_selectable .im_message_outer_wrap:hover .im_message_audio_duration, .im_history_select_active .im_message_outer_wrap:hover .im_message_audio_duration,
.im_history_selectable .im_message_outer_wrap:hover .im_message_audio_size, .im_history_select_active .im_message_outer_wrap:hover .im_message_audio_size,
.im_history_selectable .im_message_outer_wrap:hover .im_message_fwd_date { .im_history_select_active .im_message_outer_wrap:hover .im_message_fwd_date {
color: #899daf; color: #899daf;
} }
@ -1752,14 +1752,11 @@ a.im_panel_peer_photo .peer_initials {
background: #f2f6fa; background: #f2f6fa;
} }
.im_history_selectable { .im_history_selectable .im_message_outer_wrap {
.im_message_outer_wrap { cursor: pointer;
cursor: pointer; }
.im_history_select_active .im_message_outer_wrap:hover {
&:hover { background: #f2f6fa;
background: #f2f6fa;
}
}
} }
.im_message_wrap { .im_message_wrap {

18
app/less/mobile.less

@ -519,7 +519,7 @@ html {
border: 0; border: 0;
overflow: hidden; overflow: hidden;
} }
.im_history_selectable .im_message_outer_wrap:hover, .im_history_select_active .im_message_outer_wrap:hover,
.im_message_selected { .im_message_selected {
background: #e1e9f0; background: #e1e9f0;
} }
@ -831,10 +831,10 @@ img.im_message_video_thumb,
.im_message_focus .audio_player_duration, .im_message_focus .audio_player_duration,
.im_message_focus .audio_player_size, .im_message_focus .audio_player_size,
.im_message_focus .im_message_fwd_date, .im_message_focus .im_message_fwd_date,
.im_history_selectable .im_message_outer_wrap:hover .im_message_document_size, .im_history_select_active .im_message_outer_wrap:hover .im_message_document_size,
.im_history_selectable .im_message_outer_wrap:hover .audio_player_duration, .im_history_select_active .im_message_outer_wrap:hover .audio_player_duration,
.im_history_selectable .im_message_outer_wrap:hover .audio_player_size, .im_history_select_active .im_message_outer_wrap:hover .audio_player_size,
.im_history_selectable .im_message_outer_wrap:hover .im_message_fwd_date { .im_history_select_active .im_message_outer_wrap:hover .im_message_fwd_date {
color: #68839c; color: #68839c;
} }
@ -1077,10 +1077,10 @@ a.im_dialog {
.im_message_selected .audio_player_title, .im_message_selected .audio_player_title,
.im_message_selected .audio_player_duration, .im_message_selected .audio_player_duration,
.im_message_selected .audio_player_size, .im_message_selected .audio_player_size,
.im_history_selectable .im_message_selected:hover .im_message_document_size, .im_history_select_active .im_message_selected:hover .im_message_document_size,
.im_history_selectable .im_message_selected:hover .audio_player_duration, .im_history_select_active .im_message_selected:hover .audio_player_duration,
.im_history_selectable .im_message_selected:hover .audio_player_size, .im_history_select_active .im_message_selected:hover .audio_player_size,
.im_history_selectable .im_message_selected:hover .im_message_fwd_date { .im_history_select_active .im_message_selected:hover .im_message_fwd_date {
color: #fff; color: #fff;
} }
a.im_message_fwd_author { a.im_message_fwd_author {

2
app/partials/desktop/im.html

@ -103,7 +103,7 @@
<div class="im_history_scrollable_wrap nano-content"> <div class="im_history_scrollable_wrap nano-content">
<div class="im_history_scrollable"> <div class="im_history_scrollable">
<div class="im_history" ng-class="{im_history_selectable: historyState.selectActions}"> <div class="im_history" ng-class="{im_history_selectable: !historyState.startBot, im_history_select_active: historyState.selectActions}">
<div ng-if="state.empty" class="im_history_empty" ng-switch="state.mayBeHasMore" my-vertical-position="0.25" padding="true"> <div ng-if="state.empty" class="im_history_empty" ng-switch="state.mayBeHasMore" my-vertical-position="0.25" padding="true">
<span ng-switch-when="true"> <span ng-switch-when="true">
<my-i18n msgid="im_loading_history"></my-i18n><span my-loading-dots></span> <my-i18n msgid="im_loading_history"></my-i18n><span my-loading-dots></span>

Loading…
Cancel
Save