Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PoDynamicView: Comportamento incorreto na exibição de valores com opções #2006

Open
3 of 10 tasks
carlosdiego opened this issue Mar 18, 2024 · 3 comments
Open
3 of 10 tasks
Labels
bug Something isn't working contribution DTHFUI-8558

Comments

@carlosdiego
Copy link

carlosdiego commented Mar 18, 2024

Reprodução

Utilize StackBlitz (https://stackblitz.com/edit/po-ui) para reproduzir o bug relatado na issue.

Versão PO-UI 16.4.1: Exemplo do erro
Versão PO-UI 16.3.0: Exemplo com a versão anterior do PO-UI sem o erro

Passos para reproduzir:

  1. Criar um campo com múltiplas opções no PoDynamicView, utilizando a propriedade options com optionsMulti definido como true, fieldLabel, fieldValue e uma propriedade específica, conforme exemplo abaixo:
<po-page-default p-title="Employee">
    <po-dynamic-view [p-fields]="fields" [p-value]="employee"> </po-dynamic-view>
</po-page-default>
fields: Array<any> = [
    {
      options: [
        {
          id: "INIC",
          description: "Iniciação"
        },
        {
          id: "CRESC",
          description: "Crescimento"
        },
        {
          id: "MAT",
          description: "Maturidade"
        },
        {
          id: "RENOV",
          description: "Renovação"
        },
        {
          id: "DECL",
          description: "Declínio"
        }
      ],      
      optionsMulti: true,
      fieldLabel: 'description',
      fieldValue: 'id',
      property: "faseDoCicloDeNegocios",
      label: "Fase do Ciclo de Negócios"
    }
  ];

  employee = {
    faseDoCicloDeNegocios: ['RENOV'],
  };

Qual o comportamento atual?

O dynamic-view apresenta um comportamento incorreto ao tentar exibir valores baseados em campos com opções, especialmente quando há uma tentativa de utilizar a descrição (description) correspondente ao valor de id especificado. Em vez de buscar o valor correto, o sistema erroneamente tenta definir o valor de uma propriedade com base no fieldLabel, o que não faz sentido no contexto de campos dinâmicos.

Que comportamento você esperava ver?

Esperava-se que o dynamic-view exibisse a descrição correspondente ao id especificado na propriedade faseDoCicloDeNegocios, de acordo com as opções definidas no campo. Especificamente, para o valor 'DECL', a descrição esperada seria "Declínio".

Ambiente

  • PO UI:
  • Angular:
  • Browser(s):
    • Chrome
    • Firefox
    • Edge
    • Safari
    • IE 11
    • Outros
  • Operating System:
    • Windows
    • macOS
    • Ubuntu
    • Outros

Observações

A falha na lógica de transformFieldLabel impacta diretamente a usabilidade do dynamic-view em cenários onde a exibição correta de valores dinâmicos é crucial. É importante revisar a implementação para garantir que valores sejam atribuídos e exibidos corretamente, respeitando a intenção original de uso de fieldLabel e fieldValue, sem recorrer a atribuições inadequadas que comprometem a lógica e a clareza do código.

Tempo de Resposta PO UI --> Em até 7 dias úteis.
Tempo de Retorno Solicitante --> 35 dias corridos
Issues sem retorno do solicitante por mais de 35 dias corridos serão encerradas.

@carlosdiego carlosdiego added the bug Something isn't working label Mar 18, 2024
@carlosdiego carlosdiego changed the title <componente>: <resumo do erro> PoDynamicView: Comportamento incorreto na exibição de valores com opções Mar 18, 2024
@jnrpalma jnrpalma added the status: triage Issue or pull request that need to be triaged and assigned to a reviewer label Mar 19, 2024
@jkozima jkozima added DTHFUI-8558 contribution and removed status: triage Issue or pull request that need to be triaged and assigned to a reviewer labels Mar 20, 2024
@likid
Copy link

likid commented Apr 10, 2024

Encontrei um problema em meu projeto onde o valor não é exibido quando as opções vêm de um serviço.

https://stackblitz.com/edit/po-ui-gacb9g?file=src%2Fapp%2Fapp.module.ts,src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html,src%2Fmain.ts

@carlosdiego
Copy link
Author

Encontrei um problema em meu projeto onde o valor não é exibido quando as opções vêm de um serviço.

https://stackblitz.com/edit/po-ui-gacb9g?file=src%2Fapp%2Fapp.module.ts,src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html,src%2Fmain.ts

O erro que você está enfrentando pode ser devido à ausência das configurações de fieldLabel e fieldValue no seu código.
Portanto, certifique-se de incluir:

 campos: any = [
    {
      property: 'id',
      label: 'Nome',
      fieldLabel: 'name',
      fieldValue: 'id',
      optionsService: 'https://po-sample-api.onrender.com/v1/people',
    },
  ];

@likid
Copy link

likid commented Apr 11, 2024

Encontrei um problema em meu projeto onde o valor não é exibido quando as opções vêm de um serviço.
https://stackblitz.com/edit/po-ui-gacb9g?file=src%2Fapp%2Fapp.module.ts,src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html,src%2Fmain.ts

O erro que você está enfrentando pode ser devido à ausência das configurações de fieldLabel e fieldValue no seu código. Portanto, certifique-se de incluir:

 campos: any = [
    {
      property: 'id',
      label: 'Nome',
      fieldLabel: 'name',
      fieldValue: 'id',
      optionsService: 'https://po-sample-api.onrender.com/v1/people',
    },
  ];

Carlos, realmente neste stackblitz usando a api de exemplo eu acabei esquecendo destes campos e quando eu alterei funcionou. Porém eu tenho um caso em um desenvolvimento meu onde os campos vêm do backend e com optionsService e depois de carregar eles eu busco os valores. Neste caso específico que eu não consegui reproduzir no stackblitz, os valores não são mostrados. No meu caso, eu uso os campos label e value mesmo e não nomes diferentes.

Edit: Mesmo utilizando no retorno {value: xx, label: xx} o combo só mostrou os valores quando eu informei o fieldLabel = label e fieldValue = value, sendo que estes valores já são os padrões.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working contribution DTHFUI-8558
Projects
None yet
Development

No branches or pull requests

4 participants