【问题标题】:How do I add a DatePicker to a custom field如何将 DatePicker 添加到自定义字段
【发布时间】:2014-03-29 04:05:35
【问题描述】:

我正在运行 TRAC 1.0.1。 对于我的门票,我想要一个 DueDate。应使用 DatePicker 输入 DueDate。因为它很方便,而且你不能输入错误的值。

我在 TRAC 中添加了以下插件:http://trac-hacks.org/wiki/DateFieldPlugin 描述说,它为自定义字段提供验证,为里程碑和工单字段提供 DatePicker。

我的 trac.ini 配置文件如下所示:

[ticket-custom]
duedate1 = text
duedate1.date = true
duedate1.date_empty = true
duedate1.label = Due Date
duedate1.order = 4
duedate1.value = DD-MM-YYYY

[datefield]
first_day = 1
format = dmy
separator = -

TRAC 现在正在根据格式检查输入。但我真正想要的是弹出一个让我选择日期的 DatePicker。

感谢任何帮助。

【问题讨论】:

    标签: trac


    【解决方案1】:

    如果输入正在验证但没有日期选择器,这听起来像是客户端 JS/浏览器问题。

    我刚刚创建了一个新的 Trac 环境,添加了 DateFieldPlugin,复制了您的 [ticket-custom][datefield]ini 配置,它似乎开箱即用。例如,在 /newticket 上,我可以看到截止日期字段的日期选择器(至少使用 Firefox)。鉴于此,我真正能做的就是提供更多细节,这可能有助于我们调试您的问题。

    日期选择器是通过 JavaScript 添加的。如果您正在运行 Trac 1.0,那么您无需担心 jQuery 或 jQuery UI,因为 Trac 核心现在带有这些依赖项。当您运行 tracd 时,您可以通过查看 Firebug 等中的脚本选项卡来看到这一点。您是否在为自己的 jQuery 或 jQuery UI 脚本提供可能有冲突的服务? Firebug 控制台选项卡上是否显示任何错误?

    当您在 Trac 中请求某些页面时,该插件会提供额外的 JS 文件,包括 /newticket 和 /ticket。您还应该能够看到这些脚本在 Firebug 等中提供服务。对您来说是这样吗?

    如果您检查显示在 /newticket 上的 ticket.html 模板中的 HTML,您还应该在截止日期输入中看到类似这样的内容

    <input type="text" class="datepick hasDatepicker" value="MM-DD-YYYY" name="field_due_date1" id="field-due_date1">
    

    请注意,datepickhasDatePicker 两个类告诉 JS 呈现 jQuery Datepicker 对话框。您的自定义字段是否有这些类?该插件应该会为您添加它们(在post_process_request() 内)

    如果所有这些对你来说都是一样的,那可能是浏览器的问题?

    【讨论】:

    • 感谢您花时间研究我的问题。我真的很高兴你能证明日期选择器正在工作。这意味着,我也可以让它在我身边工作。我会按照建议进行,并让您知道结果。
    • 是的,如果有任何遗漏,请告诉我们
    • 它正在工作。我认为问题出在,因为我完全按照此页面 (trac-hacks.org/wiki/DateFieldPlugin#SourceDownload) 上的安装过程进行操作。我从 0.11 存储库安装。我删除了插件并安装了最新的插件,即 1.0。它现在运行良好。感谢您的帮助。
    【解决方案2】:

    虽然插件方式没问题,但当没有其他方式时,现在它只是第二好的,因为将日期/时间存储为格式化字符串而不是 POSIX(微)秒的所有限制,就像其他原生跟踪时间字段。

    有一个更好的方法:Custom date/time field support 从 1.1.1 开始进入 Trac 核心(“不稳定”的开发分支正在向下一个稳定的 1.2 移动)。

    至少如果您预见到大量使用和/或长期 Trac 部署,您会喜欢从一开始就为您的数据库添加真正的时间戳。它为您提供最佳体验,例如日期选择器 UI、完整时区和 TracQuery 支持,甚至未来的时间限制('nextday'、'nextweek'等)现在都是可能的。

    关于 Trac 代码稳定性的最后一点说明:我使用真正的自定义时间字段支持自 2009 年以来通过生产中的补丁(Trac 0.13dev),目前在拥有 30.000 多张票证的应用程序中运行顺畅。

    【讨论】:

    • 使用补丁听起来是个有趣的选择。我从哪里可以获得这些补丁,如何将它们应用到我的系统中?
    • 嗯,您也许可以提取所有相关文件的补丁。但我不敢马上安装 Trac 1.1.1。
    猜你喜欢
    • 2021-01-01
    • 1970-01-01
    • 2012-07-29
    • 2018-08-11
    • 2019-10-05
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多