在Trac中更改票证显示

时间:2010-07-27 04:57:14

标签: templates trac

使用默认模板,trac票证仅供查看,我必须单击修改以展开属性选项卡以修改,更改票证的状态。 现在我想自动扩展该选项卡?如何在不更改模板本身的情况下快速更改? 是否可以使用trac.ini文件进行更改? 我无法找到要更改的默认模板的位置,所以我无法改变自己。 谢谢!

3 个答案:

答案 0 :(得分:8)

我认为启用您正在寻找的行为的最佳方法是添加一个自定义JS文件(可以像自定义CSS一样注入,读取TracInterfaceCustomization)。

在该文件中执行以下操作:

$(document).ready(function() {
 window.setTimeout(function() {
    $("#modify").parent().removeClass('collapsed')
 }, 0);
});

此代码未经测试,但它应该为您提供想法。基本上我们需要等到DOM准备就绪($(document).ready)但由于在该事件期间调用了多个JS函数,setTimeOut会设置一个稍微的延迟以确保崩溃命令在之前完成。

来自专业Trac开发人员的HTH: - )

答案 1 :(得分:3)

我正在使用trac 0.12并遇到同样的问题。

  

...而不更改模板本身

我找不到配置它的选项,但我注意到如果您单击故障单右上角的“修改”快速链接,则“修改故障单”可折叠区域会自动显示没有为你复制。

  

我知道你没有要求它,但为了以防万一,你想要一个可怕的模板黑客......

在编辑器中打开模板文件,例如在CentOS 5.5中对我来说:

sudo emacs  /usr/lib/python2.4/site-packages/Trac-0.12-py2.4.egg/trac/ticket/templates/ticket.html

注释掉触发修改部分的jQuery行,以便在页面就绪时折叠:

//$("#modify").parent().toggleClass("collapsed");

我发现编辑没有立即生效 - 也许模板是缓存的还是什么?它经过几分钟的转换 - 刷新并重新启动apache后工作。

希望其他人以更好的解决方案回答......

答案 2 :(得分:2)

这基本上是施瓦茨的答案,但是以更简单的形式

要在加载时扩展票证控件,请执行以下操作。下面的代码

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://genshi.edgewall.org/"
      py:strip="">

  <!--! Add site-specific style sheet -->
  <head py:match="head" py:attrs="select('@*')">
    ${select('*|comment()|text()')}
    <script type="text/JavaScript">
    <!--
    // EXPAND TICKET CONROLS ON LOAD.
    jQuery(document).ready(function() {
     window.setTimeout(function() {
        $("#modify").parent().removeClass('collapsed')
     }, 1);
    });
    //-->
    </script>
  </head>

  <body py:match="body" py:attrs="select('@*')">
    ${select('*|text()')}
  </body>
</html>

在文件 site.html 中的/ path / to / your / trac / project / templates 目录中。

相关问题