Gvinci.app

Estendendo o visual de um componente fileuploader com css

Gvinci Platform

Estendendo o visual de um componente fileuploader com css

Olá a todos, hoje vamos aprender a como customizar um componente do Gvinci nesse tutorial será o fileuploader com alguns comandos de css , vamos modificar totalmente nosso controle.

Para esse exemplo, vamos utilizar fortemente o inspetor de elementos do browser, caso nao saiba como utilizar aqui esta um exemplo.

Dito isso, agora com nosso projeto aberto, vamos continuar utilizando o projeto dos outros G-meeting o “AppProposta”, caso ainda não tenha vou disponibilizar o projeto ao final do tutorial ou veja nossos outros tutorias que lá também utilizamos o mesmo projeto.

Agora vamos gerar nosso projeto e em seguida, vamos roda-lo e ver algumas das características do Fileuploader.

Fileuploader default.

Tenho que admitir que o fileuploader gerado pelo Gvinci, não é dos mais belos do mundo , seguimos o style que a telerik nos propõem.

Porem, podemos melhora-lo 1oo% com poucos comandos de css.

Agora com nossa aplicação rodando e com nosso inspetor de elementos aberto, vamos conhece um pouco da estrutura do Fileuploader, não vamos entrar muito a fundo em sua estrutura pois é realmente um pouco complexo, porem vamos detectar os pontos específicos que deveremos alterar o css, para obter o resultado desejado.

Essa é a estrutura que vamos trabalhar.https://blog.gvinci.com.br/media/d33614275aab0c0baae4967729b5af90

Como eu havia dito anteriormente, é uma estrutura bem complexa porem durante o tutorial, vou falando qual dessas estruturas deverão ser alteradas e como postar as prints vai ser bem ruim então, vocês podem usar esse exemplo acima para detectar as estruturas html.

Visual final do fileuploader.

Esse visual acima, é o que queremos alcançar, então podemos perceber que existem bordas arredondadas, e como vamos editar por partes nosso fileuploader, vamos começar por essas bordas.

Dentro do inspetor de elementos, passe o mouse em cima do

<div id=”GMultiMedia1_BorderPanel”>

e perceba que ele é o container que engloba todo o fileuploader

Trabalhando dentro do inspetor de elementos, é bem simples a visualização em tempo de execução das nossas alterações, e será bem simples.

Agora vamos selecionar o elemento abaixo.

<div id=”GMultiMedia1_BorderPanel” >

E em seguida na aba ‘styles’ procure pela propriedade ‘element.styles’ e vamos adicionar o seguinte código logo abaixo do código já existente.

border-color: black;
border-style: solid;
border-width: 1px;
border-radius: 10px;
padding-top: 15px;
padding-left: 15px;
padding-right: 15px;

E com isso no componente externo, container do fileuploader já esta configurado.

Configurando container externo do fileuploader.

Agora, vamos trabalhar no

<div id=”GMultiMedia1_ImagePanel”>

Ele é o container da nossa imagem de preview, então vamos configura-lo com o seguinte código.

padding: 10px;
border-radius: 10px;
background-color: #F0F0F0;
border-color: #999999;
height: calc(100% - 50px) !important;
Configurado container image preview do fileuploader.

Agora, vamos trabalhar em nossa imagem, filha desse container acima.

<img id=”GMultiMedia1_Thumbnail”>

podemos perceber que essa imagem, esta vazando o container parent dela, ao seleciona esse elemento html na nossa arvore dom, podemos perceber que ele possui um height: 240px; e não é isso que queremos vamos alterar com o seguinte código.

position: relative !important;
height: 100% !important;
Configurado a imagem para caber dentro do container de imagem preview

Agora já temos uma mudança visual incrivel, porem ainda falta muito, vamos continuar a configurar nosso fileuploader.

Vamos selecionar nosso próximo elemento

<div id=”GMultiMedia1_FramePanel”>

Esse elemento ele possui um serie de elementos filhos, que vamos configurar juntamente dele.

Para começar vamos fazer esse “frame panel” ocupar 100% do seu parent.

<div id="GMultiMedia1_FramePanel">

Selecione o elemento html descrito acima e vamos adicionar o seguinte codigo.

position: absolute !important;
width: 100% !important;
height: 100% !important;

Em seguida vamos selecionar o elemento abaixo

<div id=”GMultiMedia1_AsyncUpload1"> 

E vamos adicionar o seguinte código.

height: 100% !important;
Configurando containers do fileuploader

Parece estar esquisito correto ? mais logo vamos deixa-lo bonito.

<div id=”GMultiMedia1_AsyncUpload1">

Dentro do elemento html acima, possuímos uma seria de outros elementos que precisamos igualar a altura do nosso parent então vamos selecionar o elemento filho

<ul id=”GMultiMedia1_AsyncUpload1ListContainer”>

E adicionar o seguinte código.

height: 100% !important;

Agora , vamos selecionar o elemento abaixo dele

<li id="GMultiMedia1_AsyncUpload1row0">

E adicionar o seguinte código.

height: 100% !important;

E por ultimo o

