| 621 | } | 621 | } |
| 622 | | 622 | |
| 623 | async function deleteMessageImage() { | 623 | async function deleteMessageImage() { |
| 624 | const value = await callGenericPopup('<h3>Delete image from message?<br>This action can\'t be undone.</h3>', POPUP_TYPE.CONFIRM); | 624 | const value = await callGenericPopup('<h3>Delete image from message?<br>This action can\'t be undone.</h3>', POPUP_TYPE.TEXT, '', { |
| | 625 | okButton: t`Delete one`, |
| | 626 | customButtons: [ |
| | 627 | { |
| | 628 | text: t`Delete all`, |
| | 629 | appendAtEnd: true, |
| | 630 | result: POPUP_RESULT.CUSTOM1, |
| | 631 | }, |
| | 632 | { |
| | 633 | text: t`Cancel`, |
| | 634 | appendAtEnd: true, |
| | 635 | result: POPUP_RESULT.CANCELLED, |
| | 636 | }, |
| | 637 | ], |
| | 638 | }); |
| 625 | | 639 | |
| 626 | if (value !== POPUP_RESULT.AFFIRMATIVE) { | 640 | if (!value) { |
| 627 | return; | 641 | return; |
| 628 | } | 642 | } |
| 629 | | 643 | |
| 630 | const mesBlock = $(this).closest('.mes'); | 644 | const mesBlock = $(this).closest('.mes'); |
| 631 | const mesId = mesBlock.attr('mesid'); | 645 | const mesId = mesBlock.attr('mesid'); |
| 632 | const message = chat[mesId]; | 646 | const message = chat[mesId]; |
| | 647 | |
| | 648 | let isLastImage = true; |
| | 649 | |
| | 650 | if (Array.isArray(message.extra.image_swipes)) { |
| | 651 | const indexOf = message.extra.image_swipes.indexOf(message.extra.image); |
| | 652 | if (indexOf > -1) { |
| | 653 | message.extra.image_swipes.splice(indexOf, 1); |
| | 654 | isLastImage = message.extra.image_swipes.length === 0; |
| | 655 | if (!isLastImage) { |
| | 656 | const newIndex = Math.min(indexOf, message.extra.image_swipes.length - 1); |
| | 657 | message.extra.image = message.extra.image_swipes[newIndex]; |
| | 658 | } |
| | 659 | } |
| | 660 | } |
| | 661 | |
| | 662 | if (isLastImage || value === POPUP_RESULT.CUSTOM1) { |
| 633 | delete message.extra.image; | 663 | delete message.extra.image; |
| 634 | delete message.extra.inline_image; | 664 | delete message.extra.inline_image; |
| 635 | delete message.extra.title; | 665 | delete message.extra.title; |
| 636 | delete message.extra.append_title; | 666 | delete message.extra.append_title; |
| | 667 | delete message.extra.image_swipes; |
| 637 | mesBlock.find('.mes_img_container').removeClass('img_extra'); | 668 | mesBlock.find('.mes_img_container').removeClass('img_extra'); |
| 638 | mesBlock.find('.mes_img').attr('src', ''); | 669 | mesBlock.find('.mes_img').attr('src', ''); |
| | 670 | } else { |
| | 671 | appendMediaToMessage(message, mesBlock); |
| | 672 | } |
| | 673 | |
| 639 | await saveChatConditional(); | 674 | await saveChatConditional(); |
| 640 | } | 675 | } |
| 641 | | 676 | |