Я создаю плагин для Redmine. Я хочу добавить класс в тег a
на странице списка задач (вид issues/_list.html.erb
). Но я не хочу менять основной код Redmine. Насколько я понимаю, хуки (например :view_issues_index_bottom
) позволяют мне добавлять данные, но не заменять их. Как я могу заменить часть списка на странице списка задач из моего плагина?
Как я могу заменить частичный рендеринг из моего плагина в Redmine?
Ответы (3)
Просто скопируйте issues/_list.html.erb
в папку представлений вашего плагина (/plugins/your_plugin/app/views/issues/_list.html.erb
) и отредактируйте ее как нужно.
Redmine сначала будет использовать представления вашего плагина.
Как правило, не переопределяйте основные представления в вашем плагине, как это предлагается в принятом ответе.
Это усложняет или делает невозможным обновление Redmine для ваших пользователей, может привести к неправильному поведению или ошибкам при использовании версии Redmine, отличной от той, с которой вы взяли представление, и, скорее всего, препятствует включению вашего плагина в предложения хостеров Redmine, таких как Planio. .
Вместо этого либо предоставьте правильный патч Redmine как часть вашего плагина (и задокументируйте, как его применять), либо внесите необходимые изменения DOM через Javascript с помощью обычных хуков. Если вам кажется, что хуков не хватает, вы также можете отправить патч в Redmine, добавляя новые хуки.