Удаление навсегда не работает

Я использую версию 2.9.0.beta14 и включил возможность постоянного удаления через параметр DISCOURSE_CAN_PERMANENTLY_DELETE в файле app.yml.

В форуме появляется опция для удаления поста. При нажатии на неё открывается модальное окно с запросом подтверждения, но после нажатия кнопки «OK» ничего не происходит.

В вкладке Network в инструментах разработчика нет запросов. В консоли также отсутствуют дополнительные ошибки или логи.

Пост не удаляется и остаётся на месте.

1 лайк

После обновления до версии 3.0.0 beta 15 проблема всё ещё сохраняется. Что я могу сделать, чтобы предоставить логи и другую информацию? Спасибо.

Привет, @Soenneker :slight_smile:

Извините за запоздалый ответ. Я только что включил эту настройку и протестировал её на своём тестовом сайте. Я тоже наблюдаю схожее поведение, но только в том случае, если не обновлять страницу перед попыткой выполнить постоянное удаление.

Мои шаги:

  • Мягкое удаление существующего поста
  • Открытие меню шестерёнки поста и нажатие «Постоянно удалить»
  • Появляется модальное окно подтверждения: «Вы уверены, что хотите навсегда удалить этот пост? Вы не сможете его восстановить»
  • Нажатие на «Да»
  • Модальное окно закрывается, но реакции нет. Пост остаётся в состоянии мягкого удаления

Однако, если добавить обновление страницы, всё работает как задумано:

  • Мягкое удаление существующего поста
  • Обновление страницы
  • Отображение мягко удалённого поста с помощью «Просмотреть скрытый ответ»
  • Открытие меню шестерёнки поста и нажатие «Постоянно удалить»
  • Появляется модальное окно подтверждения: «Вы уверены, что хотите навсегда удалить этот пост? Вы не сможете его восстановить»
  • Нажатие на «Да»
  • Пост удаляется навсегда (при условии, что прошло 5 минут или используется второй тестовый пользователь с правами администратора)

Звучит ли это вам знакомо, или мне стоит попробовать что-то ещё, чтобы воспроизвести то, что вы наблюдаете?

4 лайка

Привет, @JammyDodger

Спасибо за ваш ответ.

Я вижу проблему, о которой вы говорите; всё это совпадает с текущим функционалом, который я тоже наблюдаю.

Несколько дополнений к моим наблюдениям:

Если я обновляю страницу с мягко удалённым постом через 5 минут, а затем удаляю его окончательно, тема всё ещё не удаляется. Появляется модальное окно, которое вы видели, и я нажимаю «ОК». Для постов, отличных от исходного, это работает.

Однако, если я перехожу по адресу /latest?status=deleted, тема всё ещё отображается в списке. В списке тем указано «Ответы -1», а при клике на такие темы я вижу страницу с ошибкой «:frowning: что-то пошло не так».

Один раз я получил ошибку 500. Возможно, тема всё ещё удалялась, или я попытался удалить её в процессе удаления:
Просматривая лог ошибок, я вижу следующее:

NoMethodError (undefined method `topic_id' for nil:NilClass)
lib/post_destroyer.rb:60:in `destroy'
app/controllers/topics_controller.rb:643:in `destroy'
app/controllers/application_controller.rb:413:in `block in with_resolved_locale'
app/controllers/application_controller.rb:413:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:209:in `call'
1 лайк

Отлично. Думаю, этой информации достаточно для воспроизведения проблемы. :slight_smile: :+1:

Я попробовал ещё раз, но с темой, состоящей только из исходного поста (OP):

  • Создать тему (без ответов)
  • Мягко удалить тему (и подождать 5 минут)
  • Открыть гаечный ключ поста и выбрать «Навсегда удалить»
  • Подтвердить
  • «Ошибка. Что-то пошло не так»
  • Тема всё ещё отображается в ?status=deleted, но при попытке открыть её показывается экран «Ошибка. Что-то пошло не так», а в консоли появляется следующее сообщение:
TypeError: p is undefined
    setupController topic-from-params.js:68
    setup Ember
    s router_js.js:1514
    routeEnteredOrUpdated router_js.js:1524
    setupContexts router_js.js:1470
    finalizeTransition router_js.js:1378
    promise router_js.js:1321
    b rsvp.js:435
    g rsvp.js:421
    invoke queue.ts:203
    flush queue.ts:98
    flush deferred-action-queues.ts:75
    _end index.ts:616
    end index.ts:298
    _run index.ts:667
    run index.ts:339
    d Ember
    success ajax.js:101
    jQuery 6
    y ajax.js:150
    E rsvp.js:460
    E rsvp.js:916
    f ajax.js:163
    loadTopicView topic.js:24
    getAndRemove preload-store.js:28
    E rsvp.js:460
    E rsvp.js:916
    getAndRemove preload-store.js:27
    loadTopicView topic.js:24
    refresh post-stream.js:264
    model topic-from-params.js:25
    deserialize Ember
    getModel router_js.js:775
    resolve router_js.js:616
    b rsvp.js:435
    g rsvp.js:421
    invoke queue.ts:203
    flush queue.ts:98
    flush deferred-action-queues.ts:75
    _end index.ts:616
    _boundAutorunEnd index.ts:257
    promise callback*n/< platform.ts:28
    flush Ember
    _scheduleAutorun index.ts:803
    _ensureInstance index.ts:791
    schedule index.ts:384
    <anonymous> Ember
    v rsvp.js:492
    resolve router_js.js:934
    y router_js.js:249
    getTransitionByIntent router_js.js:1305
    transitionByIntent router_js.js:1247
    doTransition router_js.js:1366
    transitionTo router_js.js:1776
    Ember 2
    handleURL url.js:366
    routeTo url.js:211
    w topic-list-item.js:31
    click topic-list-item.js:187
    Ember 5
application.js:83

Давайте посмотрим, сможем ли мы привлечь кого-то к проверке этого. :+1: :slight_smile:

1 лайк

Несколько дней назад я объединил несколько исправлений, связанных с постоянным удалением. Думаю, теперь всё должно работать как ожидалось.

Спасибо за сообщение об ошибке!

2 лайка

Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.