diff --git a/app/img/icons/General.png b/app/img/icons/General.png index 1ccc5887..c655beea 100644 Binary files a/app/img/icons/General.png and b/app/img/icons/General.png differ diff --git a/app/img/icons/General_2x.png b/app/img/icons/General_2x.png index b0a50d61..9fe88d8b 100644 Binary files a/app/img/icons/General_2x.png and b/app/img/icons/General_2x.png differ diff --git a/app/js/lib/mtproto_wrapper.js b/app/js/lib/mtproto_wrapper.js index 6cb20c08..475d812b 100644 --- a/app/js/lib/mtproto_wrapper.js +++ b/app/js/lib/mtproto_wrapper.js @@ -805,9 +805,9 @@ angular.module('izhukov.mtproto.wrapper', ['izhukov.utils', 'izhukov.mtproto']) // console.log(dT(), 'check instance', newInstance, curInstance, idleInstance) if (!idle || - !curInstance || - curInstance.id == instanceID || - curInstance.time < time - 60000) { + !curInstance || + curInstance.id == instanceID || + curInstance.time < time - 60000) { if (idleInstance && idleInstance.id == instanceID) { Storage.remove('xt_idle_instance') diff --git a/app/js/locales/en-us.json b/app/js/locales/en-us.json index 58b92feb..5cdc3b43 100644 --- a/app/js/locales/en-us.json +++ b/app/js/locales/en-us.json @@ -227,12 +227,13 @@ "confirm_modal_clipboard_file_send": "Are you sure to send file(s) from clipboard?", "confirm_modal_clipboard_X_files_send": "{'one': 'Are you sure to send file from clipboard?', 'other': 'Are you sure to send {} files from clipboard?'}", "confirm_modal_message_delete": "Are you sure you want to delete the message?", - "confirm_modal_X_messages_delete": "{'one': 'Are you sure you want to delete the message?', 'other': 'Are you sure you want to delete {} messages?'}", + "confirm_modal_delete_X_messages": "{'one': '{} message', 'other': '{} messages'}", + "confirm_modal_delete_messages": "Are you sure you want to delete {messages}?", "confirm_modal_message_revoke": "Delete for {recipient}", - "confirm_modal_message_revoke_recipient_group": "everyone", - "confirm_modal_X_messages_non_configurable_for_everyone": "{'one': 'This will delete it for everyone in this chat.', 'other': 'This will delete them for everyone in this chat.'}", - "confirm_modal_X_messages_non_configurable_for_user_only": "{'one': 'This will delete it just for you, not for {{ userFirstName }}.', 'other': 'This will delete them just for you, not for {{ userFirstName }}.'}", - "confirm_modal_X_messages_non_configurable_for_user_only_in_group": "{'one': 'This will delete it just for you, not for other participants of the chat.', 'other': 'This will delete them just for you, not for other participants of the chat.'}", + "confirm_modal_message_revoke_recipient_chat": "everyone", + "confirm_modal_delete_messages_for_everyone_chat": "This will delete messages for everyone in this chat.", + "confirm_modal_delete_messages_for_you_only_pm": "This will delete messages just for you, not for {user}.", + "confirm_modal_delete_messages_for_you_only_chat": "This will delete messages just for you, not for other participants of the chat.", "confirm_modal_photo_delete": "Are you sure you want to delete the photo?", "confirm_modal_contacts_import": "Telegram will now sync your contacts in order to find your friends.", "confirm_modal_login_phone_correct": "Is this phone number correct?", @@ -362,7 +363,7 @@ "message_service_phonecall_incoming": "Incoming Call", "message_service_phonecall_outgoing": "Outgoing Call", "message_service_phonecall_missed": "Missed Call", - "message_service_phonecall_canceled": "Canceled Call", + "message_service_phonecall_canceled": "Cancelled Call", "message_service_phonecall": "Phone call {duration}", "message_service_scored_game": "{scored} in {message}", "message_service_unsupported_action": "unsupported action {action}", @@ -396,7 +397,7 @@ "error_modal_password_success_title": "Success!", "error_modal_password_disabled_title": "Password deactivated", "error_modal_media_not_supported_title": "Unsupported media", - "error_modal_phonecalls_not_supported_title": "Calls are not available", + "error_modal_phonecalls_not_supported_title": "Calls are not available yet", "error_modal_recovery_na_title": "Sorry", "error_modal_network_description": "Please check your internet connection.", @@ -414,7 +415,7 @@ "error_modal_username_occupied_description": "Sorry, this username is already taken.", "error_modal_media_not_supported_description": "Your browser cannot play this media file. Try downloading the file and opening it in a standalone player.", "error_modal_username_not_found_description": "There is no Telegram account with the username you provided.", - "error_modal_phonecalls_not_supported_description_md": "Unfortunately calls are not supported in Web App at the moment.\nYou can call {user} via mobile apps or native desktop applications.\n{download-link: Download »}", + "error_modal_phonecalls_not_supported_description_md": "Unfortunately calls are not supported in the Web App at the moment.\n\nYou can call {user} using our mobile apps or native desktop applications.\n{download-link: Download »}", "error_modal_bad_request_description": "One of the params is missing or invalid.", "error_modal_unauthorized_description": "This action requires authorization access. Please {login-link: log in}.", diff --git a/app/js/messages_manager.js b/app/js/messages_manager.js index eb578970..7e7a8518 100644 --- a/app/js/messages_manager.js +++ b/app/js/messages_manager.js @@ -975,8 +975,20 @@ angular.module('myApp.services') var message = messagesStorage[messageID] if (message._ != 'message' || - message.deleted || - !message.pFlags.out || + message.deleted) { + return false + } + + var peerID = getMessagePeer(message) + if (peerID < 0 && !AppChatsManager.isChannel(-peerID)) { + var chat = AppChatsManager.getChat(-peerID) + if (chat.pFlags.creator || + chat.pFlags.admins_enabled && chat.pFlags.admin) { + return true + } + } + + if (!message.pFlags.out || message.date < tsNow(true) - 2 * 86400) { return false } diff --git a/app/js/services.js b/app/js/services.js index c1b1af48..9fb75a92 100755 --- a/app/js/services.js +++ b/app/js/services.js @@ -648,8 +648,8 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils']) switch (action) { case 'send': if (chat._ == 'channel' && - !chat.pFlags.megagroup && - !chat.pFlags.editor) { + !chat.pFlags.megagroup && + !chat.pFlags.editor) { return false } break @@ -660,7 +660,7 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils']) if (chat._ == 'channel') { if (chat.pFlags.megagroup) { if (!chat.pFlags.editor && - !(action == 'invite' && chat.pFlags.democracy)) { + !(action == 'invite' && chat.pFlags.democracy)) { return false } } else { @@ -668,7 +668,7 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils']) } } else { if (chat.pFlags.admins_enabled && - !chat.pFlags.admin) { + !chat.pFlags.admin) { return false } } diff --git a/app/less/app.less b/app/less/app.less index 42209e46..ae9c7223 100644 --- a/app/less/app.less +++ b/app/less/app.less @@ -1411,22 +1411,24 @@ a.im_dialog_selected { } .im_dialog_pinned { - background: red; display: inline-block; float: right; - width: 8px; - height: 8px; - border-radius: 5px; + width: 14px; + height: 14px; overflow: hidden; margin: 12px 0 0; + .image-2x('../img/icons/General.png', 40px, 948px); + background-position: -13px -916px; + // background-position: -13px -892px; + a.im_dialog:hover &, a.im_dialog_selected & { - background: red; + background-position: -13px -916px; } .active & { - background-color: red; + background-position: -13px -916px; } } diff --git a/app/partials/desktop/confirm_modal.html b/app/partials/desktop/confirm_modal.html index ebf8217e..828e5be9 100644 --- a/app/partials/desktop/confirm_modal.html +++ b/app/partials/desktop/confirm_modal.html @@ -22,22 +22,23 @@ - - + + + + - +

- - - + + +