Pular para o conteúdo principal

Vex dialog: Customizando texto de botões e recebendo callback corretamente





 Olá,

Muitos projetos utilizam ótima esta biblioteca chamada VEX para exibir alertas, confirms entre outros tipos de 'modals' para o usuário substituindo o tradicional comando alert("texto"); do navegador (que tem visual mais feinho xD).

Neste post quero mostrar como é possível customizar o texto de botões do vex.dialog.open e do vex.dialog.confirm, visto que muitos tem esta dificuldade. Quando você consulta a documentação você acha a seguinte instrução:



Então você pensa... ok vou fazer meu  vex dialog e sobreescrever as propriedades do confirm ou open na construção do componente. Ficando mais ou menos assim:





 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18

vex.dialog.confirm({
  message: "Deseja confirmar?",
  buttons: {
    YES: { 
      text: 'Claro! Agora mesmo.',
      className:'vex-dialog-button-primary vex-dialog-button vex-first',

    },
    NO: { 
      text: 'Ahhh, não quero...',
      className:'vex-dialog-button-secondary vex-dialog-button vex-last',

    }
  },
  callback: function (value) {
    console.log(value)
  }
});

O Resultado é que independente do botão clicado, dentro do callback você sempre recebe true... não podendo fazer uma lógica real com condição. A única forma de se receber false seria com click na camada overlay para fechar modal.

Para resolver realmente e implementar de uma maneira que funcione com segurança de true e false no callback você deve substituir os textos dos botões da seguinte maneira:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
vex.dialog.confirm({
  message: "Deseja confirmar?",
  buttons: buttons: [
      $.extend({}, vex.dialog.buttons.YES, { text: 'Claro! Agora mesmo.' }),
      $.extend({}, vex.dialog.buttons.NO, { text: 'Ahhh, não quero...' })
  ],
  callback: function (value) {
    console.log(value)
  }
});

Por hoje é isso ;)
 Até o próximo post...

Comentários

Postagens mais visitadas deste blog

Como criar componente dropdown com checkbox ASP.NET MVC

Neste post irei demonstrar a criação de um componente  dropdown com checkbox para selecionar as opções desejadas. Para começar podemos criar uma classe estática para criar o componente que será utilizado numa página razor. public static class Extensions { public static MvcHtmlString DropdownCheckbox( this HtmlHelper helper, string placeholder, IEnumerable<SelectListItem> selectList, object htmlAttributes) { string items = "" ; string rodape = "" ; if (htmlAttributes == null ) { htmlAttributes = new { }; } var attributes = new ExpandoObject() as IDictionary< string , Object>; foreach (PropertyInfo property in htmlAttributes.GetType().GetProperties()) { attributes.Add(property.Name, property.GetValue(htmlAttributes)); } string idDropdown = "dr...

Dica: Extensão Indentar código VUE Visual Studio Code

Olá Por muitas é necessário um atalho para formatar o seu código fonte no editor de texto. Para formatação de HTML, CSS, JS e afins no visual studio code você pode utilizar o: HTML Snippets Mas esta extensão acima não formata arquivos de template .vue . Para formatar este tipo de arquivos é necessário instalar alguma outra extensão. Entre as que busquei a que faz o serviço da melhor forma atualmente utilizando o atalho alt+shift+f   é o plugin ventur: Vetur Este plugin é muito bom mesmo. Facilitou bastante a formatação de fontes em templates .vue. É isso espero que ajude;)

Migrando repositório TFS para GIT

Chega o momento em que decidimos migrar do TFS para GIT por 'N' motivos e benefícios que esta migração pode trazer. Caso você tenha uma repositório de longa data e queira manter o histórico de checkins, o  git-tfs auxilia nesta tarefa. Uma das minhas formas preferidas para instalar é através do chocolatey . Com o chocolatey instalado em sua máquina basta abrir o powershell em modo admin e digitar: cinst GitTfs No powershell para clonar o repositório TFS para seu repositório git você deve digitar o seguinte comando: git tfs clone http : //meutfs.com $/diretoriotfs c : /diretorio-alvo-clone --branches=all -u=CORP\Usuario -p=****** Para mais opções de comando segue link do github do projeto.