Identificacão de Usuarios • Em WEB-INF/Usuarios.xml estão definidos os usuários com os seus devidos papeis. Podem ser inclusos novos usuários e/ou papeis(perfis) sempre que identificados. • Os perfil são simplesmente texto separados por virgula. • Login é case insensitive, já a senha é case senstive • Exemplo: <Usuario> <nome>Exemplo</nome> <senha>uniceub</senha> <perfil>Usuario,Desenvolvedor,Webmaster</perfil> </Usuario> Criacão de menus • Em WEB-INF/menu.xml estão definidos os menus. Somente usuários com os perfis necessários poderão ver e acessar o item do menu • Se o usuário não poder ver o Menu este não poderá ver o submenu, porem se tiver o perfil necessário poderá acessa-lo pelo url. • Atributo permissao => perfis • Atributo url => caminho ate o metodo. <Menu nome="Templates" permissao="Administrador" url=""> <SubMenu nome="CRUD Simples" permissao="Administrador" url="Templates_CRUDCompleto.listar"></SubMenu> <SubMenu nome="CRUD Em Linha" permissao="Administrador,Presidente"url="Templates_CRUDInline.listar"></SubMenu> </Menu> Controller Documentos (html,xml) Action Template Mensagens Mapeamento (Menu) Migalha Estrutura do Framework Formatos de URL simples 1) 2) <Action/Pasta>.<Metodo/HTML> Exemplo: Usuario.listar <Action/Pasta>.<Metodo>.<HTML> Exemplos: Usuario.novo.formulario Usuario.editar.formulario Formatos de URL com redirecionamento de HTML 1. 2. 3. <ActionX>.<MetodoX>.<ActionY/Pasta>.<MetodoY/HTML> Exemplo: Usuario.excluir.Usuario.listar Usuario.incluir.Usuario.listar Usuario.alterar.Usuario.listar Exemplo de utilização <ActionX>.<MetodoX>.<ActionY/Pasta>.<MetodoY>.<HTML> Exemplos: Usuario. alterar.Usuario.editar.formulario Organizaçao das pastas <Classe> <Metodo> <Metodo> <= Pasta do framework <Classe> <Metodo> <Metodo> <Classe> <Metodo> Estrutura da Classe Parametros do Framework • ajax = true Faz com que o framework somente devolva o html referente ao conteúdo, incluindo as migalhas e mensagens geradas. • puro = true O framework ira agora retornar somente o conteúdo (sem migalhas ou mensagens). Este parâmetro deve ser usado para buscar componentes afim de criar um formulário dinamicamente Nomeclatura • listar , novo , editar , visualizar Estes são nomes de métodos /paginas, estes não deveram fazer mais nada além de montar a pagina pra o usuario preencher ou visualizar. Estes serão os botões num CRUD completo na pagina de listagem. • incluir , alterar , excluir Estes são os nomes dos métodos que realmente irão manipular os dados, não há necessidade de gera paginas estes poderão ser só executores e depois redirecionar para outra pagina geralmente a listar. Entretanto é recomendável que este utilizem mensagens para informar êxito ou erro. Estrutura de um HTML no Framework HTML Classes Importantes • a.ajaxConteudo => este link automaticamente recebera o parâmetro ajax=true e o resultado substituirá o conteúdo da pagina. • form.ajaxConteudo => este formulario ao ser submetido será incluso o paremetro ajax=true e o resultado subistituirá o conteudo da pagina. • a.ajaxSubmit => torna o link o botão submit do formulário que esta contido. • a. editar , a.incluir , a.excluir , a. alterar => estas classes devem ser usadas em paginas de listagem onde autores com estas iram ler a linha da tabela afim de serializar inputs e enviar para os links atribuídos. HTML Classes Importantes • table.grid => Tabela com esta classe receberão automaticamente as funcionalidades de paginação, filtro por coluna e por texto. • table.noErrorLabel => deve ser usado em CRUDs em linha que utilizem validação de formulário pra esconder as mensagens de erro que alteram a estrutura da tabela. • div.radioset => Criará um grupo de Radio Buttons com a aparência de botões jQueryUI • input.campoData => Este campo terá um datePicker • input.campoCep => Este campo terá mascara de CEP • input.campoCnpj =>Este campo terá mascara de CNPJ • input.campoCpf => Este campo terá mascara de CPF HTML Classes Importantes • • • • • • • input.campoDdd => Este campo terá mascara de DDD input.campoTelefone => Este campo terá mascara de Telefone input.campoFloat => Este campo terá mascara de Float input.campoData => Este campo terá mascara de Data input.campoMesAno => Este campo terá mascara de MesAno input.campoAno => Este campo terá mascara de Ano input.campoHoraSimples => Este campo terá mascara de HoraSimples • input.campoHoraComposta => Este campo terá mascara de HoraComposta • input.campoInteiro => Este campo terá mascara de Inteiro