永久删除无法正常工作

我使用的是 2.9.0.beta14 版本,并通过 app.yml 中的 DISCOURSE_CAN_PERMANENTLY_DELETE 启用了永久删除。

该选项出现在帖子的论坛上,如果我点击它,会弹出一个模态框要求我确认,然后当我点击确定时,什么也没有发生。

在 devtools 的网络选项卡中查看,没有任何请求。在控制台中查看,没有额外的错误或日志。

帖子没有被删除,仍然保留在那里。

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
    fajax.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
    
    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 天后无人回复。新回复已不允许。