From a89d2ad3b1b78bbc4e3d9b2ca9de8a445e946210 Mon Sep 17 00:00:00 2001 From: Igor Zhukov Date: Sun, 9 Mar 2014 15:11:41 +0100 Subject: [PATCH] #74 #100 #134 Paste from clipboard in Chrome (poor Firefox support) Sync new contacts from API update HTML 5 player is default again --- app/css/app.css | 33 ++++++------ app/img/icons/IconsetW.png | Bin 11731 -> 12709 bytes app/img/icons/IconsetW_1x.png | Bin 5365 -> 5769 bytes app/js/controllers.js | 2 +- app/js/directives.js | 25 ++++++++- app/js/services.js | 49 ++++++++++++++++-- .../jquery.emojiarea/jquery.emojiarea.js | 10 ++++ 7 files changed, 98 insertions(+), 21 deletions(-) diff --git a/app/css/app.css b/app/css/app.css index 7defae5b..7e2ee827 100644 --- a/app/css/app.css +++ b/app/css/app.css @@ -256,7 +256,7 @@ input[type="number"]::-webkit-inner-spin-button { vertical-align: text-top; background: url(../img/icons/IconsetW.png?1) -15px -419px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; opacity: 0.6; } .is_1x .icon-back { @@ -511,7 +511,7 @@ input[type="number"]::-webkit-inner-spin-button { font-size: 12px; line-height: normal; background: #F2F2F2 url(../img/icons/IconsetW.png?1) -6px -205px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; border: 1px solid #F2F2F2; border-radius: 3px; padding: 6px 20px 6px 30px; @@ -535,7 +535,7 @@ input[type="number"]::-webkit-inner-spin-button { height: 13px; vertical-align: text-top; background: url(../img/icons/IconsetW.png?1) -15px -192px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; opacity: 0.6; } .is_1x .im_dialogs_search_clear { @@ -788,7 +788,7 @@ a.im_dialog:hover .im_dialog_date { margin-left: 6px; background: url(../img/icons/IconsetW.png?1) -17px -444px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; } .is_1x .icon-caret { background-image: url(../img/icons/IconsetW_1x.png?2); @@ -987,7 +987,7 @@ div.im_message_video_thumb { height: 19px; background: url(../img/icons/IconsetW.png?1) -14px -389px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; } .is_1x .icon-geo-point { background-image: url(../img/icons/IconsetW_1x.png?2); @@ -1015,7 +1015,7 @@ div.im_message_video_thumb { vertical-align: text-top; background: #F2F2F2 url(../img/icons/IconsetW.png?1) -2px -229px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; border-radius: 3px; margin-right: 10px; } @@ -1032,6 +1032,7 @@ div.im_message_video_thumb { .im_history_selectable .im_message_outer_wrap:hover .icon-photo, .im_history_selectable .im_message_outer_wrap:hover .icon-video { background-color: #dae6f0; + background-position: -2px -542px; } .im_message_document_info { @@ -1076,7 +1077,7 @@ div.im_message_video_thumb { vertical-align: text-top; background: #F2F2F2 url(../img/icons/IconsetW.png?1) -2px -277px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; border-radius: 3px; margin-right: 10px; } @@ -1335,7 +1336,7 @@ textarea.im_message_field { height: 23px; vertical-align: text-top; background: url(../img/icons/IconsetW.png?1) -12px -68px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; opacity: 0.8; } .is_1x .icon-paperclip { @@ -1363,7 +1364,7 @@ textarea.im_message_field { height: 23px; vertical-align: text-top; background: url(../img/icons/IconsetW.png?1) -10px -4px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; opacity: 0.8; } .is_1x .icon-emoji { @@ -1413,7 +1414,7 @@ textarea.im_message_field { height: 21px; vertical-align: text-top; background: url(../img/icons/IconsetW.png?1) -9px -132px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; opacity: 0.8; } .is_1x .icon-camera { @@ -1833,7 +1834,7 @@ img.img_fullsize { .emoji-menu-tail { display: none; background: url(../img/icons/IconsetW.png?1) -14px -268px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; width: 14px; height: 7px; margin: 0 83px; @@ -1984,7 +1985,7 @@ img.img_fullsize { font-size: 12px; line-height: normal; background: #F2F2F2 url(../img/icons/IconsetW.png?1) -6px -205px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; border: 1px solid #F2F2F2; border-radius: 3px; padding: 6px 20px 6px 30px; @@ -2008,7 +2009,7 @@ img.img_fullsize { height: 13px; vertical-align: text-top; background: url(../img/icons/IconsetW.png?1) -15px -192px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; opacity: 0.6; } .is_1x .contacts_modal_search_clear { @@ -2085,7 +2086,7 @@ a.contacts_modal_contact:hover .contacts_modal_contact_status { width: 17px; height: 15px; background: url(../img/icons/IconsetW.png?1) -13px -366px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; opacity: 0.5; } .is_1x .icon-contact-tick { @@ -2183,7 +2184,7 @@ a.contacts_modal_contact:hover .contacts_modal_contact_status { height: 15px; background: url(../img/icons/IconsetW.png?1) -15px -319px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; } .is_1x .icon-delete { background-image: url(../img/icons/IconsetW_1x.png?2); @@ -2230,7 +2231,7 @@ a.contacts_modal_contact:hover .contacts_modal_contact_status { height: 26px; margin: 13px 0 0 40px; background: url(../img/icons/IconsetW.png?1) -9px -516px no-repeat; - background-size: 42px 560px; + background-size: 42px 620px; } .is_1x .icon-select-tick { background-image: url(../img/icons/IconsetW_1x.png?2); diff --git a/app/img/icons/IconsetW.png b/app/img/icons/IconsetW.png index d162ef292a8e5bd07190ed035dc184d33eb32f64..ee6a46c43990b5c7ec294a07a8e2a23be3bd7a05 100644 GIT binary patch literal 12709 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 literal 11731 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 ZJjbqoqDZt`zWhrjfvM^~EW2-w`Y*nm7wZ53 literal 5365 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 XTvi``&1RhUEdd%TI*-bgpM?Am4xmFD diff --git a/app/js/controllers.js b/app/js/controllers.js index 30cdbd95..4e402672 100644 --- a/app/js/controllers.js +++ b/app/js/controllers.js @@ -728,7 +728,7 @@ angular.module('myApp.controllers', []) // console.trace('ctrl text changed', newVal); AppMessagesManager.readHistory($scope.curDialog.inputPeer); - if (newVal.length) { + if (newVal && newVal.length) { var backupDraftObj = {}; backupDraftObj['draft' + $scope.curDialog.peerID] = newVal; AppConfigManager.set(backupDraftObj); diff --git a/app/js/directives.js b/app/js/directives.js index 29bbd22d..be178298 100644 --- a/app/js/directives.js +++ b/app/js/directives.js @@ -429,6 +429,7 @@ angular.module('myApp.directives', ['myApp.filters']) }; $('body').on('dragenter dragleave dragover drop', onDragDropEvent); + $(document).on('paste', onPasteEvent); scope.$on('ui_peer_change', focusField); scope.$on('ui_history_focus', focusField); @@ -440,6 +441,7 @@ angular.module('myApp.directives', ['myApp.filters']) scope.$on('$destroy', function cleanup() { $('body').off('dragenter dragleave dragover drop', onDragDropEvent); + $(document).off('paste', onPasteEvent); }); focusField(); @@ -450,6 +452,26 @@ angular.module('myApp.directives', ['myApp.filters']) }); } + function onPasteEvent (e) { + var cData = (e.originalEvent || e).clipboardData, + items = cData && cData.items || [], + files = [], + i; + + for (i = 0; i < items.length; i++) { + if (items[i].kind == 'file') { + files.push(items[i].getAsFile()); + } + } + + if (files.length && safeConfirm('Are you sure to send file(s) from clipboard?')) { + scope.$apply(function () { + scope.draftMessage.files = files; + scope.draftMessage.isMedia = true; + }); + } + } + function onDragDropEvent(e) { var dragStateChanged = false; if (!dragStarted || dragStarted == 1) { @@ -696,7 +718,8 @@ angular.module('myApp.directives', ['myApp.filters']) MtpApiFileManager.downloadFile(scope.video.dc_id, inputLocation, scope.video.size, null, {mime: 'video/mp4'}).then(function (url) { scope.progress.enabled = false; // scope.progress = {enabled: true, percent: 50}; - scope.player.quicktime = hasQt; + scope.player.hasQuicktime = hasQt; + scope.player.quicktime = false; scope.player.src = $sce.trustAsResourceUrl(url); }, function (e) { console.log('Download video failed', e, scope.video); diff --git a/app/js/services.js b/app/js/services.js index 928563b6..eb7de3c7 100644 --- a/app/js/services.js +++ b/app/js/services.js @@ -134,6 +134,7 @@ angular.module('myApp.services', []) var users = {}, cachedPhotoLocations = {}, contactsFillPromise, + contactsList, contactsIndex = SearchIndexManager.createIndex(); function fillContacts () { @@ -143,8 +144,8 @@ angular.module('myApp.services', []) return contactsFillPromise = MtpApiManager.invokeApi('contacts.getContacts', { hash: '' }).then(function (result) { - var contactsList = [], - userID, searchText, i; + var userID, searchText, i; + contactsList = []; saveApiUsers(result.users); for (var i = 0; i < result.contacts.length; i++) { @@ -323,6 +324,24 @@ angular.module('myApp.services', []) $rootScope.$broadcast('user_update', userID); } break; + + case 'updateContactLink': + if (angular.isArray(contactsList)) { + var userID = update.user_id, + curPos = curIsContact = contactsList.indexOf(userID), + curIsContact = curPos != -1, + newIsContact = update.my_link._ == 'contacts.myLinkContact'; + + if (newIsContact != curIsContact) { + if (newIsContact) { + contactsList.push(userID); + SearchIndexManager.indexObject(userID, getUserSearchText(userID), contactsIndex); + } else { + contactsList.splice(curPos, 1); + } + } + } + break; } }); @@ -1072,18 +1091,27 @@ angular.module('myApp.services', []) randomIDS = bigint(randomID[0]).shiftLeft(32).add(bigint(randomID[1])).toString(), historyStorage = historiesStorage[peerID], inputPeer = AppPeersManager.getInputPeerByID(peerID), - attachType; + attachType, fileName, fileName; if (!options.isMedia) { attachType = 'doc'; + fileName = 'doc.' + file.type.split('/')[1]; } else if (['image/jpeg', 'image/gif', 'image/png', 'image/bmp'].indexOf(file.type) >= 0) { attachType = 'photo'; + fileName = 'photo.' + file.type.split('/')[1]; } else if (file.type.substr(0, 6) == 'video/') { attachType = 'video'; + fileName = 'video.mp4'; } else if (file.type == 'audio/mpeg' || file.type == 'audio/mp3') { attachType = 'audio'; + fileName = 'audio.mp3'; } else { attachType = 'doc'; + fileName = 'doc.' + file.type.split('/')[1]; + } + + if (!file.name) { + file.name = fileName; } if (historyStorage === undefined) { @@ -1113,6 +1141,21 @@ angular.module('myApp.services', []) pending: true }; + var toggleError = function (on) { + var historyMessage = messagesForHistory[messageID]; + if (on) { + message.error = true; + if (historyMessage) { + historyMessage.error = true; + } + } else { + delete message.error; + if (historyMessage) { + delete historyMessage.error; + } + } + } + message.send = function () { MtpApiFileManager.uploadFile(file).then(function (inputFile) { var inputMedia; diff --git a/app/vendor/jquery.emojiarea/jquery.emojiarea.js b/app/vendor/jquery.emojiarea/jquery.emojiarea.js index 61e0f631..f0888c24 100644 --- a/app/vendor/jquery.emojiarea/jquery.emojiarea.js +++ b/app/vendor/jquery.emojiarea/jquery.emojiarea.js @@ -315,6 +315,16 @@ Following code was modified by Igor Zhukov, in order to improve rich text paste */ EmojiArea_WYSIWYG.prototype.onPaste = function(e) { + var cData = (e.originalEvent || e).clipboardData, + items = cData && cData.items || [], + i; + for (i = 0; i < items.length; i++) { + if (items[i].kind == 'file') { + e.preventDefault(); + return true; + } + } + var text = (e.originalEvent || e).clipboardData.getData('text/plain'), self = this; setTimeout(function () {