Ola sou novo com o vraptor porem já consigo me virar com algumas coisas CRUD's, regras de negocio.
Porem em um projeto a qual estou trabalhando surgiu a necessidade de fazer um grupo de usuários com os que estão cadastrados no sistema.
Dei uma pesquisada na internet e encontrei o exemplo um pouco parecido feito pelo o W. Botelho [url]http://www.wbotelhos.com.br/2010/12/06/manipulando-listas-com-jquery-e-vraptor-3/[/url]
E tentei implementar da seguinte forma:
No exemplo do botelho ele insere o titulo do filme eu criei um botão a qual o usuário seleciona o grupo que já esta criado no sistema.
No fieldset de usuários também inserir o mesmo tipo de botão so que selecionando os usuários a qual já possuem no sistema. porem seguindo o exemplo do botelho ele cria um índice com o "name" e não consegui fazer o mesmo com o "id" do campo. E só consigo mandar o usuário para o primeiro campo da lista.
Segue abaixo o código da tela cadastrar e o modelo caso seja necessário para me ajudarem:
<form id="contentInterno" action="adicionar">
<fieldset style="width: 300px;">
<legend>Grupo Entrevistadores</legend>
<label>Grupo:</label>
<input id="Label_supervisor" type="text"
name="entrevistador.supervisor" value="${entrevistador.supervisor}"/>
<input type="button" onClick="listaSupervisor()" value="...">
</fieldset>
<fieldset id="entrevistador-container" style="width: 300px;">
<legend>
Entrevistadores
<img
/>
</legend>
<c:forEach items="${entrevistador.usuariosList}" var="item"
varStatus="status">
<div data-index="${status.index}" class="entrevistador-item">
<label>Nome:</label>
<input type="text" onClick="listaEntrevistador()"
name="entrevistador.usuariosList[${status.index}].nome" value="$
{item.nome}"/>
<input type="button" onClick="listaEntrevistador()"
value="...">
<img
/>
</div>
</c:forEach>
</fieldset><br/>
<button type="submit" class="salvar" onclick="salvar()">Salvar</
button>
</form>
<script type="text/javascript">
$('.btn-remover-ator').live('click', function() {
$(this).parent().remove();
});
function adicionarEntrevistador() {
var $container = $('#entrevistador-container'),
$entrevistadors = $container.children('.entrevistador-item'),
firstIndex = $entrevistadors.first().data('index'),
lastIndex = $entrevistadors.last().data('index');
if (firstIndex === undefined) {
firstIndex = 0;
lastIndex = 0;
}
var index = parseInt(firstIndex) + parseInt(lastIndex) + 1;
$('<div class="entrevistador-item">' +
'<label>Nome:</label>' +
'<input id="Label_Entrevistador" type="text"
name="entrevistador.usuariosList[' + index + '].nome" value="$
{item.nome}"/>' +
'<input type="button" onClick="listaEntrevistador()" value="...">
'+
'<img />\'
alt="Remover" class="btn-remover-ator"/>' +
'</div>')
.data('index', index)
.appendTo($container);
};
function listaSupervisor() {
window
.open(
'listaSupervisor',
'Popup',
'toolbar=no, location=no, search=no, directories=no,
status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=yes,
width=650, height=380');
document.formEnvio.submit();
};
function listaEntrevistador() {
window
.open(
'listaEntrevistador',
'Popup',
'toolbar=no, location=no, search=no, directories=no,
status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=yes,
width=650, height=380');
document.formEnvio.submit();
};
function salvar() {
alert('Grupo de entrevistadores cadastrado com sucesso !!!');
};
</script>
@Entity
public class Entrevistador {
@Id
@GeneratedValue
private Long id;
@ManyToMany (targetEntity = Grupo.class, fetch = FetchType.LAZY)
@ForeignKey(name="fk_grupo_GrupoEntrevistador")
private Grupo grupo;
private Collection<Usuario> usuariosList;
//get e set
}
