Как я могу заменить частичный рендеринг из моего плагина в Redmine?

Я создаю плагин для Redmine. Я хочу добавить класс в тег a на странице списка задач (вид issues/_list.html.erb). Но я не хочу менять основной код Redmine. Насколько я понимаю, хуки (например :view_issues_index_bottom) позволяют мне добавлять данные, но не заменять их. Как я могу заменить часть списка на странице списка задач из моего плагина?


person jonua    schedule 20.10.2015    source источник


Ответы (3)


Просто скопируйте issues/_list.html.erb в папку представлений вашего плагина (/plugins/your_plugin/app/views/issues/_list.html.erb) и отредактируйте ее как нужно.

Redmine сначала будет использовать представления вашего плагина.

person General Failure    schedule 21.10.2015
comment
Проголосовали против, потому что ответ Йенса правильный: это сработает, но в конечном итоге будет больно. - person jan; 23.10.2015
comment
Да, это моя ошибка. Сначала я понимаю, что @kdjonua хочет полностью заменить view. Конечно, мой ответ неверен для обновления просмотров. - person General Failure; 26.10.2015

Как правило, не переопределяйте основные представления в вашем плагине, как это предлагается в принятом ответе.

Это усложняет или делает невозможным обновление Redmine для ваших пользователей, может привести к неправильному поведению или ошибкам при использовании версии Redmine, отличной от той, с которой вы взяли представление, и, скорее всего, препятствует включению вашего плагина в предложения хостеров Redmine, таких как Planio. .

Вместо этого либо предоставьте правильный патч Redmine как часть вашего плагина (и задокументируйте, как его применять), либо внесите необходимые изменения DOM через Javascript с помощью обычных хуков. Если вам кажется, что хуков не хватает, вы также можете отправить патч в Redmine, добавляя новые хуки.

person jkraemer    schedule 23.10.2015

Вы можете попробовать добавить гем deface и заменить часть представления его функциональностью. Посмотрите на этот фиксацию в качестве примера.

person gotva    schedule 20.10.2015