<span class=”ruFileWrap ruStyled”>

E adicionar o seguinte código.

height: 100% !important;
width: 100% !important;

Todos esses caras que configuramos acima sao essenciais para oque queremos fazer.

agora vamos selecionar nosso botão de “abrir” ele possui um elemento html.

<input type=”button” tabindex=”-1" value=”Abrir” class=”ruButton ruBrowse”>

Com ele selecionado, vamos adicionar.

width: calc(100% - 30px) !important;
margin: 0px !important;
position: absolute !important;
bottom: 15px !important;
left: 15px !important;

Com isso deixamos nosso botão configurado, vamos seguir configurando nossos outros elementos.

Agora vamos procurar nossa label com o nome da imagem, ele é um elemento que nos não queremos que apareça

<span id=”GMultiMedia1_NameLabel” class=”NameLabel”>A…jpg</span>

E com ela selecionada, vamos adicionar.

display: none;

E por ultimo , vamos configurar nosso botão que apagar a imagem do fileuploader.

<input type="image" name="GMultiMedia1$CloseLink" id="GMultiMedia1_CloseLink" class="CloseLink">

Com o elemento html selecionado, vamos adicionar o seguinte código.

margin-right: 0px !important;
position: absolute !important;
right: 23px !important;
top: 20px !important;
margin-top: 0px !important;

E esse é o resultado do nosso Fileuploader.

Fileuploader configurado.

Bom, agora precisamos levar todo esse código para dentro do Gvinci.

Vamos criar um arquivo de Css dentro do Gvinci.

Criando um arquivo de css no gvinci.

E agora levamos todo nossa estilização feita dentro do inspetor de elementos para esse arquivo

Vou facilitar a vida de vocês e deixar aqui o código que vocês vão precisar para colar dentro desse arquivo criado no Gvinci.https://blog.gvinci.com.br/media/266e6008307ec61d95edf4e0d8b51621

Agora com nosso arquivo criado e com o codigo adicionado, precisamos adicionar a referencia desse arquivo de css em nossa pagina.

Com nossa pagina de produtos aberto, vamos procurar pelo nosso Form1 e vamos nas propriedades StylesheetPages e adicionar a referencia do arquivo de css que criamos em nossa pagina.

Adicionando referencia do css em nossa pagina.

Agora vamos gerar o código e ver como está.

Como podemos perceber, nossa estilização, está quase completa há apenas um pequeno porem, que é o tamanho do nosso container quando o mesmo esta não está em modo de edição, pelas imagem acima conseguimos perceber a diferença de tamanho quando o botão de abrir não aparece.

Caso , você esteja satisfeito como está, você pode parar por aqui.

Porem vamos adicionar um pequeno truque em JS para corrigir esse espaço.

Dentro do Gvinci, no Form1 da pagina de produtos , vamos procurar a propriedade “EndScript” e adicionar o seguinte código.https://blog.gvinci.com.br/media/1eabbf65e68a0ed5da23795b7f9c4bd3

Essa função em javascript vai verificar o estado da aplicação e vai adicionar um classe ou remover a classe de acordo com o parâmetro passado.

Adicionado função js na pagina de produtos.

Agora para finalizar, ainda em nosso Form1, vamos em Eventos , Server Events e procurar pela Opção, OnLoadCompleted, em seguida vamos adicionar uma função Customizada e adicionar o seguinte código.https://blog.gvinci.com.br/media/c856f20278435eb51cfcdb5b4d170d00

Adicionado evento no OnLoadCompleted

Bom Basicamente esse código, verifica o tipo de estado em que nossa pagina está, em em seguida via AjaxPanel, injetamos em nossa pagina uma chamada a aquele nosso ultima função que fizemos em JS AdjustFileUploader(putFull) e passamos para ela o tipo de estado.

Nossa função em JS verifica o tipo de estado da pagina e com isso ele Remove ou adiciona uma class ao nosso fileupload.

E com isso temos o nosso resultado final.

Fileuploader final.

E com isso finalizamos nosso exemplo de como adicionar style a um fileuploader.

Qualquer duvida entre em contato conosco através dos nossos canais de comunicação ou acessem nosso fórum https://forum.gvinci.com.br/.

O vídeo sobre esse tutorial e outros, podem ser encontrado em nosso canal do Youtube

Vale lembrar que uma explicação mais detalhada você pode encontra no meeting online feito pela equipe.

Link com o projeto disponível no Google drive.

https://drive.google.com/drive/folders/19U8qTaFE2dk1IefKk3rY6zBzNfg_MuAX?usp=sharing

Obrigado a todos e até a próxima.

Share on facebook
Share on twitter
Share on whatsapp

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja outros artigos de nosso Blog

Você está pronto para começar?

Você pode começar a criar os seus primeiros web apps com o Gvinci. É fácil, comece grátis.

Construa seus web apps com qualidade e rapidez.

Contate nos

Brasilia – Distrito Federal

contato@gvinci.app

+55 (61) 4042-3650

NewsLetter

Assine nossa newsletter para receber novidades

© 2021 Gvinci.App. All Rights Reserved.