Ir para conteúdo


Foto

Menu dinamico gerado por permissão de usuario


  • Por favor, faça o login para responder
10 respostas neste tópico

#1 Fabyo

Fabyo

    Member Avançado

  • Administrators
  • 678 posts
  • LocationSão Paulo

Postado 23 June 2013 - 19:51

Ola pessoal

várias pessoas tem me perguntado por email para explicar como montar um menu baseado em permissão de usuário, e hoje tive um tempinho livre então resolvi montar um exemplo no padrão MVC

a ideia desse tópico é abordar somente a logica da geração desse menu baseado nas permissões do usuário, o resto do sistema como login, cadastros, tela de permissoes, etc
fica a cargo do desenvolvedor conforme a sua necessidade.

montei as tabelas com o mesmo nome de campos que o sencha usa conforme imagem:
Imagem Postada

eu ja criei esse menu usando apenas 1 tabela de modules mas para nao confundir muito criei com 2 tabelas, assim fica mais facil o entendimento
e a tabela de junção que tem a responsabilidade fazer o menu ser gerado, basta salvar o id do usuario + o id do sub menu e fazer os selects e montar o resultado em mandar por json

vejam o exemplo funcionando nos links abaixo, no id = 1 sera montado o menu completo e no id = 2 sera montado o menu com poucos submenus

exemplos online:
http://extjs.com.br/...plos/menu/?id=1
http://extjs.com.br/...plos/menu/?id=2

como falei o foco aqui é somente na geração do menu, então baixem o exemplo e troquem o $user_id que esta fixo por um id valido que voce ira resgatar de uma session depois do login do usuario.

OBS:Não reparem a lentidão pois nesse exemplo estou usando os links do sencha online, voces devem trocar os links para locais quando forem usarem.

para o tabPanel funcionar voces devem criar os grid e salvar o nome dele no campo xtype

exemplo:
Ext.define('Menu.view.Grid', {
	extend : 'Abstracts.Grid'
    ,alias : 'widget.sub11grid' <=========
no banco de dados campo xtype = sub11grid
seguindo essa ideia vai funcionar o tabPanel quando clicarem em um submenu ira abrir o grid na região center

download:
http://extjs.com.br/...s/menu/menu.rar

qualquer duvida só postarem no forum de duvidas

#2 rccintra

rccintra

    Member Avançado

  • Membros
  • PipPipPip
  • 431 posts

Postado 24 June 2013 - 11:44

Ola no exemplo online não apareceu nada !!!

Abraços!

#3 Fabyo

Fabyo

    Member Avançado

  • Administrators
  • 678 posts
  • LocationSão Paulo

Postado 24 June 2013 - 12:03

Eu testei aqui e ele esta demorando muito pelo chrome por causa dos links do sencha online ele demora um pouco mais abre e no firefox abre mais rapido

#4 Perfect Lion

Perfect Lion

    Member Avançado

  • Administrators
  • 492 posts
  • LocationBrasil/SBC

Postado 24 June 2013 - 13:35

Então está demorando muito porque os link que existem estão apontando para o sencha.com o fabão tanta jogar esses kras aqui para o nosso serve mesmo.

eu aqui tbm ;)
Ajude a manter o fórum organizado.
Sempre que um tópico for resolvido clique no botão MARCAR COMO RESOLVIDO localizado ao lado do botão RESPONDER.

Fazer um CMS num é mole não.. ainda mais sozinho XD Ajude-me :P


#5 Fabyo

Fabyo

    Member Avançado

  • Administrators
  • 678 posts
  • LocationSão Paulo

Postado 24 June 2013 - 13:36

Links locais:
http://extjs.com.br/...plos/menu/?id=1

#6 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3496 posts
  • LocationBelo Horizonte

Postado 25 June 2013 - 23:56

Primeiramente, meus parabéns pelo exemplo Fabyo, há tempos que via o pessoal com essa dúvida e agora com certeza muitos terão um material para estudo.
Sobre a questão de exibir a tela esta esta demorando pelo fato do exemplo utilizar o arquivo ext-dev.js assim se olharem na aba Network ou Rede irão ver que as classes do ExtJS estão sendo carregadas.
Não tenho mto a manha com o Sencha CMD, mas uma boa seria criar um all-class.js assim não precisando fazer o carregamento de todas as classes do ExtJS.

"A verdadeira vitória não é derrotar alguém forte... É ser capaz de proteger alguém que você ama de verdade!" (Maito Dai)


#7 Fabyo

Fabyo

    Member Avançado

  • Administrators
  • 678 posts
  • LocationSão Paulo

Postado 26 June 2013 - 15:46

isso mesmo Weslley, eu sempre uso o ext-dev, pois no final do projeto eu uso o Sencha CMD, eu gosto de usar o ext-dev porque se falta algum componente ele avisa para eu incluir no require, entao eu vou incluindo conforme a necessidade e no final vou ter somente os arquivos que preciso usar

#8 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3496 posts
  • LocationBelo Horizonte

Postado 26 June 2013 - 20:33

isso mesmo Weslley, eu sempre uso o ext-dev, pois no final do projeto eu uso o Sencha CMD, eu gosto de usar o ext-dev porque se falta algum componente ele avisa para eu incluir no require, entao eu vou incluindo conforme a necessidade e no final vou ter somente os arquivos que preciso usar

Fabyo, essa é a lógica, pois quando for dar um build na aplicação vc já matou todas dependências. Só que como não entendo (estou estudando ainda) sobre o Sencha CMD não saberia lhe falar como gerar um arquivo único com as classes utilizadas, mas no mais dá para ver o exemplo depois de um tempo de carregamento.

"A verdadeira vitória não é derrotar alguém forte... É ser capaz de proteger alguém que você ama de verdade!" (Maito Dai)


#9 Fabyo

Fabyo

    Member Avançado

  • Administrators
  • 678 posts
  • LocationSão Paulo

Postado 26 June 2013 - 22:33

Eu sei gerar o arquivo eu só nao gerei porque era pra servir de exemplo pro pessoal consultar, mas nos proximos exemplos vou usar o ext compactado para ficar mais rapido

#10 guns87

guns87

    Member Avançado

  • Membros
  • PipPipPip
  • 121 posts

Postado 17 February 2014 - 15:54

Alguem já fez a tela de perfil, para um menu dinamico?

Estou tentando, so que tenho problemas tipo a imagem http://forum.extjs.c...2.0;attach=3900
que tenhos varios menus e cada um tem opções diferente do que vai ser controlado tipo usuarios vai ter cadastrar editar e excluir, mas contas a pagar já tem mais extornar e quitar. Alguem tem alguma ideia de como poderia fazer isso, sendo que atualmente este grid ele monta de acordo com os menus que estão cadastrados.

#11 Antonio Junior

Antonio Junior

    Member Avançado

  • Membros
  • PipPipPip
  • 52 posts
  • LocationSão Luís

Postado 09 April 2015 - 18:30

Boa noite, amigo não consigo baixa os exemplos ?






0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos