redmine插件开发简介
最稳妥的学习应该是先看官方文档,官方还给了一个具体的插件开发教程,不过如果一步不差按照教程敲代码,其实会发现还是有些问题的,需要稍稍改动。
这里,我自己编写了一个简单的插件,基于redmine-3.4.6-passenger版本。
####
插件名称:field_value_adaption
依赖插件:select_to_select2
插件作用:在issue的自定义字段中,根据某个自定义字段的值,自动填写其他自定义字段的值,这些值存在数据库中,如下数据库,当自定义字段1的值选择’便签’时,自动将686,626填写进入自定义子字段4,
数据库设计:
| Id | field_selector | value | field_selector_by | value_by |
| —— | —— | —— | —— | —— |
| 1 | #issue_custom_field_values_1 | 便签 | #issue_custom_field_values_4 | 686,626 |
| 2 | #issue_custom_field_values_1 | 天气 | #issue_custom_field_values_4 | 691 |
####
控制器 adaption
模型 field_value_relation
#设置开发环境变量
1 | |
1 | |
#需要在redmine根目录下执行以下代码,默认是/usr/src/redmine
#新建插件
1 | |
#新建数据库
1 | |
#迁移数据库
1 | |
#将数据库编码设置成utf-8,如果没有中文输入,则没必要修改
1 | |
#插入数据,可以直接在数据库中插入
1 | |
#创建控制器
1 | |
修改控制器代码
1 | |
编写plugins/field_value_adaption/app/views/adaption/get.js.erb
1 | |
配置路由
1 | |
配置issue页面发送请求的js plugins/field_value_adaption/assets/javascripts/fields_adaption_get.js
1 | |
使用hook机制,在所有载入的url包含issue的请求中调用上述js
plugins/field_value_adaption/lib/fields_adaption_hook_listener.rb
1 | |
在init.rb中应用该hook
1 | |