Modificando o comportamento de link_to em uma instalação Redmine (Ruby on Rails)

StackOverflow https://stackoverflow.com/questions/513594

  •  21-08-2019
  •  | 
  •  

Pergunta

Eu estou tentando modificar a interface do usuário de uma instalação Redmine (Redmine 0.7.3.devel.2093 (MySQL)).

Quando você visualizar um projeto no Redmine, ele gera uma lista de todos os subprojetos para o projeto.

Por exemplo, app / views / projetos / index.rhtml chama o link_to Função:

<% if @project_tree[project].any? %>
    <p><%= l(:label_subproject_plural) %>:
    <%= @project_tree[project].sort.collect {|subproject| 
       link_to(h(subproject.name), {:action => 'show', :id => subproject}, :class => (User.current.member_of?(subproject) ? "subp fav" : "subp"))}.join(', ') %></p>
<% end %>

O que emite o seguinte HTML:

<p>Subprojects:
<a href="/projects/show/foo" class="subp fav">Foo Subproject</a>, <a href="/projects/show/bar" class="subp">Bar Subproject</a>, <a href="/projects/show/baz" class="subp fav">Baz Subproject</a></p>

Nós achamos que uma lista delimitada por vírgulas de subprojetos é muito difícil visualmente analisar. Nós gostaríamos de ter cada subprojeto listada em sua própria linha. (Qualquer marcação é muito bem -. UL, OL, ou marcas P em cada link seria o ideal, mas uma BR em vez de uma vírgula seria totalmente bem)

Qual é a melhor maneira de fazer essa mudança? Não consigo encontrar onde link_to é definido no aplicativo; grepping para voltas def link_to( e semelhantes em nada. Eu sou um tipo de interface do usuário, então eu realmente não entendo como Rails ofertas com este material - não parecem ser definida nos modelos de visão.

Foi útil?

Solução

Você pode fazê-lo diretamente no código que você forneceu. mudança apenas

join(', ')

para

join('<br />')

Isso deve fazê-lo.

Outras dicas

link_to é fornecido pelo framework Rails - não está a gerar as ligações como uma lista - ele simplesmente cria um único link. A questão é a sort.collect eo bloco gerando as chamadas para link_to

Isso deve funcionar, colocando os subprojetos para os itens da lista

<% @project_tree[project].sort.collect do |subproject| %>
  <li>        
    <%= link_to(h(subproject.name), {:action => 'show', :id => subproject}, :class => (User.current.member_of?(subproject) ? "subp fav" : "subp")) %>
  </li>
<% end %> 

Eu queria salientar que a versão mais recente do tronco Redmine mudou o projeto listando a listas HTML de uso (ul e li).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top