dax
(Daniela)
1
{“content”:"##
概述
当点击事件预览模态框(点击事件日期后出现的那个)中的“添加到日历”时:
下载的 .ics 文件被命名为 undefined.ics,日历文件中的事件标题也设置为 SUMMARY:undefined。然而,通过事件的 3 点菜单中的“添加到日历”选项下载日历可以正常工作,它会使用事件标题作为文件名和日历摘要。
复现步骤
- 创建或打开一个包含事件的主题
- 点击帖子中显示的事件日期以展开预览模态框
- 在模态框中,点击添加到日历
- 保存生成的
.ics 文件。
- 可选地,通过点击事件的 3 点菜单并从中选择添加到日历进行比较
预期结果
- 下载的
.ics 文件应以事件标题命名
- 日历文件内容应具有正确的
SUMMARY: 和事件标题
观察到的结果
- 下载的文件被命名为
undefined.ics
- 日历文件中的事件标题为
SUMMARY:undefined
- (从 3 点菜单下载时,文件名和摘要均正确。)
附加信息
在 Meta 和其他几个 Discourse 站点上测试,结果相同。",“target_locale”:“zh_CN”}
3 个赞
sam
(Sam Saffron)
3
这是一个棘手的问题,Dax,这是我们管道的一个副作用。
我们在这里生成日期的 bbcode:
并在这里进行处理:
因此,在处理后的 HTML 块的上下文中,“下载 ics”不知道它实际所在的帖子(或事件)。
我们还有另一个用于 ics 生成的不同管道:
因此,从工程角度来看,我们需要决定:
- 我们是否教会“日期处理”如何将 ics 生成重新路由到 Discourse Calendar。
或者
- 我们是否向 Discourse Local Dates 提供足够的信息,以便它可以独立生成 ics 并保持代码的零散。
我不确定在这里做什么才是正确的,但我已经优先处理了它,以便团队可以进行分类和解决。
5 个赞
Ric
(Ric Harvey)
5
大家好,为了提供一些背景信息,如果点击事件上的三个点,会出现“添加到日历”选项,并且这个功能确实可用。我不知道这是否有助于你们的调查,但似乎这个问题在代码的其他地方已经解决了。
6 个赞
sam
(Sam Saffron)
7
这里有很多内容:
今天是星期五(至少在某些地方是这样;p),所以我将等到周一再合并。
这个更改非常广泛,应该能显著改善我们的 ICS 支持。
- 统一 ICS 生成管道 - 我们只使用一种机制来处理“添加到日历”和点击日期
- 修正了 ICS 格式中的许多细微之处
- 我们传递 RRULE,因此如果您获取一个重复事件
- 正确的 CRLF 换行符和对 ICS 格式的普遍遵守
- 时区支持,因此当您获取事件的 ICS 时,它将显示正确的时区,而不是 UTC 事件 - 这意味着重复事件将起作用。
- 扩展了本地日期格式以支持可选编码的 ICS
我有一个悬而未决的问题:是,rrule 还是 否,rrule。
如果您点击这里:
我们是打算添加重复事件吗?还是只添加事件的单个实例?
同样,这里怎么样:
@lindsey 我在这两者之间摇摆不定,我能理解两种观点的论据。
- 我点击了一个重复事件,并想将重复事件添加到我的日历中
或者
- 我点击了一个重复事件的实例,并且只想添加它。
我实现了 (1),因为我倾向于认为它更正确,但如果您愿意,我也愿意将其更改为 (2)。
7 个赞
nat
(Natalie T)
拆分了此话题
8
lindsey
(Lindsey Fogle)
10
我能理解这两种观点,但我更倾向于 1。我认为它既更正确,也更容易“修复”——如果它不是用户想要的,因为大多数日历软件都可以轻松地通过单个操作(例如 Google 日历)删除额外的事件:
所以,以下麻烦:
比以下麻烦要小得多:
- 我确实想回复所有事件,所以我需要每周回来这里,并确保继续将它们添加到我的日历中
5 个赞