This commit is contained in:
henrydays 2019-04-06 21:17:49 +01:00
parent acc8b17bab
commit d0dd3b9358
17 changed files with 481 additions and 154 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -102,8 +102,8 @@ android {
applicationId "pt.enei" applicationId "pt.enei"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 3 versionCode 4
versionName "3" versionName "4"
ndk { ndk {
abiFilters "armeabi-v7a", "x86" abiFilters "armeabi-v7a", "x86"
} }

View File

@ -15,13 +15,13 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.1</string> <string>1.2</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>12</string> <string>13</string>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
<string></string> <string>public.app-category.utilities</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true/>
<key>NSAppTransportSecurity</key> <key>NSAppTransportSecurity</key>

View File

@ -25,7 +25,7 @@ namespace api.Controllers
public class AuthController : ControllerBase public class AuthController : ControllerBase
{ {
private readonly DataContext context; private readonly DataContext context;
private readonly IConfiguration config; private readonly IConfiguration config;
public UserManager<User> _userManager { get; } public UserManager<User> _userManager { get; }
public SignInManager<User> _signInManager { get; } public SignInManager<User> _signInManager { get; }
@ -34,19 +34,19 @@ namespace api.Controllers
private readonly RoleManager<Role> _roleManager; private readonly RoleManager<Role> _roleManager;
private readonly System.Net.Http.IHttpClientFactory clientFactory; private readonly System.Net.Http.IHttpClientFactory clientFactory;
public AuthController(DataContext context,IConfiguration config, UserManager<User> UserManager, SignInManager<User> SignInManager, IMapper mapper, RoleManager<Role> roleManager, IUsersRepository repo, System.Net.Http.IHttpClientFactory clientFactory) public AuthController(DataContext context, IConfiguration config, UserManager<User> UserManager, SignInManager<User> SignInManager, IMapper mapper, RoleManager<Role> roleManager, IUsersRepository repo, System.Net.Http.IHttpClientFactory clientFactory)
{ {
_mapper = mapper; _mapper = mapper;
_roleManager = roleManager; _roleManager = roleManager;
_repo = repo; _repo = repo;
this.clientFactory = clientFactory; this.clientFactory = clientFactory;
this.config = config; this.config = config;
_userManager = UserManager; _userManager = UserManager;
_signInManager = SignInManager; _signInManager = SignInManager;
this.context = context; this.context = context;
} }
[HttpPost("register")] [HttpPost("register")]
public async Task<IActionResult> Register(UserForRegisterDto userToRegister) public async Task<IActionResult> Register(UserForRegisterDto userToRegister)
@ -54,7 +54,7 @@ namespace api.Controllers
var userToCreate = _mapper.Map<User>(userToRegister); var userToCreate = _mapper.Map<User>(userToRegister);
var result = await _userManager.CreateAsync(userToCreate, userToRegister.password); var result = await _userManager.CreateAsync(userToCreate, userToRegister.password);
if (result.Succeeded) if (result.Succeeded)
{ {
return StatusCode(201); return StatusCode(201);
@ -62,6 +62,9 @@ namespace api.Controllers
return BadRequest(result.Errors); return BadRequest(result.Errors);
} }
[HttpPost("login")] [HttpPost("login")]
public async Task<IActionResult> Login(UserForLoginDto UserForLoginDto) public async Task<IActionResult> Login(UserForLoginDto UserForLoginDto)
{ {
@ -87,44 +90,48 @@ namespace api.Controllers
} }
[HttpPost("loginQR")] [HttpPost("loginQR")]
public async Task<IActionResult> loginQr(loginQr a){ public async Task<IActionResult> loginQr(loginQr a)
{
var u = await _userManager.FindByNameAsync(a.QRcode);
using (var client = new HttpClient())
{
try{
var url = "https://tickets.enei.pt/internal/api/Attendee/Detail";
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + a.token);
var response = await client.GetStringAsync(url); var u = await _userManager.FindByNameAsync(a.QRcode);
// Console.WriteLine(response); using (var client = new HttpClient())
{
//var resource = JObject.Parse(response); try
var appUser = await _userManager.Users.FirstOrDefaultAsync(SU => SU.NormalizedUserName == a.QRcode.ToUpper());
return Ok(new
{ {
token = GenerateJwtToken(appUser).Result var url = "https://tickets.enei.pt/internal/api/Attendee/Detail";
});
}catch(Exception e){ client.DefaultRequestHeaders.Add("Authorization", "Bearer " + a.token);
Console.WriteLine(e);
return Unauthorized(); var response = await client.GetStringAsync(url);
} // Console.WriteLine(response);
//var resource = JObject.Parse(response);
var appUser = await _userManager.Users.FirstOrDefaultAsync(SU => SU.NormalizedUserName == a.QRcode.ToUpper());
return Ok(new
{
token = GenerateJwtToken(appUser).Result
});
} }
return Unauthorized(); catch (Exception e)
{
Console.WriteLine(e);
return Unauthorized();
}
}
return Unauthorized();
} }
@ -138,8 +145,9 @@ namespace api.Controllers
var roles = await _userManager.GetRolesAsync(user); var roles = await _userManager.GetRolesAsync(user);
foreach(var role in roles) { foreach (var role in roles)
claims.Add(new Claim(ClaimTypes.Role,role)); {
claims.Add(new Claim(ClaimTypes.Role, role));
} }
//obtem a key na app settings //obtem a key na app settings
@ -151,7 +159,7 @@ namespace api.Controllers
//criamos um token //criamos um token
var tokenDescriptor = new SecurityTokenDescriptor var tokenDescriptor = new SecurityTokenDescriptor
{ {
Subject = new ClaimsIdentity(claims), Subject = new ClaimsIdentity(claims),
//data de expiração (atual + 24 horas) //data de expiração (atual + 24 horas)
Expires = DateTime.Now.AddDays(30), Expires = DateTime.Now.AddDays(30),

View File

@ -7,6 +7,7 @@ using Microsoft.EntityFrameworkCore;
using api.Dtos; using api.Dtos;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using api.Models; using api.Models;
using System.Net.Http;
namespace api.Controllers namespace api.Controllers
{ {
@ -31,7 +32,36 @@ namespace api.Controllers
return View("Views/Landing/index.cshtml"); return View("Views/Landing/index.cshtml");
} }
[AllowAnonymous]
[HttpGet("/reset/{user}")]
public async Task<IActionResult> resetPassword(string user)
{
string cenas = "Pua";
using (var client = new HttpClient())
{
try
{
var url = "https://tickets.enei.pt/internal/api/User/ResetPassword?code=" + user;
// client.DefaultRequestHeaders.Add("Authorization", "Bearer " + a.token);
var response = await client.GetStringAsync(url);
return Ok(user);
return View("Views/Landing/resetPage.cshtml");
}
catch (HttpRequestException a)
{
return View("Views/Landing/resetError.cshtml");
// return NotFound(a);
}
}
}
[HttpGet("/app")] [HttpGet("/app")]
[AllowAnonymous] [AllowAnonymous]
public IActionResult appPage() public IActionResult appPage()
@ -41,16 +71,22 @@ namespace api.Controllers
} }
[HttpGet("/ctf")] [HttpGet("/ctf")]
[AllowAnonymous] [AllowAnonymous]
public IActionResult ctfPage() { public IActionResult ctfPage()
{
return View("Views/Landing/ctf.cshtml"); return View("Views/Landing/ctf.cshtml");
} }
[AllowAnonymous]
[Route("{*url}", Order = 999)]
public IActionResult CatchAll()
{
Response.StatusCode = 404;
return View("Views/Landing/notFound.cshtml");
}
} }

