自定义CodeReview的检视字段属性详情
因为每个团队的实际诉求与使用场景不一样,所以在实际代码review
的过程中,除了一些基础的review属性(比如代码所在类、行号、引用内容、检视人员、检视时间等)之外,还会有一些个性化的字段值诉求,比如有的需要填写问题归属版本号,有的需要填写问题引入人员、或者问题引入时间等等。
为了满足这种实际使用上的诉求,CodeReviewHelper
插件支持了自定义评审字段的能力。下面详细介绍下具体的配置操作方式。
单机版本自定义配置
单机版IDEA插件中,点击设置按钮,可以看到字段定制的按钮,点击按钮可以进行配置修改。
在字段属性调整窗口中,可以修改窗口中的json格式
配置内容,可以添加或者删除字段定义,或者修改已有的字段属性。
修改完成后,点击OK
按钮,完成编辑。
如果修改出现错误导致插件功能受影响,可以点击左下角的恢复默认配置
按钮,恢复到插件初始状态,然后可以重新调整配置。
网络版本字段统一配置
网络版本面向的是团队协同的场景,为了保证团队内部的协同,切换到网络版本之后,不允许个人在插件端自行修改评审字段的定义,只能由管理员在服务端进行修改,然后所有连接到该服务端的插件同步共享同一份配置。
下面介绍下网络版本下,如何进行自定义字段的配置与更新同步。
客户端同步配置信息
对于插件端而言,如果切换到网络版本,可以在面板上看到同步配置
按钮,点击按钮,可以手动从服务端拉取最新的评审字段配置信息,并更新本地的插件配置。
一般情况下,您无需手动执行该动作,因为插件会定制从服务端进行配置的更新。
服务端配置字段数据
如果您是CodeReview
服务端的管理员,那么您将有权限去设置团队的代码检视意见字段内容的配置,该配置修改后,所有连接到此服务端的客户端将会同步更新到最新的配置。
以管理员身份登录到管理界面之后,左侧菜单切换到评审字段配置
页签,可以看到当前已有的字段属性。可以在该界面上,对评审字段进行增删或者修改操作。
点击新增按钮,可以添加新的字段信息。点击某条已有记录右侧的编辑
按钮,可以对已有字段的相关属性进行调整:
需要注意一点:对于系统预置字段,不允许删除、不允许修改字段编码的值,其余属性可以进行调整。
每个字段的界面属性类型,有三种选项:
类型 | 界面显示形态 | 补充说明 |
---|---|---|
TEXT | 单行输入框 | 值内容由用户手动输入,内部不限 |
TEXTAREA | 多行输入框 | 值内容由用户手动输入,内部不限 |
COMBO_BOX | 下拉框 | 如果是下拉框类型,需要额外配置下拉框绑定的候选值列表 |
DATE | 日期 | 界面上呈现一个日期选择控件 |
具体每种类型对应的界面效果说明如下:
如果类型设置为下拉框
,需要在配置的时候,指定其绑定的下拉框列表:
这里下拉框候选值绑定的时候,对应的数据集
支持两种类型:
- 固定的枚举值,预先配置好可选范围,然后下拉框中是固定的选项
- 不固定的数据列表,比如用户列表、项目列表等,这部分数据需要实时查询出来
这里候选数据集,在字典值管理
界面中进行维护(下面章节中会介绍具体操作)。在字段配置界面上按需绑定对应的数据集即可,对应的效果差异对比说明如下:
下拉框候选值配置
前面介绍了在配置下拉框候选值内容的时候,需要给下拉框绑定一个数据字典集。这里介绍下如何去维护字典集数据。
使用管理员账号登录web端管理系统,左侧菜单切换到字典集管理
界面,可以看到已有的字典集数据。可以在该界面进行数据的维护。
点击创建按钮,可以添加一个字典集:
字典集创建的时候,需要指定字典集类型
,目前系统支持两种类型:
类型 | 含义说明 | 补充说明 |
---|---|---|
手动配置枚举项 | 固定的枚举值列表,作为下拉框的取值 | 需要手动在界面配置好候选值 |
系统预置动态列表 | 不固定的数据列表,比如用户列表、项目列表等,这部分数据需要实时查询出来 | 需要代码层面支持,如果需要增加新的类型,需代码层面定制支持 |
附录:字段参数含义说明
配置字段的含义描述如下:
字段 | 取值约束 | 含义说明 |
---|---|---|
columnCode | 字符串,不能重复 | 字段在代码层面处理时的唯一编码 |
showName | 字符串 | 此字段在界面或者表格中显示的名称 |
systemInitialization | boolean | 是否为系统内置字段,为true表示系统预置字段,此类字段不可修改其columnCode值 |
sortIndex | int | 排序权重,编码越大排序越后 |
supportInExcel | boolean | 是否支持导出到Excel中 |
excelColumnWidth | int | 导出到Excel中时此字段宽度 |
editableInAddPage | boolean | 在创建界面,该字段是否支持编辑 |
editableInEditPage | boolean | 在编辑界面,该字段是否支持编辑 |
editableInConfirmPage | boolean | 在确认界面,该字段是否支持编辑 |
required | boolean | 字段是否必填 |
showInAddPage | boolean | 字段是否需要在添加评审意见界面呈现 |
showInEditPage | boolean | 字段是否需要在修改评审意见界面呈现 |
showInComfirmPage | boolean | 字段是否需要在确认评审意见界面呈现 |
showInIdeaTable | boolean | 字段是否需要在IDEA表格界面显示 |
showInWebTable | boolean | 在WEB管理界面的表格中,此字段是否需要在界面呈现 |
webTableColumnWidth | int | 在WEB管理界面的表格中显示的时候,此字段占据的列宽 |
inputType | String枚举值 | 支持三个值:TEXT 、TEXTAREA 、COMBO_BOX |
dictCollectionCode | String | 如果是下拉框,此值必填,填写下拉框绑定的字典集code |
enumValues | inputType为下拉框类型时的候选值 | 对象列表,每个候选对象需要包含showName和value两个属性,参见下方json示意中的值。 |
配置文件示例如下:
{
"columns": [
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "ID",
"sortIndex": 0,
"supportInExcel": true,
"webTableColumnWidth": 100,
"required": true,
"showInWebTable": true,
"editableInConfirmPage": false,
"showInAddPage": false,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": false,
"columnCode": "identifier",
"systemInitialization": true,
"inputType": "TEXT",
"id": 10,
"showInEditPage": true
},
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "项目信息",
"sortIndex": 1,
"supportInExcel": true,
"webTableColumnWidth": 200,
"required": false,
"showInWebTable": true,
"editableInConfirmPage": true,
"showInAddPage": true,
"editableInEditPage": true,
"excelColumnWidth": 50,
"editableInAddPage": true,
"columnCode": "projectId",
"systemInitialization": true,
"inputType": "TEXT",
"id": 16,
"showInEditPage": true
},
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "文件路径",
"sortIndex": 100,
"supportInExcel": true,
"webTableColumnWidth": 150,
"required": true,
"showInWebTable": true,
"editableInConfirmPage": false,
"showInAddPage": true,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": false,
"columnCode": "filePath",
"systemInitialization": true,
"inputType": "TEXT",
"id": 11,
"showInEditPage": true
},
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "代码行号",
"sortIndex": 200,
"supportInExcel": true,
"webTableColumnWidth": 100,
"required": true,
"showInWebTable": true,
"editableInConfirmPage": false,
"showInAddPage": true,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": false,
"columnCode": "lineRange",
"systemInitialization": true,
"inputType": "TEXT",
"id": 13,
"showInEditPage": true
},
{
"showInIdeaTable": true,
"showInConfirmPage": false,
"showName": "代码片段",
"sortIndex": 300,
"supportInExcel": true,
"webTableColumnWidth": 400,
"required": true,
"showInWebTable": true,
"editableInConfirmPage": false,
"showInAddPage": true,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": false,
"columnCode": "content",
"systemInitialization": true,
"inputType": "TEXTAREA",
"id": 12,
"showInEditPage": true
},
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "意见类型",
"dictCollectionCode": "CommentType",
"sortIndex": 400,
"supportInExcel": true,
"webTableColumnWidth": 100,
"required": false,
"showInWebTable": true,
"editableInConfirmPage": true,
"showInAddPage": true,
"editableInEditPage": true,
"excelColumnWidth": 50,
"editableInAddPage": true,
"columnCode": "type",
"systemInitialization": false,
"inputType": "COMBO_BOX",
"id": 15,
"showInEditPage": true,
"enumValues": [
{
"showName": "问题",
"value": "1"
},
{
"showName": "建议",
"value": "2"
},
{
"showName": "疑问",
"value": "3"
}
]
},
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "检视人员",
"sortIndex": 450,
"supportInExcel": true,
"webTableColumnWidth": 100,
"required": true,
"showInWebTable": true,
"editableInConfirmPage": true,
"showInAddPage": true,
"editableInEditPage": true,
"excelColumnWidth": 50,
"editableInAddPage": true,
"columnCode": "reviewer",
"systemInitialization": true,
"inputType": "TEXT",
"id": 22,
"showInEditPage": true
},
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "检视时间",
"sortIndex": 500,
"supportInExcel": true,
"webTableColumnWidth": 110,
"required": true,
"showInWebTable": true,
"editableInConfirmPage": false,
"showInAddPage": false,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": false,
"columnCode": "reviewDate",
"systemInitialization": true,
"inputType": "TEXT",
"id": 17,
"showInEditPage": false
},
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "检视意见",
"sortIndex": 600,
"supportInExcel": true,
"webTableColumnWidth": 300,
"required": true,
"showInWebTable": true,
"editableInConfirmPage": true,
"showInAddPage": true,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": true,
"columnCode": "comment",
"systemInitialization": true,
"inputType": "TEXTAREA",
"id": 14,
"showInEditPage": false
},
{
"showInIdeaTable": true,
"showInConfirmPage": false,
"showName": "指定确认人员",
"sortIndex": 700,
"supportInExcel": true,
"webTableColumnWidth": 100,
"required": false,
"showInWebTable": true,
"editableInConfirmPage": false,
"showInAddPage": true,
"editableInEditPage": true,
"excelColumnWidth": 50,
"editableInAddPage": true,
"columnCode": "assignConfirmer",
"systemInitialization": true,
"inputType": "TEXT",
"id": 20,
"showInEditPage": true
},
{
"showInIdeaTable": true,
"showInConfirmPage": false,
"showName": "实际确认人员",
"sortIndex": 900,
"supportInExcel": true,
"webTableColumnWidth": 100,
"required": true,
"showInWebTable": true,
"editableInConfirmPage": false,
"showInAddPage": false,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": false,
"columnCode": "realConfirmer",
"systemInitialization": true,
"inputType": "TEXT",
"id": 18,
"showInEditPage": false
},
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "确认结果",
"dictCollectionCode": "ConfirmResult",
"sortIndex": 1000,
"supportInExcel": true,
"webTableColumnWidth": 100,
"required": false,
"showInWebTable": true,
"editableInConfirmPage": true,
"showInAddPage": false,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": true,
"columnCode": "confirmResult",
"systemInitialization": true,
"inputType": "COMBO_BOX",
"id": 19,
"showInEditPage": false,
"enumValues": [
{
"showName": "未确认",
"value": "unconfirmed"
},
{
"showName": "已修改",
"value": "2"
},
{
"showName": "待修改",
"value": "3"
},
{
"showName": "拒绝",
"value": "4"
}
]
},
{
"showInIdeaTable": true,
"showInConfirmPage": true,
"showName": "确认说明",
"sortIndex": 1100,
"supportInExcel": true,
"webTableColumnWidth": 300,
"required": false,
"showInWebTable": true,
"editableInConfirmPage": true,
"showInAddPage": false,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": false,
"columnCode": "confirmNotes",
"systemInitialization": false,
"inputType": "TEXTAREA",
"id": 23,
"showInEditPage": false
},
{
"showInIdeaTable": true,
"showInConfirmPage": false,
"showName": "确认时间",
"sortIndex": 1200,
"supportInExcel": true,
"webTableColumnWidth": 110,
"required": false,
"showInWebTable": true,
"editableInConfirmPage": false,
"showInAddPage": false,
"editableInEditPage": false,
"excelColumnWidth": 50,
"editableInAddPage": false,
"columnCode": "confirmDate",
"systemInitialization": false,
"inputType": "TEXT",
"id": 24,
"showInEditPage": false
}
]
}
问题&建议
使用过程中,如果发现有bug或者有功能建议,欢迎提issue单,或者通过公众号是vzn呀
联系到作者,获取更为及时的支持。
当然,如果觉得本软件帮助到了您的工作,也欢迎支持我继续更新维护下去~
期待与你一起探讨,一起成长为更好的自己。