eiwes
Members-
Total de itens
32 -
Registro em
-
Última visita
Reputação
0 ComumSobre eiwes
Contato
-
Twitter
@naotenho
- Github
-
Como posso melhorar esse código javascript encapsulado e usando método imutável?
eiwes postou um tópico no fórum Javascript
Eu tenho esse código, mas preciso retornar funções puras em vez de funções mutáveis. É possível? Talvez usando OOP? Não sei como melhorar isso. Tentei retornar os valores de cada função, mas não obtive sucesso. import { AssetStatusType } from '@domain/interfaces/common' import { BothComponentType, ComponentsType, GroupFiltersType, OperationType, OverviewModelType, PendenciesOverviewType, PendenciesType, StructurePendenciesCount, StructureStatusCount } from '../../types' const updateStatusCount = ( statusCount: StructureStatusCount, status: AssetStatusType ) => { statusCount[status] = (statusCount[status] || 0) + 1 } const updatePendenciesCount = ( pendenciesCount: StructurePendenciesCount, key: AssetStatusType, subKey: OperationType | PendenciesOverviewType ) => { pendenciesCount[key] = pendenciesCount[key] ?? {} pendenciesCount[key][subKey] = (pendenciesCount[key]?.[subKey] || 0) + 1 } const processOverviewPendencies = ( pendencies: PendenciesType[] | null | undefined, pendenciesCount: StructurePendenciesCount, countedIds: Set<string>, id: string ) => { if (pendencies?.length) { for (const { state, pendencyType } of pendencies) { const uniqueId = `${state}-${pendencyType}-${id}` if (!countedIds.has(uniqueId)) { updatePendenciesCount(pendenciesCount, state, pendencyType) countedIds.add(uniqueId) } } } } const processOverviewComponents = ( components: ComponentsType[], isGroupByTree: boolean, statusCount: StructureStatusCount, pendenciesCount: StructurePendenciesCount, countedIds: Set<string>, id: string, type: BothComponentType ) => { for (const { pendencies, status, operationType } of components) { if (isGroupByTree && type === 'location') { updateStatusCount(statusCount, status) if (operationType) { updatePendenciesCount(pendenciesCount, status, operationType) } } processOverviewPendencies(pendencies, pendenciesCount, countedIds, id) } } const processOverviewData = ( data: OverviewModelType[], groupBy: GroupFiltersType, statusCount: StructureStatusCount, pendenciesCount: StructurePendenciesCount, countedIds: Set<string> ) => { const isGroupByTree = groupBy === 'tree' const isGroupByAsset = groupBy === 'asset' for (const { id, status, components, operationType, type } of data) { if (isGroupByAsset || type === 'asset') { updateStatusCount(statusCount, status) if (operationType) { updatePendenciesCount(pendenciesCount, status, operationType) } } processOverviewComponents( components, isGroupByTree, statusCount, pendenciesCount, countedIds, id, type ) } } export const calculateOverviewCounts = ( data: OverviewModelType[], groupBy: GroupFiltersType ) => { const statusCount: StructureStatusCount = {} as StructureStatusCount const pendenciesCount: StructurePendenciesCount = {} as StructurePendenciesCount const countedIds = new Set<string>() processOverviewData(data, groupBy, statusCount, pendenciesCount, countedIds) return { ...statusCount, pendencies: pendenciesCount } } Existe uma maneira mais limpa e elegante de fazer isso? Preciso retornar um objeto como este: // calculateOverviewCounts return this { pendencies: StructurePendenciesCount; working: number; inAlert: number; warning: number; stopped: number; off: number; } StructurePendenciesCount é:- 1 resposta
-
- javascript
- typescript
-
(e mais 1 )
Tags:
-
Então, Williams. Agradeço muito pelo link, porém, gostaria de entender o porquê desse erro. Saberia me ajudar com isso? Pois estou encabulado tentando entender: no primeiro laço do array ele conclui com o fechamento e após ele não faz o fechamento.
-
Fiz uma iteração foreach para gerar categorias e subcategorias, pois não queria fazer DOIS SELECTS, ficando assim: //----> Foreach para gerar a categoria, pois são vários items com as mesmas chaves, portanto agrupo foreach($exibeLista as $row){ $dlD[$row["nameD"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } //----> Foreach para gerar subcategorias foreach($exibeLista as $row){ $dLA[$row["nameP"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "idAss"=>$row["idAss"], "idT"=>$row["idT"], "nameP"=>$row["nameP"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } $fsHTML = []; $rateD = 0; $qtdAss = 0; if(is_array($dlD) || is_object($dlD)){ foreach ($dlD as $key => $ds) { if ($key <> '' && $key <> NULL) { $rateD += (($ds[0]["qtdR"]*100)/$ds[0]["qtdF"]); $qtdAss += count($dlD[$key]); //----> Array para inserir HTML da Categoria criada e criar accordion $fsHTML[] = ' <div class="col-md-12 col-sm-12 col-xs-12"> <div class="x_panel overflow_hidden padding-into-row-qsts bg-white-row filtro-on"> <span class="rateD">'.ceil($rateD/$qtdAss).'%</span> <span class="opcao-into-top">'.$ds[0]["idD"].' - '.$ds[0]["nameD"].' <a class="collapse-link open-filter-qsts border-radius8"><i class="fa fa-chevron-up"></i></a></span> <div class="x_content" style="display:none;padding-top:10px"> <div class="accordion" id="accordion" role="tablist" aria-multiselectable="true"> '; //----> Verificar se a subcategoria contém a categoria, se contém é incluída na array foreach ($dLA as $keys => $ass) { if($ass[0]["idD"] == $ds[0]["idD"] ){ if($ass[0]['idT'] <> 0){ $link = 't='.$ass[0]['idT']; }else{ $link = 'a='.$ass[0]['idAss'];} $fsHTML[] = ' <div class="panel"> <a class="panel-heading collapsed" href="/v/fs/st?mz=y&type=c&'.$link.'"> <span class="eficiencia-accordion">'.ceil(($ass[0]['qtdR']*100)/$ass[0]['qtdF']).'%</span> <h4 class="panel-title">'.$ass[0]['nameP'].'</h4> <span class="unicamente">'.$ass[0]['qtdR'].' respondido de '.$ass[0]['qtdF'].'</span> </a> </div> '; }//if ass }//foreach ass }//if ds //----> Aqui é aonde ocorre o ERRO! Era pra fazer o fechamento do Accordion e gerar uma nova DIV. //No índice [0] isso ocorre normalmente, porém no [1] ela agrupa todos os accordions. (abaixo farei a amostra) $fsHTML[] = '</div></div></div></div>'; }//foreach ds }//if verifica se é array e se é objeto return implode('', array_unique($fsHTML)); O correto seria assim: - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria Como está acontecendo: - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria Não consigo entender de jeito nenhum pq o primeiro fecha corretamente e a partir do segundo não. Alguém me ajuda?
-
Fala, galera Tenho duas Tabelas: 1 - dados 2 - respostas dados (usuários vão respondendo e é gravado aqui) Na verdade, não precisa ser nada pronto, mas sim um início, pois não consigo imaginar em nada que consiga dar certo. As respostas possuem níveis (como assim?), eles vão de 1 até 5. Na qual, 1 é Completamente Insatisfeito e 5 Completamente Satisfeito. Ao responder, o usuário “criteriza” aquela resposda de 1 até 5. Agora entra a inteligência que eu não consigo pensar em algo atingível. Caso ele aponte como 1: o usuário responderá +3 perguntas e aquela primeira voltaria na sequência. caso aponte 2: responderia +5 e voltaria aquela na sequência. caso aponte 3: responderia +7 e voltaria aquela na sequência. [...] e assim sucessivamente. Alguém teria alguma ideia de como daria pra filtrar esses dados e exibir com esses critérios inteligentes? Pois utilizar ORDER BY com CASE WHEN não daria, né?! Já utilizo o ORDER BY para colocar as respostas em ordem “cronológica”. Por favor, solicito ajuda para desencalhar esse projeto. Desde já, agradeço quaisquer comentários.
- 1 resposta
-
- exibicao
- inteligente
-
(e mais 1 )
Tags:
-
CKEditor dando mensagem de erro ao fazer Drag and Paste, mas faz o upload
eiwes respondeu ao tópico de eiwes em Desenvolvimento frontend
Pessoal? Alguém me ajuda nesse tópico, por favor??- 3 respostas
-
- ckeditor
- mensagem erro
- (e mais 1 )
-
Sincronização de dados do Aplicativo com aplicação Web (SITE)
eiwes respondeu ao tópico de eiwes em Android
Alguém?? -
Sincronização de dados do Aplicativo com aplicação Web (SITE)
eiwes postou um tópico no fórum Android
Boa noite a todos, Estou iniciando os desenvolvimentos na plataforma Android e iOS, mas estou "CRU" nesse assunto. Possuo um site de notícias e gostaria de fazer um aplicativo para o mesmo. Agora o X da questão: como fazer essa sincronização de dados? Eu, como administrador, acessar o aplicativo e poder escrever notícias ali no celular mesmo e isso aparecer na página web e no próprio aplicativo. Resumindo mais ainda: um facebook da vida. O que eu posto no aplicativo, aparece no site. Não quero saber da programação por trás, mas sim um norte de como prosseguir. Alguém me ajuda? -
CKEditor dando mensagem de erro ao fazer Drag and Paste, mas faz o upload
eiwes respondeu ao tópico de eiwes em Desenvolvimento frontend
Ninguém mesmo galera? Caraca :(- 3 respostas
-
- ckeditor
- mensagem erro
- (e mais 1 )
-
CKEditor dando mensagem de erro ao fazer Drag and Paste, mas faz o upload
eiwes respondeu ao tópico de eiwes em Desenvolvimento frontend
Alguém pessoal?- 3 respostas
-
- ckeditor
- mensagem erro
- (e mais 1 )
-
CKEditor dando mensagem de erro ao fazer Drag and Paste, mas faz o upload
eiwes postou um tópico no fórum Desenvolvimento frontend
Olá a todos, Quando eu arrasto ou copio e colo, a imagem começa assim (até aí tudo certo) Depois que é realizado o upload, ela some, aparece a mensagem de sucesso e após, desaparece com a mensagem de erro. Posso estar errado, mas acredito que não seja erro de URL, senão nem seria realizado o UPLOAD da imagem, correto? Mas por via das dúvidas, segue URLs de configuração do arquivo CONFIG.JS config.filebrowserBrowseUrl = '/js/ckeditor/kcfinder/browse.php?type=files'; config.filebrowserImageBrowseUrl = '/js/ckeditor/kcfinder/browse.php?type=images'; config.filebrowserUploadUrl = '/js/ckeditor/kcfinder/upload.php?type=files'; config.filebrowserImageUploadUrl = '/js/ckeditor/kcfinder/upload.php?type=images'; Alguém suspeita o que pode ser? Ou já passou por algo parecido. OUUUU saiba como resolver kkkk Obs*: quando abro o local de FILES, a imagem está lá. Ela simplesmente não aparece naquele momento que arrasto (me faz perder muito tempo ter de ficar entrando no local do file).- 3 respostas
-
- ckeditor
- mensagem erro
- (e mais 1 )
-
TOP, Majour!!!! Exatamente isso!!!!! Complementando... Para quem quiser verificar, basta: if(is_array($numero)){ echo "É array"; }else{ echo "Não é array"; } Além disso, no meu caso, que eu irei usar em uma consulta SQL. Basta utilizar a clasula WHERE colum in ('1', '2' ,'3') Aí a pergunta: como fazer para resultar em uma string? Pois array não é lido na consulta SQL. Simples: gere um implode $novo = "'".implode("',", $numero)."'"; //Resultado '1', '2', '3' Fera demais! Agradecimentos absurdos, Majour
-
Infelizmente não, Eduardo. Passar GETs infinitos pela URL é coisa simples url?get1=a&get2=b&get3=c.... Minha dúvida é: MESMOS PARÂMETROS REPETIDOS DIVERSAS VEZES e resgatar esses valores. Exemplificando: url?get=1&get=2&get=3 Repare que são parâmetros de mesmo nome, porém com valores diferentes. Nesse caso, gostaria de transformar os valores do "get" em uma array. $values = [1, 2 , 3 ...]; Problema: não sei qual função existe para captar valores de parâmetros repetidos.
-
Boa noite, pessoal Gostaria de saber como faço para pegar gets repetidos na url, exemplo: pagina?a=1&b=2&a=2&a=5 Preciso pegar todos os valores de a, complicar e exibir no SELECT. Como? Assim: esse -> valores de a SELECT * FROM table WHERE esse = 1 AND esse = 2 AND esse = 3 AND esse = 5; Alguém tem algum raciocínio pra isso? Obrigado a todos pela ajuda.
-
Alterar modo de visualizações da URL no google
eiwes respondeu ao tópico de eiwes em Desenvolvimento frontend
PERFEITO!!!!! ERA ISSO MESMOOOOO. Vocês são fodas! -
Alterar modo de visualizações da URL no google
eiwes postou um tópico no fórum Desenvolvimento frontend
Olá pessoal, Pesquisando SEO pelo google, deparei-me com a seguinte estruturação na qual me chamou muita a atenção. Vocês sabem como fazer tal façanha? Ou seja, alterar de barras para " > "