7
api/Dtos/reset.cs Normal file
View File

@ -0,0 +1,7 @@
namespace api.Dtos
{
public class reset
{
public string email { get; set; }
}
}

View File

@ -123,10 +123,11 @@
</p> </p>
<p>O login na app é feito usando esse QR code</p> <p>O login na app é feito usando esse QR code</p>
<p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p> <p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p>
<form> <form action="http://localhost:5000/api/reset" method="GET">
<input type="email" placeholder="Introduz o teu email"> <input type="email" name="email" placeholder="Introduz o teu email">
<input type="button" data-bind="click: buy" value="RESET PASSWORD">
<input type="submit" value="RESET PASSWOR">
</form> </form>
</div> </div>
</div> </div>
@ -197,38 +198,38 @@
<h3>Aplicação disponível nas típicas lojas de aplicações.</h3> <h3>Aplicação disponível nas típicas lojas de aplicações.</h3>
<div class="buttons"> <div class="buttons">
<a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8"> <a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8">
<div class="button-app"> <div class="button-app">
<div class="button-logo">
<i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo"> <div class="button-logo">
<i class="fab fa-google-play"></i> <i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo">
<i class="fab fa-google-play"></i>
</div> </div>
<div class="button-text"> <div class="button-text">
<h3>Available on the</h3> <h3>Available on the</h3>
<h2>Play Store</h2> <h2>Play Store</h2>
</div> </div>
</div> </div>
</a> </a>
</div> </div>
</div> </div>
</div> </div>
<!-- faqs section --> <!-- faqs section -->
@ -348,36 +349,30 @@
</div> </div>
</section> </section>
<!-- social network section --> <!-- footer -->
<aside id="social-network"> <footer>
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 col-lg-offset-2"> <div class="col-lg-4 col-xs-6">
<h2>Segue-nos</h2> <p>© 2019 ENEI . Todos os direitos reservados</p>
<ul> </div>
<div class="col-lg-8 col-xs-6">
<ul id="social-network">
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank" <li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank"
class="icon-facebook"></a></li> class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank" <li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank"
class="icon-instagram"></a></li> class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank" <li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank"
class="icon-linkedin"></a></li> class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li> <li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a>
</li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-lg-12">
<p>© 2019 ENEI . Todos os direitos reservados</p>
</div>
</div>
</div>
</footer> </footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script> <script type="text/javascript" src="js/scripts.js"></script>
@ -390,6 +385,13 @@
gtag('js', new Date()); gtag('js', new Date());
gtag('config', 'UA-130588243-1'); gtag('config', 'UA-130588243-1');
</script> </script>
<script>
resetPassword = () => {
console.log("asdasd")
}
</script>
<script> <script>
AOS.init(); AOS.init();
</script> </script>

View File

@ -0,0 +1,62 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt" xml:lang="pt">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1, user-scalable=0" name="viewport">
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Error</title>
<meta name="description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
<meta property="og:locale" content="pt_PT" />
<meta property="og:title" content="ENEI'19 - Error" />
<meta property="og:description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial." />
<meta property="og:site_name" content="ENEI'19 - Error" />
<meta property="og:url" content="http://www.enei.pt/error-page.html" />
<meta property="og:image" content="http://www.enei.pt/imgs/share-image.jpg" />
<meta property="og:type" content="Website" />
<link rel="canonical" href="http://www.enei.pt/error-page.html" />
<link href="bootstrap-grid.css" rel="stylesheet" type="text/css" />
<link href="main.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/css?family=Bai+Jamjuree:400,600,700" rel="stylesheet">
</head>
<body>
<!-- apresentation section -->
<div id="apresentation">
<h1 id="error-message">404</h1>
</div>
<!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-130588243-1');
</script>
</body>
</html>

View File

@ -0,0 +1,76 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt" xml:lang="pt">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1, user-scalable=0" name="viewport">
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Error</title>
<meta name="description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
<meta property="og:locale" content="pt_PT" />
<meta property="og:title" content="ENEI'19 - Error" />
<meta property="og:description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial." />
<meta property="og:site_name" content="ENEI'19 - Error" />
<meta property="og:url" content="http://www.enei.pt/error-page.html" />
<meta property="og:image" content="http://www.enei.pt/imgs/share-image.jpg" />
<meta property="og:type" content="Website" />
<link rel="canonical" href="http://www.enei.pt/error-page.html" />
<link href="bootstrap-grid.css" rel="stylesheet" type="text/css" />
<link href="https://enei.pt/main.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/css?family=Bai+Jamjuree:400,600,700" rel="stylesheet">
<style>
.resetPassword{
margin: 0 auto;
background-color: red;
text-align: center;
width: 50%;
align-self: center;
margin-top: 20%;
}
</style>
</head>
<body>
<div class="resetPassword">
<h1>ERRO</h1>
<h3>Existiu um erro a enviar a password de recuperação</h3>
</div>
<!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-130588243-1');
</script>
</body>
</html>

View File

@ -0,0 +1,62 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt" xml:lang="pt">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1, user-scalable=0" name="viewport">
<meta content="width" name="MobileOptimized">
<meta content="true" name="HandheldFriendly">
<!-- Place favicon.ico in the root directory -->
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<link rel="manifest" href="site.webmanifest">
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>ENEI'19 - Error</title>
<meta name="description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial.">
<meta property="og:locale" content="pt_PT" />
<meta property="og:title" content="ENEI'19 - Error" />
<meta property="og:description" content="Página do Encontro Nacional de Estudantes de Informática 2019, no Instituto Superior de Engenharia de Coimbra (ISEC) a realizar-se entre 12 e 15 de abril de 2019. O ENEI pretende oferecer aos estudantes de todo o país um evento que promove a aprendizagem, a troca de ideias e o convívio, enquanto tenta criar fortes ligações com o mundo empresarial." />
<meta property="og:site_name" content="ENEI'19 - Error" />
<meta property="og:url" content="http://www.enei.pt/error-page.html" />
<meta property="og:image" content="http://www.enei.pt/imgs/share-image.jpg" />
<meta property="og:type" content="Website" />
<link rel="canonical" href="http://www.enei.pt/error-page.html" />
<link href="bootstrap-grid.css" rel="stylesheet" type="text/css" />
<link href="main.css" rel="stylesheet" type="text/css" />
<link href="https://fonts.googleapis.com/css?family=Bai+Jamjuree:400,600,700" rel="stylesheet">
</head>
<body>
<!-- apresentation section -->
<div id="apresentation">
<h1 id="error-message">Enviado para o email</h1>
</div>
<!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-130588243-1');
</script>
</body>
</html>

BIN
api/wwwroot/.DS_Store vendored

Binary file not shown.

BIN
website/.DS_Store vendored

Binary file not shown.

View File

@ -123,11 +123,12 @@
</p> </p>
<p>O login na app é feito usando esse QR code</p> <p>O login na app é feito usando esse QR code</p>
<p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p> <p>Para obteres a password, deves efectuar reset através da APP, ou preenchendo o campo a baixo.</p>
<form>
<input type="email" placeholder="Introduz o teu email">
<input type="button" data-bind="click: buy" value="RESET PASSWORD"> <input id="email-input" type="email" name="email" placeholder="Introduz o teu email">
</form>
<button class="button-default" onclick="resetPassword()">Reset Password</button>
</div> </div>
</div> </div>
</div> </div>
@ -197,38 +198,38 @@
<h3>Aplicação disponível nas típicas lojas de aplicações.</h3> <h3>Aplicação disponível nas típicas lojas de aplicações.</h3>
<div class="buttons"> <div class="buttons">
<a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8"> <a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1457702417&mt=8">
<div class="button-app"> <div class="button-app">
<div class="button-logo">
<i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo"> <div class="button-logo">
<i class="fab fa-google-play"></i> <i class="fab fa-apple"></i>
</div>
<div class="button-text">
<h3>Available on the</h3>
<h2>App Store</h2>
</div>
</div>
</a>
<a href="https://play.google.com/store/apps/details?id=pt.enei">
<div class="button-app">
<div class="button-logo">
<i class="fab fa-google-play"></i>
</div> </div>
<div class="button-text"> <div class="button-text">
<h3>Available on the</h3> <h3>Available on the</h3>
<h2>Play Store</h2> <h2>Play Store</h2>
</div> </div>
</div> </div>
</a> </a>
</div> </div>
</div> </div>
</div> </div>
<!-- faqs section --> <!-- faqs section -->
@ -348,40 +349,93 @@
</div> </div>
</section> </section>
<!-- social network section --> <!-- footer -->
<aside id="social-network"> <footer>
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 col-lg-offset-2"> <div class="col-lg-4 col-xs-6">
<h2>Segue-nos</h2> <p>© 2019 ENEI . Todos os direitos reservados</p>
<ul> </div>
<div class="col-lg-8 col-xs-6">
<ul id="social-network">
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank" <li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank"
class="icon-facebook"></a></li> class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank" <li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank"
class="icon-instagram"></a></li> class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank" <li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank"
class="icon-linkedin"></a></li> class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li> <li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a>
</li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-lg-12">
<p>© 2019 ENEI . Todos os direitos reservados</p>
</div>
</div>
</div>
</footer> </footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script> <script type="text/javascript" src="js/scripts.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
resetPassword = () => {
var input = document.getElementById("email-input");
if (input != " ") {
console.log(input.value);
axios({
url: `http://enei2019.uingress.com/internal/api/User/RecoverPassword?input=${input.value}&type=0`,
method: 'get',
}).then(a => {
console.log(a);
Swal.fire(
'Sucesso!',
'Foi enviado para o teu email um pedido de recuperação. Pode demorar demorar alguns minutos...',
'success'
)
}).catch(err => {
if (err.response.status === 500) {
Swal.fire(
'Utilizador não existe!',
'Verifica se o email é válido, caso o erro continue contacta a comissão organizadora',
'error'
)
}
else {
Swal.fire(
'Erro!',
'Aconteceu algum erro com o teu pedido...',
'error'
)
}
})
} else {
Swal.fire(
'Erro!',
'Deves preencher o campo de email.',
'warning'
)
}
}
</script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill"></script>
<!-- Global site tag (gtag.js) - Google Analytics --> <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
<script> <script>

View File

@ -38,28 +38,9 @@
<h1 id="error-message">404</h1> <h1 id="error-message">404</h1>
</div> </div>
<!-- social network section -->
<aside id="social-network">
<div class="container">
<div class="col-lg-8 col-lg-offset-2">
<h2>Siga-nos</h2>
<ul>
<li><a href="https://www.facebook.com/ENEIConf/" title="Facebook" target="_blank" class="icon-facebook"></a></li>
<li><a href="https://www.instagram.com/eneiconf/" title="Instagram" target="_blank" class="icon-instagram"></a></li>
<li><a href="https://www.linkedin.com/company/enei/" title="Linkedin" target="_blank" class="icon-linkedin"></a></li>
<li><a href="mailto:geral@enei.pt" title="Email" target="_blank" class="icon-email"></a></li>
</ul>
</div>
</div>
</aside>
<!-- footer -->
<footer>
<div class="container">
<div class="col-lg-12">
<p>© 2018 ENEI . Todos os direitos reservados</p>
</div>
</div>
</footer>
<!-- Scripts --> <!-- Scripts -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
@ -67,13 +48,14 @@
<!-- Global site tag (gtag.js) - Google Analytics --> <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script> <script async src=“https://www.googletagmanager.com/gtag/js?id=UA-130588243-1“></script>
<script> <!-- Global site tag (gtag.js) - Google Analytics -->
window.dataLayer = window.dataLayer || []; <script async src="https://www.googletagmanager.com/gtag/js?id=UA-130588243-1"></script>
function gtag(){dataLayer.push(arguments);} <script>
gtag(js, new Date()); window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag(config, UA-130588243-1); gtag('js', new Date());
</script> gtag('config', 'UA-130588243-1');
</script>
</body> </body>

View File

@ -1860,6 +1860,23 @@ footer p {
width: 60%; width: 60%;
height: 60%; height: 60%;
} }
.login-app .button-default {
padding: 20px;
font-size: 14px;
line-height: 14px;
color: black;
font-weight: 700;
text-transform: uppercase;
border: 1px solid #eeeeee;
padding: 30px 30px;
transition: border-color 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out;
-webkit-transition: border-color 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out;
}
.login-app .button-default:hover {
border-color: #cc1a17;
background-color: #cc1a17;
color: #ffffff;
}
@media screen and (max-width: 769px) { @media screen and (max-width: 769px) {
.login-app { .login-app {
flex-direction: column; flex-direction: column;

File diff suppressed because one or more lines are too long

View File

@ -405,6 +405,7 @@ input[type="submit"] {
} }
} }
select { select {
padding: 10px; padding: 10px;
border: 1px solid #eeeeee; border: 1px solid #eeeeee;
@ -1786,6 +1787,26 @@ footer {
width: 60%; width: 60%;
height: 60%; height: 60%;
} }
.button-default{
padding: 20px;
//font-family: "Bai Jamjuree", sans-serif;
font-size: 14px;
line-height: 14px;
color: black;
font-weight: 700;
text-transform: uppercase;
border: 1px solid #eeeeee;
padding: 30px 30px;
transition: border-color 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out;
-webkit-transition: border-color 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out;
&:hover{
border-color: #cc1a17;
background-color: #cc1a17;
color: #ffffff;
}
}
background-image: url("./imgs/bg_phone.png"); background-image: url("./imgs/bg_phone.png");
//border-bottom: 2px solid #cc1a17; //border-bottom: 2px solid #cc1a17;