Redmine的code review插件可以显示代码的具体内容,但是缺少代码的作者、发布时间等等信息,所以需要对插件进行修改,添加这个功能。如图所示为没有修改时的显示页面:
可以看到,图中只有代码。
我们要做的就是在上面添加显示基本信息,研究过code_review源代码之后,发现相关的内容是在/app/views/code_review/_update_diff_view.html.erb中,添加如下代码段:
<div id="code-review-assign-info">
<table style="width:100%">
<tr>
<th>id </th>
<th>changeset.id </th>
<th>action </th>
<th>revision </th>
<th>commiter </th>
<th>committed_on </th>
<th>comment </th>
</tr>
<tr>
<th><%=h @change.id %> </th>
<th><%=h @change.changesetid %> </th>
<th><%=h @change.action %> </th>
<th><%=h @changeset.revision %> </th>
<th><%=h @changeset.committer %> </th>
<th><%=h @changeset.committed_on %> </th>
<th><%=h @changeset.comments %> </th>
</tr>
</table>
</div>
这段代码可以显示基本信息,通过如下所示的javascript代码调用:
var tables = $$('#content table.filecontent');
if (tables.length > 0) {
var table = tables[0];
new Insertion.Before(table, $('code-review-assign-info'));
}
其中,code-review-assign-info是一个CSS框架,需要在/assert/stylesheets/code_review.css中定义:
#code-review-assign-info {
text-align: center;
background-color: #0F2059;
color: white;
padding-left: 2px;
padding-right: 2px;
cursor: default;
}
经过以上修改之后,我们可以看到如下图所示的变化:
通过对比两幅图像,可以看到,多出的这部分信息就是我们新加入的代码改写的。这个基本可以很好的实现,但是当同时显示多个文件的时候就会遇到问题,这是接下来需要解决的。
通过这部分内容的学习,我了解了HTML、CSS和JavaScript的一些基础知识,不过还比较肤浅,还需要进一步的学习。