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