Challenge Me!

Afim de melhorar o meu conhecimento no SC, e aumentar a base de conhecimento do fórum eu venho aqui deixar esse tópico aberto para todos aqueles que quiserem uma implementação que você achem, mediana|difícil, não muito difícil por favor xD.

Só peço que expliquem muito bem, se precisar postem estrutura das tabelas usadas, o que você já tentou, exportação das aplicações, o que for preciso para facilitar essa experiência.

*NOTA: Esse tópico é para novas implementações, coisas não comuns no SC e utilizando códigos alternativos, não é para resolver pequenos problemas e nem muito menos pra falar como faz um campo carregar o outro.

Obrigado.

Pessoal,

Como fazer com que num determinado campo de um formulário, após clicar no mesmo, seja mostrada um modal com os campos usuário e senha ?

Challenge 1 - Exigir Login e Senha ao entrar em um campo do formulário

Nível SC: Intermediário
Nível JavaScript: Intermediário/Avançado

Conhecimento Básico de CSS e HTML necessários.

Passo 1:

  • Abra o formulário que deseja fazer o seu campo seguro.
  • No onLoad acrescente esse código no início:
[verifica_adm] = 'N';


?>
<style>
#overlay {
     visibility: hidden;
     position: absolute;
     left: 0px;
     top: 0px;
     width:100%;
     height:100%;
     text-align:center;
     z-index: 1000;
}
#overlay div {
     width:250px;
	 height: 165px;
	 margin: 200px auto;
     background-color: #fff;
     border:1px solid #000;
     padding:0px;
     text-align:center;
}
</style>
<div id="overlay">
     <div>
        <iframe id="muda_forma" src="../teste/teste.php" height="100%" width="100%" border=0 frameborder=NO scrolling=NO>
		</iframe>
     </div>
</div>
<?php
  • Lembrem de colocar a variável global como saída.

Passo 2:

  • Vá no menu da app em Programação>Métodos JavaScript>Novo Método
  • Crie um método chamado: overlay.
  • E cole este código no método:
el = document.getElementById("overlay");
el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";

Passo 3:

  • Vá no menu da app, em Formulário>Eventos Ajax>Novo Evento Ajax.
  • Crie um evento ajax, escolha o campo que será seguro, e escolha o evento: onFocus.
  • Acrescente esse código na função ajax:
if ([verifica_adm] == 'N') {sc_ajax_javascript('overlay');}

Passo 4:

  • Crie sua app de controle com 2 campos, Usuário e Senha.
  • No onValidate faça a sua verificação, eu copiei a do meu login e alterei algumas coisas vejam abaixo:
$slogin = sc_sql_injection({login});
$spswd = sc_sql_injection(md5({senha}));


$sql = "SELECT 
		PrvAdm, 
		SitUsu, 
		NomUsu, 
		EmlUsu,
		CodUsu
	      FROM cadusu 
	      WHERE LogUsu = $slogin
		AND SenUsu = ".$spswd;
	
sc_lookup(rs, $sql);
	
if(count({rs}) == 0)
{
	sc_log_add('Falha: Verificação ADM', {lang_login_fail} . {login});
	sc_alert('Usuário ou Senha, Errado!');
	sc_error_exit();
}
else if({rs[0][1]} == 'Y' && {rs[0][0]} == 'Y')
{
	[verifica_adm] = 'Y';
	sc_ajax_javascript('overlay');
}
else
{
	sc_alert('Esse usuário não é administrador!');
	sc_error_exit();
}
  • Eu usei sc_alert ao invés de sc_error_message por questões de layout, ficou mais apresentável.

Passo 5:

  • Vá no menu da app em Programação>Métodos Javascript>Novo Método
  • Crie um método chamado: overlay.
  • E cole este código no método:
el = parent.document.getElementById("overlay");
el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
if (sair != "S") {
parent.document.getElementById('id_sc_field_nomapp').focus();	
}

Passo 6:

  • Vá no menu da app em Controle>Botões>Novo Botão;
  • Crie um botão Sair do tipo javascript;
  • No código do botão adicionem:
overlay('S');

Gere os fontes e pronto, agora você tem uma verificação de usuário para um campo.

Vocês podem implementar a vontade.

Aqui vai um demo: AdmLoga

User Adm: robert
Senha: master

User não Adm: wesley
Senha: 1234

Agradecimento especial para o Jon Henshaw, ótimo programador da Raven Internet Marketing Tools, pela dica do modal com JavaScript muito bem feito, com código limpo e simples, evitando o uso de JQuery, e funcionando perfeitamente.

Link do Tutorial do Modal JavaScript: http://raventools.com/blog/create-a-modal-dialog-using-css-and-javascript/

Até a próxima pessoal.

Vlw mano, tivemos uma aula agora meu amigo, assim é que se faz :wink:

Muito bom Robert…show essa solução, já pensei em algumas implementações para ela!!

gostaria de uma ideia para fazer um estilho de planilha no sc
um formulário para o usuário preencher q teria a primeira coluna as horas do dia e outras colunas, sendo que a ideia é salvar cada dado inserido no onchange ou na validação do campo.
obrigado