| 621 | 621 | } |
| 622 | 622 | |
| 623 | 623 | async function deleteMessageImage() { |
| 624 | 624 | const value = await callGenericPopup('<h3>Delete image from message?<br>This action can\'t be undone.</h3>', POPUP_TYPE.CONFIRM);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 | 640 | if (value !== POPUP_RESULT.AFFIRMATIVEvalue) { |
| 627 | 641 | return; |
| 628 | 642 | } |
| 629 | 643 | |
| 630 | 644 | const mesBlock = $(this).closest('.mes'); |
| 631 | 645 | const mesId = mesBlock.attr('mesid'); |
| 632 | 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 | 663 | delete message.extra.image; |
| 634 | 664 | delete message.extra.inline_image; |
| 635 | 665 | delete message.extra.title; |
| 636 | 666 | delete message.extra.append_title; |
| 667 | + delete message.extra.image_swipes; |
| 637 | 668 | mesBlock.find('.mes_img_container').removeClass('img_extra'); |
| 638 | 669 | mesBlock.find('.mes_img').attr('src', ''); |
| 670 | + } else { |
| 671 | + appendMediaToMessage(message, mesBlock); |
| 672 | + } |
| 673 | + |
| 639 | 674 | await saveChatConditional(); |
| 640 | 675 | } |
| 641 | 676 | |