This commit is contained in:
parent
acc8b17bab
commit
d0dd3b9358
|
@ -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"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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),
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
namespace api.Dtos
|
||||||
|
{
|
||||||
|
public class reset
|
||||||
|
{
|
||||||
|
public string email { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
Binary file not shown.
Binary file not shown.
132
website/app.html
132
website/app.html
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue