Browse Source

Merge pull request #47 from volosoft/ui-design

Design and frontend updates
pull/50/head
Halil İbrahim Kalkan 5 years ago
committed by GitHub
parent
commit
27ca2a56df
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      src/EventHub.Domain.Shared/Web/EventHubExternalUrls.cs
  2. 22
      src/EventHub.Domain/Emailing/EmailTemplateDefinitionProvider.cs
  3. 2
      src/EventHub.Domain/Emailing/EmailTemplates.cs
  4. 38
      src/EventHub.Domain/Emailing/EventHubEmailTemplateRenderingEngine.cs
  5. 200
      src/EventHub.Domain/Emailing/Templates/EventRegistration.tpl
  6. 189
      src/EventHub.Domain/Emailing/Templates/EventReminder.tpl
  7. 189
      src/EventHub.Domain/Emailing/Templates/EventTimingChanged.tpl
  8. 140
      src/EventHub.Domain/Emailing/Templates/Layout.tpl
  9. 189
      src/EventHub.Domain/Emailing/Templates/NewEventCreated.tpl
  10. 46
      src/EventHub.IdentityServer/Pages/Account/Manage.cshtml
  11. 57
      src/EventHub.IdentityServer/Pages/Index.cshtml
  12. 4
      src/EventHub.IdentityServer/Pages/Index.cshtml.cs
  13. 36
      src/EventHub.Web.Theme/wwwroot/themes/eventhub/style.css
  14. 6
      src/EventHub.Web/Pages/Events/Components/EventsArea/_eventListSection.cshtml
  15. 56
      src/EventHub.Web/Pages/Events/Components/RegistrationArea/Default.cshtml
  16. 4
      src/EventHub.Web/Pages/Events/Detail.cshtml
  17. 10
      src/EventHub.Web/Pages/Events/Index.cshtml
  18. 16
      src/EventHub.Web/Pages/Events/New.cshtml
  19. 64
      src/EventHub.Web/Pages/Index.cshtml
  20. 2
      src/EventHub.Web/Pages/Index.js
  21. 10
      src/EventHub.Web/Pages/Organizations/Components/OrganizationsArea/_organizationListSection.cshtml
  22. 2
      src/EventHub.Web/Pages/Organizations/New.cshtml
  23. 4
      src/EventHub.Web/Pages/Organizations/Profile.cshtml
  24. 11
      src/EventHub.Web/Pages/User.cshtml
  25. 6
      src/EventHub.Web/Pages/User.cshtml.cs
  26. 4
      src/EventHub.Web/Pages/User.css
  27. BIN
      src/EventHub.Web/wwwroot/assets/eh-organization-big.png

1
src/EventHub.Domain.Shared/Web/EventHubExternalUrls.cs

@ -8,6 +8,7 @@ namespace EventHub.Web
public const string EhAdmin = "https://localhost:44307";
public const string EhWww = "https://localhost:44308";
#else
// TODO: Change these production links
public const string EhAccount = "https://localhost:44313";
public const string EhApi = "https://localhost:44362";
public const string EhAdmin = "https://localhost:44307";

22
src/EventHub.Domain/Emailing/EmailTemplateDefinitionProvider.cs

@ -8,7 +8,18 @@ namespace EventHub.Emailing
{
context.Add(
new TemplateDefinition(
EmailTemplates.EventRegistration
EmailTemplates.Layout,
isLayout: true
).WithVirtualFilePath(
"/Emailing/Templates/Layout.tpl",
isInlineLocalized: true
)
);
context.Add(
new TemplateDefinition(
EmailTemplates.EventRegistration,
layout: EmailTemplates.Layout
).WithVirtualFilePath(
"/Emailing/Templates/EventRegistration.tpl",
isInlineLocalized: true
@ -17,7 +28,8 @@ namespace EventHub.Emailing
context.Add(
new TemplateDefinition(
EmailTemplates.EventReminder
EmailTemplates.EventReminder,
layout: EmailTemplates.Layout
).WithVirtualFilePath(
"/Emailing/Templates/EventReminder.tpl",
isInlineLocalized: true
@ -26,7 +38,8 @@ namespace EventHub.Emailing
context.Add(
new TemplateDefinition(
EmailTemplates.NewEventCreated
EmailTemplates.NewEventCreated,
layout: EmailTemplates.Layout
).WithVirtualFilePath(
"/Emailing/Templates/NewEventCreated.tpl",
isInlineLocalized: true
@ -35,7 +48,8 @@ namespace EventHub.Emailing
context.Add(
new TemplateDefinition(
EmailTemplates.EventTimingChanged)
EmailTemplates.EventTimingChanged,
layout: EmailTemplates.Layout)
.WithVirtualFilePath(
"/Emailing/Templates/EventTimingChanged.tpl",
isInlineLocalized: true

2
src/EventHub.Domain/Emailing/EmailTemplates.cs

@ -2,6 +2,8 @@ namespace EventHub.Emailing
{
public static class EmailTemplates
{
public const string Layout = "EventHub.Event.Layout";
public const string EventRegistration = "EventHub.Event.Registration";
public const string EventReminder = "EventHub.Event.Reminder";

38
src/EventHub.Domain/Emailing/EventHubEmailTemplateRenderingEngine.cs

@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using EventHub.Web;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Volo.Abp.DependencyInjection;
using Volo.Abp.TextTemplating;
namespace EventHub.Emailing
{
[Dependency(ServiceLifetime.Transient, ReplaceServices = true)]
[ExposeServices(typeof(ITemplateRenderer), typeof(TemplateRenderer), typeof(EventHubEmailTemplateRenderingEngine))]
public class EventHubEmailTemplateRenderingEngine : TemplateRenderer
{
public EventHubEmailTemplateRenderingEngine(ITemplateContentProvider templateContentProvider, ITemplateDefinitionManager templateDefinitionManager, IStringLocalizerFactory stringLocalizerFactory) : base(templateContentProvider, templateDefinitionManager, stringLocalizerFactory)
{
}
public override async Task<string> RenderAsync(
[NotNull] string templateName,
[CanBeNull] object model = null,
[CanBeNull] string cultureName = null,
[CanBeNull] Dictionary<string, object> globalContext = null)
{
if (globalContext == null)
{
globalContext = new Dictionary<string, object>();
}
globalContext["current_year"] = DateTime.Today.Year;
globalContext["app_url"] = EventHubExternalUrls.EhWww;
return await base.RenderAsync(templateName, model, cultureName, globalContext);
}
}
}

200
src/EventHub.Domain/Emailing/Templates/EventRegistration.tpl

@ -1,157 +1,43 @@
<html>
<head>
<meta name="viewport" content="width=device-width">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Eventhub</title>
<style>
@media only screen and (max-width: 620px) {
table[class=mail-body] h1{
font-size: 36px !important;
margin-bottom: 10px !important;
}
table[class=mail-body] .content {
padding: 0 !important;
}
table[class=mail-body] .container {
padding: 0 !important;
width: 100% !important;
}
table[class=mail-body] .main {
border-left-width: 0 !important;
border-radius: 0 !important;
border-right-width: 0 !important;
}
table[class=mail-body] td {
width: 100% !important;
float: left!important;
}
table[class=mail-body] td a.btn {
display: block !important;
text-align: center;
}
table[class=mail-body] td h2 {
margin: 10px 0 !important;
}
table[class=mail-body] td .cont {
padding: 30px !important;
}
}
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" class="mail-body" style="background-color: #ffffff;width: 100%; font-size: 16px;line-height: 1.4;font-family: Arial, sans-serif;">
<tbody>
<tr>
<td class="container" width="800" style="display: block;margin: 0 auto !important; max-width: 800px;padding: 10px;width: 800px;">
<div class="content" style="box-sizing: border-box;display: block;margin: 0 auto;max-width: 800px;padding: 0px;">
<div style="display: flex; padding-top: 1.5rem">
<h1 style="justify-content: center;margin-left: auto;margin-right: auto;align-content: center;">EventHub</h1>
</div>
<!-- START CENTERED WHITE CONTAINER -->
<div style="display: flex;">
<h1 style="justify-content: center;margin-left: auto;margin-right: auto;align-content: center;">{{model.title}}</h1>
</div>
<table class="main" style="background: #ffffff;border-radius: 3px; width: 100%;">
<!-- START MAIN CONTENT AREA -->
<tbody>
<tr>
<td class="wrapper" width="800">
<table class="main" style="background: #ffffff;border-radius: 3px;width: 100%;">
<tbody>
<tr>
<td class="wrapper" width="800">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%; ">
<tbody>
<tr>
<td style="vertical-align: top;" width="100%">
<div class="cont" style="background: #eeeeee; border-radius: 10px; padding: 40px; margin-top: 20px;">
<table style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%; ">
<tbody>
<tr>
<td width="100%" style="vertical-align: top; font-size: 16px; font-family: Arial, sans-serif; color: #444; margin-top: 20px; margin-bottom: 20px; line-height: 1.75">
<p>
Hi,
</p>
<p>
Great news! You attended the "{{model.title}}" event.
</p>
<div>
<table border="0" cellpadding="0" cellspacing="0" style=" border-collapse: separate; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
<tbody>
<tr style="text-align: center">
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">Start Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.start_time}}</p>
</td>
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">End Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.end_time}}</p>
</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 20px; margin-top: 20px; text-align: center;">
<a href="/events/{{model.url}}" class="btn" target="_blank" style="padding: 15px; background: #e90052; border-radius: 40px; text-align: center; color: white; font-weight: bold; text-decoration: none; font-size: 18px; padding-left: 45px; padding-right: 45px;">Event Details</a>
</p>
</div>
<p style="font-size: 16px; font-family: Arial, sans-serif; color: #444; margin-top: 20px; margin-bottom: 0px;">
Thank you,<br> EventHub
</p>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<!-- START FOOTER -->
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%;">
<tbody>
<tr>
<td class="content-block" style="vertical-align: top;" width="800">
<div class="cont" style="background: #ffffff;border-top: 2px solid #eee; padding: 35px 40px 5px; margin-top: 0px; text-align: center;">
<a href="https://eventhub.abp.io/" style="font-size: 16px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; text-decoration: none;">Home</a>
</div>
</td>
</tr>
<tr>
<td class="content-block powered-by" style="vertical-align: top;" width="100%">
<div class="cont" style="background: #ffffff; border-radius: 10px; padding: 5px 40px; margin-top: 10px; margin-bottom: 50px; text-align: center;">
<a href="mailto:info@eventhub.abp.io" style="font-size: 16px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; text-decoration: none;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAABMElEQVQ4je3TvyvFYRQG8M+9LEwWiV0xyeAi2ZTUFQuZDAqTxUCJzY9BFotS/gAySAZFEgYlySzFLosfs169w6XL/V6uzbO973vO85z3OeekstlsGRYxrrTYw1g56jGNO6yivAQyS5hFdRpHGMQauvDwC+IXDGAGnTgJApXYxAJO0YLrH5Dfog3bmMAhatI5AUF1B4/oiIFJcYAMbrCRa3X6E0EvzlEbbZtLILCMHlQESzCS+/hZIKARF7Ef8+jDc564VwxhCq24jL/4gHwCAVXYxyR2o7e3Oe/30cbQuzEcB7/zEX03kkF8BU2RJFS3hVS07wnrGP2GI9HMD6MB/eiOd9Wx6vZCyUmXKhM9Hojn8JO6JInFbG2YrLMi4t/xVZNLhn+BgghNvkLzn7Bz9QbIADMmEt9imAAAAABJRU5ErkJggg==" width="16"> info@eventhub.abp.io</a>
<span style="font-size: 16px; font-family: Arial, sans-serif; color: #777; margin-right: 0px; text-decoration: none;"><strong>EventHub</strong> - Powered by Volosoft</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- END FOOTER -->
<!-- END CENTERED WHITE CONTAINER -->
</td>
</tr>
</tbody>
</table>
</body>
</html>
<h1
style="font-size: 40px; font-family: Arial, sans-serif; color: #00044a; font-weight: bold; line-height: 1.2; margin-top: 50px;">
{{model.title}}</h1>
<p style="font-size: 24px; font-family: Arial, sans-serif; color: #00044a;">
<strong>Hi,</strong></p>
<p style="font-size: 18px; font-family: Arial, sans-serif; color: #666; margin-top: 20px; margin-bottom: 20px;">
Great news! You attended the "{{model.title}}" event.
</p>
<p style=" margin-top: 30px; margin-bottom: 30px;">
<div>
<table border="0" cellpadding="0" cellspacing="0"
style=" border-collapse: separate; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
<tbody>
<tr style="text-align: center">
<td style="vertical-align: top;">
<p
style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">
Start Time</p>
<p
style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">
{{model.start_time}}</p>
</td>
<td style="vertical-align: top;">
<p
style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">
End Time</p>
<p
style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">
{{model.end_time}}</p>
</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 20px; margin-top: 20px; text-align: center;">
<a href="{{app_url}}/events/{{model.url}}" class="btn" target="_blank"
style="padding: 15px; background: #e90052; border-radius: 40px; text-align: center; color: white; font-weight: bold; text-decoration: none; font-size: 18px; padding-left: 45px; padding-right: 45px;">Event
Details</a>
</p>
</div>
</p>

189
src/EventHub.Domain/Emailing/Templates/EventReminder.tpl

@ -1,157 +1,32 @@
<html>
<head>
<meta name="viewport" content="width=device-width">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Eventhub</title>
<style>
@media only screen and (max-width: 620px) {
table[class=mail-body] h1{
font-size: 36px !important;
margin-bottom: 10px !important;
}
table[class=mail-body] .content {
padding: 0 !important;
}
table[class=mail-body] .container {
padding: 0 !important;
width: 100% !important;
}
table[class=mail-body] .main {
border-left-width: 0 !important;
border-radius: 0 !important;
border-right-width: 0 !important;
}
table[class=mail-body] td {
width: 100% !important;
float: left!important;
}
table[class=mail-body] td a.btn {
display: block !important;
text-align: center;
}
table[class=mail-body] td h2 {
margin: 10px 0 !important;
}
table[class=mail-body] td .cont {
padding: 30px !important;
}
}
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" class="mail-body" style="background-color: #ffffff;width: 100%; font-size: 16px;line-height: 1.4;font-family: Arial, sans-serif;">
<tbody>
<tr>
<td class="container" width="800" style="display: block;margin: 0 auto !important; max-width: 800px;padding: 10px;width: 800px;">
<div class="content" style="box-sizing: border-box;display: block;margin: 0 auto;max-width: 800px;padding: 0px;">
<div style="display: flex; padding-top: 1.5rem">
<h1 style="justify-content: center;margin-left: auto;margin-right: auto;align-content: center;">EventHub</h1>
</div>
<!-- START CENTERED WHITE CONTAINER -->
<div style="display: flex;">
<h1 style="justify-content: center;margin-left: auto;margin-right: auto;align-content: center;">{{model.title}} event will start soon</h1>
</div>
<table class="main" style="background: #ffffff;border-radius: 3px; width: 100%;">
<!-- START MAIN CONTENT AREA -->
<tbody>
<tr>
<td class="wrapper" width="800">
<table class="main" style="background: #ffffff;border-radius: 3px;width: 100%;">
<tbody>
<tr>
<td class="wrapper" width="800">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%; ">
<tbody>
<tr>
<td style="vertical-align: top;" width="100%">
<div class="cont" style="background: #eeeeee; border-radius: 10px; padding: 40px; margin-top: 20px;">
<table style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%; ">
<tbody>
<tr>
<td width="100%" style="vertical-align: top; font-size: 16px; font-family: Arial, sans-serif; color: #444; margin-top: 20px; margin-bottom: 20px; line-height: 1.75">
<p>
Hi {{model.user_name}},
</p>
<p>
The "{{model.title}}" event will start very soon.
</p>
<div>
<table border="0" cellpadding="0" cellspacing="0" style=" border-collapse: separate; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
<tbody>
<tr style="text-align: center">
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">Start Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.start_time}}</p>
</td>
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">End Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.end_time}}</p>
</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 20px; margin-top: 20px; text-align: center;">
<a href="/events/{{model.url}}" class="btn" target="_blank" style="padding: 15px; background: #e90052; border-radius: 40px; text-align: center; color: white; font-weight: bold; text-decoration: none; font-size: 18px; padding-left: 45px; padding-right: 45px;">Event Details</a>
</p>
</div>
<p style="font-size: 16px; font-family: Arial, sans-serif; color: #444; margin-top: 20px; margin-bottom: 0px;">
Thank you,<br> EventHub
</p>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<!-- START FOOTER -->
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%;">
<tbody>
<tr>
<td class="content-block" style="vertical-align: top;" width="800">
<div class="cont" style="background: #ffffff;border-top: 2px solid #eee; padding: 35px 40px 5px; margin-top: 0px; text-align: center;">
<a href="https://eventhub.abp.io/" style="font-size: 16px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; text-decoration: none;">Home</a>
</div>
</td>
</tr>
<tr>
<td class="content-block powered-by" style="vertical-align: top;" width="100%">
<div class="cont" style="background: #ffffff; border-radius: 10px; padding: 5px 40px; margin-top: 10px; margin-bottom: 50px; text-align: center;">
<a href="mailto:info@eventhub.abp.io" style="font-size: 16px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; text-decoration: none;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAABMElEQVQ4je3TvyvFYRQG8M+9LEwWiV0xyeAi2ZTUFQuZDAqTxUCJzY9BFotS/gAySAZFEgYlySzFLosfs169w6XL/V6uzbO973vO85z3OeekstlsGRYxrrTYw1g56jGNO6yivAQyS5hFdRpHGMQauvDwC+IXDGAGnTgJApXYxAJO0YLrH5Dfog3bmMAhatI5AUF1B4/oiIFJcYAMbrCRa3X6E0EvzlEbbZtLILCMHlQESzCS+/hZIKARF7Ef8+jDc564VwxhCq24jL/4gHwCAVXYxyR2o7e3Oe/30cbQuzEcB7/zEX03kkF8BU2RJFS3hVS07wnrGP2GI9HMD6MB/eiOd9Wx6vZCyUmXKhM9Hojn8JO6JInFbG2YrLMi4t/xVZNLhn+BgghNvkLzn7Bz9QbIADMmEt9imAAAAABJRU5ErkJggg==" width="16"> info@eventhub.abp.io</a>
<span style="font-size: 16px; font-family: Arial, sans-serif; color: #777; margin-right: 0px; text-decoration: none;"><strong>EventHub</strong> - Powered by Volosoft</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- END FOOTER -->
<!-- END CENTERED WHITE CONTAINER -->
</td>
</tr>
</tbody>
</table>
</body>
</html>
<h1
style="font-size: 40px; font-family: Arial, sans-serif; color: #00044a; font-weight: bold; line-height: 1.2; margin-top: 50px;">
{{model.title}}</h1>
<p style="font-size: 24px; font-family: Arial, sans-serif; color: #00044a;">
<strong>Hi {{model.user_name}},</strong></p>
<p style="font-size: 18px; font-family: Arial, sans-serif; color: #666; margin-top: 20px; margin-bottom: 20px;">
The "{{model.title}}" event will start very soon.
</p>
<p style=" margin-top: 30px; margin-bottom: 30px;">
<div>
<table border="0" cellpadding="0" cellspacing="0" style=" border-collapse: separate; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
<tbody>
<tr style="text-align: center">
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">Start Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.start_time}}</p>
</td>
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">End Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.end_time}}</p>
</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 20px; margin-top: 20px; text-align: center;">
<a href="{{app_url}}/events/{{model.url}}" class="btn" target="_blank" style="padding: 15px; background: #e90052; border-radius: 40px; text-align: center; color: white; font-weight: bold; text-decoration: none; font-size: 18px; padding-left: 45px; padding-right: 45px;">Event Details</a>
</p>
</div>
</p>

189
src/EventHub.Domain/Emailing/Templates/EventTimingChanged.tpl

@ -1,157 +1,32 @@
<html>
<head>
<meta name="viewport" content="width=device-width">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Eventhub</title>
<style>
@media only screen and (max-width: 620px) {
table[class=mail-body] h1{
font-size: 36px !important;
margin-bottom: 10px !important;
}
table[class=mail-body] .content {
padding: 0 !important;
}
table[class=mail-body] .container {
padding: 0 !important;
width: 100% !important;
}
table[class=mail-body] .main {
border-left-width: 0 !important;
border-radius: 0 !important;
border-right-width: 0 !important;
}
table[class=mail-body] td {
width: 100% !important;
float: left!important;
}
table[class=mail-body] td a.btn {
display: block !important;
text-align: center;
}
table[class=mail-body] td h2 {
margin: 10px 0 !important;
}
table[class=mail-body] td .cont {
padding: 30px !important;
}
}
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" class="mail-body" style="background-color: #ffffff;width: 100%; font-size: 16px;line-height: 1.4;font-family: Arial, sans-serif;">
<tbody>
<tr>
<td class="container" width="800" style="display: block;margin: 0 auto !important; max-width: 800px;padding: 10px;width: 800px;">
<div class="content" style="box-sizing: border-box;display: block;margin: 0 auto;max-width: 800px;padding: 0px;">
<div style="display: flex; padding-top: 1.5rem">
<h1 style="justify-content: center;margin-left: auto;margin-right: auto;align-content: center;">EventHub</h1>
</div>
<!-- START CENTERED WHITE CONTAINER -->
<div style="display: flex;">
<h1 style="justify-content: center;margin-left: auto;margin-right: auto;align-content: center;">{{model.title}} event time has been changed!</h1>
</div>
<table class="main" style="background: #ffffff;border-radius: 3px; width: 100%;">
<!-- START MAIN CONTENT AREA -->
<tbody>
<tr>
<td class="wrapper" width="800">
<table class="main" style="background: #ffffff;border-radius: 3px;width: 100%;">
<tbody>
<tr>
<td class="wrapper" width="800">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%; ">
<tbody>
<tr>
<td style="vertical-align: top;" width="100%">
<div class="cont" style="background: #eeeeee; border-radius: 10px; padding: 40px; margin-top: 20px;">
<table style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%; ">
<tbody>
<tr>
<td width="100%" style="vertical-align: top; font-size: 16px; font-family: Arial, sans-serif; color: #444; margin-top: 20px; margin-bottom: 20px; line-height: 1.75">
<p>
Hi {{model.user_name}},
</p>
<p>
The "{{model.title}}" event time just rescheduled.
</p>
<div>
<table border="0" cellpadding="0" cellspacing="0" style=" border-collapse: separate; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
<tbody>
<tr style="text-align: center">
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">Start Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.start_time}}</p>
</td>
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">End Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.end_time}}</p>
</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 20px; margin-top: 20px; text-align: center;">
<a href="/events/{{model.url}}" class="btn" target="_blank" style="padding: 15px; background: #e90052; border-radius: 40px; text-align: center; color: white; font-weight: bold; text-decoration: none; font-size: 18px; padding-left: 45px; padding-right: 45px;">Event Details</a>
</p>
</div>
<p style="font-size: 16px; font-family: Arial, sans-serif; color: #444; margin-top: 20px; margin-bottom: 0px;">
Thank you,<br> EventHub
</p>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<!-- START FOOTER -->
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%;">
<tbody>
<tr>
<td class="content-block" style="vertical-align: top;" width="800">
<div class="cont" style="background: #ffffff;border-top: 2px solid #eee; padding: 35px 40px 5px; margin-top: 0px; text-align: center;">
<a href="https://eventhub.abp.io/" style="font-size: 16px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; text-decoration: none;">Home</a>
</div>
</td>
</tr>
<tr>
<td class="content-block powered-by" style="vertical-align: top;" width="100%">
<div class="cont" style="background: #ffffff; border-radius: 10px; padding: 5px 40px; margin-top: 10px; margin-bottom: 50px; text-align: center;">
<a href="mailto:info@eventhub.abp.io" style="font-size: 16px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; text-decoration: none;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAABMElEQVQ4je3TvyvFYRQG8M+9LEwWiV0xyeAi2ZTUFQuZDAqTxUCJzY9BFotS/gAySAZFEgYlySzFLosfs169w6XL/V6uzbO973vO85z3OeekstlsGRYxrrTYw1g56jGNO6yivAQyS5hFdRpHGMQauvDwC+IXDGAGnTgJApXYxAJO0YLrH5Dfog3bmMAhatI5AUF1B4/oiIFJcYAMbrCRa3X6E0EvzlEbbZtLILCMHlQESzCS+/hZIKARF7Ef8+jDc564VwxhCq24jL/4gHwCAVXYxyR2o7e3Oe/30cbQuzEcB7/zEX03kkF8BU2RJFS3hVS07wnrGP2GI9HMD6MB/eiOd9Wx6vZCyUmXKhM9Hojn8JO6JInFbG2YrLMi4t/xVZNLhn+BgghNvkLzn7Bz9QbIADMmEt9imAAAAABJRU5ErkJggg==" width="16"> info@eventhub.abp.io</a>
<span style="font-size: 16px; font-family: Arial, sans-serif; color: #777; margin-right: 0px; text-decoration: none;"><strong>EventHub</strong> - Powered by Volosoft</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- END FOOTER -->
<!-- END CENTERED WHITE CONTAINER -->
</td>
</tr>
</tbody>
</table>
</body>
</html>
<h1
style="font-size: 40px; font-family: Arial, sans-serif; color: #00044a; font-weight: bold; line-height: 1.2; margin-top: 50px;">
{{model.title}}</h1>
<p style="font-size: 24px; font-family: Arial, sans-serif; color: #00044a;">
<strong>Hi {{model.user_name}},</strong></p>
<p style="font-size: 18px; font-family: Arial, sans-serif; color: #666; margin-top: 20px; margin-bottom: 20px;">
The "{{model.title}}" event time just rescheduled.
</p>
<p style=" margin-top: 30px; margin-bottom: 30px;">
<div>
<table border="0" cellpadding="0" cellspacing="0" style=" border-collapse: separate; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
<tbody>
<tr style="text-align: center">
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">Start Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.start_time}}</p>
</td>
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">End Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.end_time}}</p>
</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 20px; margin-top: 20px; text-align: center;">
<a href="{{app_url}}/events/{{model.url}}" class="btn" target="_blank" style="padding: 15px; background: #e90052; border-radius: 40px; text-align: center; color: white; font-weight: bold; text-decoration: none; font-size: 18px; padding-left: 45px; padding-right: 45px;">Event Details</a>
</p>
</div>
</p>

140
src/EventHub.Domain/Emailing/Templates/Layout.tpl

@ -0,0 +1,140 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>EventHub Email</title>
<style>
@media only screen and (max-width: 620px) {
table[class=mail-body] h1 {
font-size: 36px !important;
margin-bottom: 10px !important;
}
table[class=mail-body] .content {
padding: 0 !important;
}
table[class=mail-body] .container {
padding: 0 !important;
width: 600px !important;
}
table[class=mail-body] .main {
border-left-width: 0 !important;
border-radius: 0 !important;
border-right-width: 0 !important;
}
table[class=mail-body] td {
width: 600px !important;
float: left !important;
}
table[class=mail-body] td a.btn {
display: block !important;
text-align: center;
}
table[class=mail-body] td h2 {
margin: 10px 0 !important;
}
table[class=mail-body] td .cont {
padding: 30px !important;
}
}
</style>
</head>
<body>
<div style="width: 600px; margin-left: auto; margin-right: auto; margin-top: 50px; margin-bottom: 50px;">
<table border="0" cellpadding="0" cellspacing="0" class="mail-body" style="
background-color: #ffffff;
width: 600px;
font-size: 16px;
line-height: 1.4;
font-family: Arial, sans-serif;">
<tr>
<td class="container" width="600" style="
display: block;
margin: 0 auto !important;
max-width: 600px;
padding: 0px;
width: 600px;">
<table border="0" cellpadding="0" cellspacing="0" style="
border-collapse: separate; vertical-align: top;
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
width: 600px; ">
<tr>
<td style="vertical-align: top;">
<div class="cont" style="background: #ffffff; text-align:left;">
<table border="0" cellpadding="0" cellspacing="0" width="600">
<tr>
<td><a href="{{app_url}}"><img
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAAAkCAYAAAA6l/D/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAqUSURBVHgB7VzNbhtHEq6eGXplI4vQh43txQKmniB0Vl4Ee/HosIAkG4h8CwxLop5AyhOYegLbT2Aq1gZ7swKsLWVz0OSyWMAylnoCMUCwsrwH0zBjC+J0V6p6+DPD+SEpkZQtzQdIw+np6fmrrq6qr7oFdMHel1/nwLVyMABIoap/ev5dGVKkGBFEVOHel4WckHJJoCggYBYGekVREYCOMs2VK/8pVSBFiiEiJOAvJ+aWaXMfRgAEsXJl+9sipEgxJAQE/OWf5x+AwKVABYQqChyIWUEjQh4FBEYEA+DBZ9uPv4EUKYaAloDvTcwXyXS41z6EjilE8Q/PH/8EA8T/r8/dkApKdOVcs0wBfPPH7ccPIEWKAUMLuLa5XbnrK39wecha9dXE3H0S7OXmPlrmeGqTpxg0DP1PyrbmRqhcHoHJ0DBLnOY+dbAlSJGigb2JuzaZzLvkE27BMWDxP3L2bP7PMA0oBGpkbi4D4g0SwR6jKaoM7obXQTK3lujc2dYhQaZJ/elqc5ciNCtCX1tfvUCb5I5l3qK2VP8OcAZsOHj2M5wFmNOzFKn6PFCG7g7If61HVX91/U5eoanfKSm2SegRLID07e6RhiwPzYcSmGuI5ZFh/XK9kAeUOd6htqoBmzszUyABbQjUUa6k8vTPbu0i/c5MX4T6hra3r2yvOfsTc1VqOUu2Uvb1X+9cvfjv7xIEUWX9tnuKCBjiK3rPhWCZVQIJkQIu0eB3b0O/UCJH47+tjiuBQ4ZhotvSzORkBqMlKBZg0EC4EdyF1jXdupmDFCkGCANGj8ESRylSJMCCjx9VQLXcpY4A65YdKrXcChxsViLPyNpZqH2SD5W7NRpxnGpk/bcXZsEwPqX7IVPKoPuCHXD/6UAcYq/hOyczk6c4ap6e4Cq19zOppDLUn4V5iebzaXOzg79DYqP9z590Tx8Jdu1CduzgIHswNlYdd0rVuHr9Czhihew8J/64qMAoQUQUyM3VxDpylj5w/Ql0ph24gn2BaAfp10/IPFMRsfmxceBO1YQWHOIPamhruULVuK/G1rpZJWdpHUy1EupM3CGEegTB5+E641qwUdyn92235FW3r9t0wJKLwfbUVrtSJwQ757P+AhgSOPLBW9dwb/eSd6SdVTT0O7j84tvxpLpaqGtqmcjHBahxR87A+ZqE/Yl5/Y6j0j/6F3AW7vqzRfiosE4vYGY95Hwhf/gYAfdHf9qFDoBPqKyZIgnOPUgEdSq+rjTIwf7bbaj/2J0VPkeREAVP4h17EnppbMHY1GTsCHRS4MgH4XdgftrvOUnQXM2v3IkxJ7SCwTIHRTx23HvHFGouEGEZSP84CRv8ZIAqrOU5ImNN2aHysamcFqJQG1hq/dbCDV2E238uXQszW17bCeBUBtbcvbTnikdwBuAl/5Fwo6qaAuxLLx5fvLS9du3y9tok/zaEvEZavcR1mY1nVr557vFs8Mw0DaFGPvY4ku04ijDS2Gwu9tjBekVv3U1Hmwuh7EiDozpOoIi1bRhkCh18712PhNSNEG42l3TejiD7G8luFrmOGtmGUCbFm1kbZVvtAVYj2mmAOATuoPxspxiaiFTgXHqxFmk5fOaZQov7E3crxOkUPSG/63AY+ngCroU7QtONEqyF3cPd2OPWNAnARjO2XwJfeoAHff8rwSIOj3Z0TOQ4csO5lEaEcJNvInEyaMJMUT2jGKzYg1B6HWUWZPO+qUOZokiCHhG2pbg3d1CrwQ+4wH5Dh3lFPoAl2s/tQiTYHoYeIQR8PgrdpZPzFNjv5dtr3eqSVl8h5tOmn5qEoq1zGqIofUCSBjY6BJyZVIpmtCIj5JDCoR1xbpso0bZ7x9clpwrkj5VAmbu5ojtYg631XdMTylhQVMjd9CW5UaeRZMdb01fDbYE3gjaZ2sxMNSR4gkaUHphcEoreafER8TtMABr0PsbL69Ve6vvYcXs3X8ieLQFnrWnOVEJsaOb8AtThof5tunboPK2df/DMEx3dCE0CqcY7jzriZHcU5iAe8VEhYZKjrOxAGYocDAhCqFKvdVFfN9TZhgIpZc8ZrX52/PfW4Y1TIuAc3YiBkMGeL7SZUgyerod0T8AN9VVYO/nCokRt6wTfICgMOdOPTosnuxDiNZVSb4YX4KMh/vnfe46O7X0xVxDGESj+PsGRkivlf1SgL3CoGvMKxTE1uCDSARO+K3v6sQ7SgMBxY7nRc5IQWBRNcSPs4raZYofOEb7oSYqRQiR1+BggO+a8Jdk7noDXnyZnkWVmHoVizycNjhtb005oeGUzBW/tkAmQC5Rr82SjPUQKVY2wPznaERE3j4GLZyOz8YQh6NudMSezgUhbFphVzIcdtI4svPo56iCH4Tbd9zuRFH5UisAYhTEO4FSCSRgcZL4R+UvsLI6XSz1rcrqHPH9GYRhHEnBi5G4mEAyqDPWNh/Aho26tkpB20PCCoxG5UF0XO56FvfnQCJClEaBAjmqwTZ1urMLvqq61fQVGBezOFA7uUhzihCwqPRJ2dQ6JabzRzXm5YLk8GWYFegCHOpsdrFY3d46Qi8JCgIWEGg40HbZRgOOkJglSEuS79aB2jRFS7NQ8TNpEUOGIq+Rb2MEyYh91GM/8vmHGzFLZUjie7ovIDAVGOewE071mZnZbeULu0959lj5BjqdDQl5QwijQ7mq3+sj1Evw4djLpXRdIiz/sRYsbYNxHnsJDzCbXPw1UPU+CeJT4N3YhnBfBZko3ID6ILJebJfDlsfsaXdZJTwj/BU3jR60pg0UYJnj2TmS5Vkz2sIk5xZ3fg92NONIT3TF5xQZ2Mg0i2c5baosp+27tkXBrXkDJutb4XQQc+/ZgPxqwmcKUehJkwhDrqttaG/cFVeya+XhceAxp9847JHAcGloklnjyP2+dnQA4K5CXKCHhXlACuo5mGddcYe6B81Fe/WV+gc/3t6Xnb07MbTVXhaBtsRlatMCyKuBKXRk9O7QNgT81Mu5OIbSZUo4nKzoyB0NgdnFqEkzY6hoKZbvUkEWo/zAa0809twjmIdvCBTgBoFtfFGZmi+h8zvy7vz8xfw9bs8VEFmqS5ayCsj4JgpcFTA7uXyRTYy//9aSAzBZ1iBKnyFIHqeiDtXb+u17Dx8Dipedrrfdscf6sf14k94ZGLwQ9d9KcqkbnQMSiPeRwgn6YhCnD0fE6kdSJw8H7N9EHMN5xQdmDMGoKfZx8AKbeKQqjaXNPSbQSr+h+5cFDkE7UaBF+HkNwm3HosT51XgmL5BOUwMtLycc1KIVVtdB1oE9kDPHaBeWQWIW+Z0N7ju99cadgGMYSete39UEa9YTA4jtZe8j0+y/XiU6PuH7zvoThjZL+Nik6sqAjJY1FpBpTLdd1my+ClL4W/Y41Spx+ZlcfF41lAWz+zamQg15oKMWHAZ5QXn337k2vOSWDgrbBpVv3ayubBR5SpBggeLWEUQs3Qws4q38FqsVKsjZ/eX1+t5/0yRQpPkQErPvO5dS8CqKKMJjFN6NvQOSbSzSnJkqKQSNA9PAKRfsTd6s8K6JZ1hA+G4YEHFVicYoziVAcnGdFUJhnXM9xwxHSySlSDAFds4t57TrRzwzpY6BWf7tzEo5IitOL3wA7jo73E7oOAwAAAABJRU5ErkJggg=="
height="36"></a></td>
<td style="text-align: right">
<a href="{{app_url}}/events/new"
style="font-size: 14px; font-family: Arial, sans-serif; color: #65D6A0; font-weight: bold; margin-top: 0px; text-decoration: none; display: inline-block;">+
Create an Event</a>
</td>
</tr>
</table>
{{content}}
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table border="0" cellpadding="0" cellspacing="0" style="
border-collapse: separate; vertical-align: top;
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
width: 600px; ">
<tr>
<td class="content-block" style="vertical-align: top;" width="600">
<div class="cont"
style="background: #ffffff;border-top: 2px solid #eee; padding: 25px 0px 0; margin-top: 0px; text-align: left;">
<a href="{{app_url}}"
style="font-size: 14px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; margin-bottom: 20px; text-decoration: none; display: inline-block;">Home</a>
<a href="{{app_url}}/events"
style="font-size: 14px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; margin-bottom: 20px; text-decoration: none; display: inline-block;">Events</a>
<a href="{{app_url}}/organizations"
style="font-size: 14px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; margin-bottom: 20px; text-decoration: none; display: inline-block;">Organizations</a>
<a href="{{app_url}}/terms-service"
style="font-size: 14px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; margin-bottom: 20px; text-decoration: none; display: inline-block;">Term
of Service</a>
<a href="{{app_url}}/privacy-policy"
style="font-size: 14px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 0px; margin-bottom: 20px; text-decoration: none; display: inline-block;">Privacy
Policy</a>
</div>
</td>
</tr>
<tr>
<td class="content-block powered-by" style="vertical-align: top;" width="600">
<div class="cont"
style="background: #ffffff; margin-top: 10px; margin-bottom: 50px; text-align: left;">
<a href="mailto:info@{{app_url}}"
style="font-size: 14px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; text-decoration: none;">info@{{app_url}}</a>
<a href="{{app_url}}"
style="font-size: 14px; font-family: Arial, sans-serif; color: #777; margin-right: 0px; text-decoration: none;"><strong>EventHub</strong>
- Powered by Volosoft</a>
</div>
</td>
</tr>
</table>
</td>
</tr>
</td>
</tr>
</table>
</div>
</body>
</html>

189
src/EventHub.Domain/Emailing/Templates/NewEventCreated.tpl

@ -1,157 +1,32 @@
<html>
<head>
<meta name="viewport" content="width=device-width">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Eventhub</title>
<style>
@media only screen and (max-width: 620px) {
table[class=mail-body] h1{
font-size: 36px !important;
margin-bottom: 10px !important;
}
table[class=mail-body] .content {
padding: 0 !important;
}
table[class=mail-body] .container {
padding: 0 !important;
width: 100% !important;
}
table[class=mail-body] .main {
border-left-width: 0 !important;
border-radius: 0 !important;
border-right-width: 0 !important;
}
table[class=mail-body] td {
width: 100% !important;
float: left!important;
}
table[class=mail-body] td a.btn {
display: block !important;
text-align: center;
}
table[class=mail-body] td h2 {
margin: 10px 0 !important;
}
table[class=mail-body] td .cont {
padding: 30px !important;
}
}
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" class="mail-body" style="background-color: #ffffff;width: 100%; font-size: 16px;line-height: 1.4;font-family: Arial, sans-serif;">
<tbody>
<tr>
<td class="container" width="800" style="display: block;margin: 0 auto !important; max-width: 800px;padding: 10px;width: 800px;">
<div class="content" style="box-sizing: border-box;display: block;margin: 0 auto;max-width: 800px;padding: 0px;">
<div style="display: flex; padding-top: 1.5rem">
<h1 style="justify-content: center;margin-left: auto;margin-right: auto;align-content: center;">EventHub</h1>
</div>
<!-- START CENTERED WHITE CONTAINER -->
<div style="display: flex;">
<h1 style="justify-content: center;margin-left: auto;margin-right: auto;align-content: center;">There is a new event that may interest you</h1>
</div>
<table class="main" style="background: #ffffff;border-radius: 3px; width: 100%;">
<!-- START MAIN CONTENT AREA -->
<tbody>
<tr>
<td class="wrapper" width="800">
<table class="main" style="background: #ffffff;border-radius: 3px;width: 100%;">
<tbody>
<tr>
<td class="wrapper" width="800">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%; ">
<tbody>
<tr>
<td style="vertical-align: top;" width="100%">
<div class="cont" style="background: #eeeeee; border-radius: 10px; padding: 40px; margin-top: 20px;">
<table style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%; ">
<tbody>
<tr>
<td width="100%" style="vertical-align: top; font-size: 16px; font-family: Arial, sans-serif; color: #444; margin-top: 20px; margin-bottom: 20px; line-height: 1.75">
<p>
Hi {{model.user_name}},
</p>
<p>
A new event called "{{model.title}}" has been created.
</p>
<div>
<table border="0" cellpadding="0" cellspacing="0" style=" border-collapse: separate; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
<tbody>
<tr style="text-align: center">
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">Start Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.start_time}}</p>
</td>
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">End Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.end_time}}</p>
</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 20px; margin-top: 20px; text-align: center;">
<a href="/events/{{model.url}}" class="btn" target="_blank" style="padding: 15px; background: #e90052; border-radius: 40px; text-align: center; color: white; font-weight: bold; text-decoration: none; font-size: 18px; padding-left: 45px; padding-right: 45px;">Event Details</a>
</p>
</div>
<p style="font-size: 16px; font-family: Arial, sans-serif; color: #444; margin-top: 20px; margin-bottom: 0px;">
Thank you,<br> EventHub
</p>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<!-- START FOOTER -->
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; vertical-align: top;mso-table-lspace: 0pt;mso-table-rspace: 0pt;width: 100%;">
<tbody>
<tr>
<td class="content-block" style="vertical-align: top;" width="800">
<div class="cont" style="background: #ffffff;border-top: 2px solid #eee; padding: 35px 40px 5px; margin-top: 0px; text-align: center;">
<a href="https://eventhub.abp.io/" style="font-size: 16px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; text-decoration: none;">Home</a>
</div>
</td>
</tr>
<tr>
<td class="content-block powered-by" style="vertical-align: top;" width="100%">
<div class="cont" style="background: #ffffff; border-radius: 10px; padding: 5px 40px; margin-top: 10px; margin-bottom: 50px; text-align: center;">
<a href="mailto:info@eventhub.abp.io" style="font-size: 16px; font-family: Arial, sans-serif; color: #777; font-weight: bold; margin-right: 30px; text-decoration: none;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAABMElEQVQ4je3TvyvFYRQG8M+9LEwWiV0xyeAi2ZTUFQuZDAqTxUCJzY9BFotS/gAySAZFEgYlySzFLosfs169w6XL/V6uzbO973vO85z3OeekstlsGRYxrrTYw1g56jGNO6yivAQyS5hFdRpHGMQauvDwC+IXDGAGnTgJApXYxAJO0YLrH5Dfog3bmMAhatI5AUF1B4/oiIFJcYAMbrCRa3X6E0EvzlEbbZtLILCMHlQESzCS+/hZIKARF7Ef8+jDc564VwxhCq24jL/4gHwCAVXYxyR2o7e3Oe/30cbQuzEcB7/zEX03kkF8BU2RJFS3hVS07wnrGP2GI9HMD6MB/eiOd9Wx6vZCyUmXKhM9Hojn8JO6JInFbG2YrLMi4t/xVZNLhn+BgghNvkLzn7Bz9QbIADMmEt9imAAAAABJRU5ErkJggg==" width="16"> info@eventhub.abp.io</a>
<span style="font-size: 16px; font-family: Arial, sans-serif; color: #777; margin-right: 0px; text-decoration: none;"><strong>EventHub</strong> - Powered by Volosoft</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- END FOOTER -->
<!-- END CENTERED WHITE CONTAINER -->
</td>
</tr>
</tbody>
</table>
</body>
</html>
<h1
style="font-size: 40px; font-family: Arial, sans-serif; color: #00044a; font-weight: bold; line-height: 1.2; margin-top: 50px;">
{{model.title}}</h1>
<p style="font-size: 24px; font-family: Arial, sans-serif; color: #00044a;">
<strong>Hi {{model.user_name}},</strong></p>
<p style="font-size: 18px; font-family: Arial, sans-serif; color: #666; margin-top: 20px; margin-bottom: 20px;">
A new event called "{{model.title}}" has been created.
</p>
<p style=" margin-top: 30px; margin-bottom: 30px;">
<div>
<table border="0" cellpadding="0" cellspacing="0" style=" border-collapse: separate; vertical-align: top; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%;">
<tbody>
<tr style="text-align: center">
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">Start Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.start_time}}</p>
</td>
<td style="vertical-align: top;">
<p style="font-size: 13px; font-family: Arial, sans-serif; color: #777777; margin: 0; margin-top: 30px;">End Time</p>
<p style="font-size: 21px; font-family: Arial, sans-serif; color: #444444; margin-bottom: 30px; margin-top: 6px;">{{model.end_time}}</p>
</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 20px; margin-top: 20px; text-align: center;">
<a href="{{app_url}}/events/{{model.url}}" class="btn" target="_blank" style="padding: 15px; background: #e90052; border-radius: 40px; text-align: center; color: white; font-weight: bold; text-decoration: none; font-size: 18px; padding-left: 45px; padding-right: 45px;">Event Details</a>
</p>
</div>
</p>

46
src/EventHub.IdentityServer/Pages/Account/Manage.cshtml

@ -0,0 +1,46 @@
@page
@using Microsoft.AspNetCore.Mvc.Localization
@using Volo.Abp.Account.Localization
@using Volo.Abp.Account.Web.Pages.Account
@using Volo.Abp.AspNetCore.Mvc.UI.Theming
@inject IThemeManager ThemeManager
@inject IHtmlLocalizer<AccountResource> L
@model ManageModel
@{
Layout = ThemeManager.CurrentTheme.GetApplicationLayout();
}
@section scripts {
<abp-script-bundle name="@typeof(ManageModel).FullName" />
}
<div class="container mt-5">
@if (!Model.ReturnUrl.IsNullOrWhiteSpace())
{
<abp-row class="mb-2">
<abp-column>
<a class="btn btn-primary" href="@Model.ReturnUrl">
<i class="fa fa-chevron-left mr-2"></i>@L["ReturnToApplication"]
</a>
</abp-column>
</abp-row>
}
<div id="ProfileManagementWrapper">
<abp-card>
<abp-card-body>
<abp-tabs tab-style="PillVertical" vertical-header-size="_3">
@foreach (var group in Model.ProfileManagementPageCreationContext.Groups)
{
<abp-tab title="@group.DisplayName">
<h2>@group.DisplayName</h2>
<hr class="my-4" />
@await Component.InvokeAsync(group.ComponentType, new
{
parameter = group.Parameter
})
</abp-tab>
}
</abp-tabs>
</abp-card-body>
</abp-card>
</div>
</div>

57
src/EventHub.IdentityServer/Pages/Index.cshtml

@ -3,30 +3,35 @@
@using Volo.Abp.Users
@model IndexModel
@inject ICurrentUser CurrentUser
@if (CurrentUser.IsAuthenticated)
{
<div>
<abp-row>
<abp-column size-md="_3" class="text-center">
<i class="fa fa-user d-block" style="font-size: 10em; color: #12b900"></i>
<a abp-button="Primary" href="/Account/Logout">Logout</a>
</abp-column>
<abp-column size-md="_9">
<h2>@CurrentUser.UserName</h2>
<h5 class="text-muted">@CurrentUser.Email</h5>
<div>
<h3>Roles</h3> @CurrentUser.Roles.JoinAsString(", ")
<h3>Claims</h3> @Html.Raw(CurrentUser.GetAllClaims().Select(c => $"{c.Type}={c.Value}").JoinAsString(" <br /> "))
</div>
</abp-column>
</abp-row>
</div>
}
<div class="container mt-5">
@if (!CurrentUser.IsAuthenticated)
{
<div class="text-center">
<i class="fa fa-user d-block" style="font-size: 10em; color: #aaa"></i><br/><br />
<a abp-button="Primary" asp-page="/Account/Login">Login</a>
</div>
}
@if (CurrentUser.IsAuthenticated)
{
<div class="card">
<div class="card-body">
<abp-row>
<abp-column size-md="_3" class="text-center">
<i class="fa fa-user d-block" style="font-size: 10em; color: #12b900"></i>
<a abp-button="Primary" href="/Account/Logout">Logout</a>
</abp-column>
<abp-column size-md="_9">
<h2>@CurrentUser.UserName</h2>
<h5 class="text-muted">@CurrentUser.Email</h5>
<div>
<h3>Roles</h3> @CurrentUser.Roles.JoinAsString(", ")
<h3>Claims</h3> @Html.Raw(CurrentUser.GetAllClaims().Select(c => $"{c.Type}={c.Value}").JoinAsString(" <br /> "))
</div>
</abp-column>
</abp-row>
</div>
</div>
}
@if (!CurrentUser.IsAuthenticated)
{
<div class="text-center">
<i class="fa fa-user d-block" style="font-size: 10em; color: #aaa"></i><br /><br />
<a abp-button="Primary" asp-page="/Account/Login">Login</a>
</div>
}
</div>

4
src/EventHub.IdentityServer/Pages/Index.cshtml.cs

@ -1,11 +1,13 @@
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages;
namespace EventHub.Pages
{
public class IndexModel : AbpPageModel
{
public void OnGet()
public IActionResult OnGet()
{
return Redirect("/account/manage");
}
}
}

36
src/EventHub.Web.Theme/wwwroot/themes/eventhub/style.css

@ -1,3 +1,8 @@
:root {
--primary: #00044A;
--blue: #00044A;
}
body {
font-family: 'Poppins', sans-serif;
line-height: 1.5;
@ -84,25 +89,31 @@ p {
margin-left: 12px;
transition: color 0.3s ease;
}
.active .nav-link {
.navbar-expand-lg .navbar-nav .active .nav-link {
background-image: url(../../../../assets/underline.svg);
background-repeat: no-repeat;
background-size: inherit;
background-position: center 28px;
color: #df2751 !important;
}
.nav-link:hover {
.navbar-expand-lg .navbar-nav .nav-link:hover {
color: #df2751 !important;
}
}
.btn {
border-radius: 10px !important;
font-weight: 600;
font-size: 14px;
padding: 10px 20px;
padding: 10px 20px;
}
.btn-sm {
border-radius: 10px !important;
font-weight: 600;
font-size: 12px;
padding: 8px 16px;
}
.btn-primary {
background-color: #E8345D !important;
@ -312,7 +323,17 @@ p {
}
.event-thumbnail {
width: 100%;
height: 200px;
height: 220px;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
.event-thumbnail-left {
width: 100%;
height: 220px;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
.profile-content .form-control,
.profile-content .form-select {
@ -431,7 +452,7 @@ p {
}
footer {
background: #00044A;
padding: 3.5em 0 2em;
padding: 3em 0 3.5em 0;
}
.footer-logo {
color: white;
@ -880,8 +901,7 @@ div.checkbox.switcher label, div.radio.switcher label {
font-size: 1.05em;
}
.event .card {
max-width: 330px;
.event .card {
margin: 0 auto 34px;
}

6
src/EventHub.Web/Pages/Events/Components/EventsArea/_eventListSection.cshtml

@ -9,11 +9,13 @@
<div class="card">
@if (eventDto.CoverImageContent is null)
{
<img abp-card-image="Top" class="event-thumbnail" src="/assets/eh-event.png" alt="@eventDto.Title"/>
<div class="event-thumbnail" style="background-image: url(/assets/eh-event.png);" alt="@eventDto.Title">
</div>
}
else
{
<img abp-card-image="Top" class="event-thumbnail" src="@($"data:image/png;base64,{Convert.ToBase64String(eventDto.CoverImageContent)}")" alt="@eventDto.Title"/>
<div class="event-thumbnail" style="background-image: url( @($"data:image/png;base64,{Convert.ToBase64String(eventDto.CoverImageContent)}")" alt="@eventDto.Title">
</div>
}
<div class="card-body">
<div class="event-container">

56
src/EventHub.Web/Pages/Events/Components/RegistrationArea/Default.cshtml

@ -3,36 +3,38 @@
@inject IHtmlLocalizer<EventHubResource> L
@model EventHub.Web.Pages.Events.Components.RegistrationArea.RegistrationAreaViewComponent.RegistrationAreaViewComponentModel
<div data-event-id="@Model.EventId">
@if (Model.IsLoggedIn)
@if (Model.IsLoggedIn)
{
if (Model.IsRegistered)
{
if (Model.IsRegistered)
{
<abp-button class="mt-4" id="EventCancelRegistrationButton"
button-type="Success"
size="Large"
text="@L["YouAttendedThisEvent"].Value"
data-url="@Url.Action("Unregister", "EventRegistration", new {eventId = Model.EventId})"/>
}else if (Model.IsPastEvent)
{
<abp-button class="mt-4" id="PastEventButton"
button-type="Dark"
size="Large"
text="@L["PastEvent"].Value"
disabled="true"
abp-tooltip-top="@L["EventHub:CantRegisterOrUnregisterForAPastEvent"].Value" />
}
else
{
<abp-button class="mt-4" id="EventRegisterButton"
button-type="Primary"
size="Large"
text="@L["JoinThisEvent"].Value"
data-url="@Url.Action("Register","EventRegistration", new { eventId = Model.EventId })"/>
}
<p class="lead mt-4 mb-2"><i class="fa fa-check text-success"></i> @L["YouAttendedThisEvent"].Value</p>
<abp-button id="EventCancelRegistrationButton"
button-type="Outline_Secondary"
size="Small"
text="Cancel Participating"
data-url="@Url.Action("Unregister", "EventRegistration", new {eventId = Model.EventId})" />
}
else if (Model.IsPastEvent)
{
<abp-button class="mt-4" id="PastEventButton"
button-type="Dark"
size="Large"
text="@L["PastEvent"].Value"
disabled="true"
abp-tooltip-top="@L["EventHub:CantRegisterOrUnregisterForAPastEvent"].Value" />
}
else
{
<a abp-button="Primary" class="btn btn-primary btn-lg mt-4"
href="@Url.Action("Login", "Account", new { returnUrl = Context.Request.Path.Value })"> @L["LoginToRegister"]</a>
<abp-button class="mt-4" id="EventRegisterButton"
button-type="Primary"
size="Large"
text="@L["JoinThisEvent"].Value"
data-url="@Url.Action("Register","EventRegistration", new { eventId = Model.EventId })" />
}
}
else
{
<a abp-button="Primary" class="btn btn-primary btn-lg mt-4"
href="@Url.Action("Login", "Account", new { returnUrl = Context.Request.Path.Value })"> @L["LoginToRegister"]</a>
}
</div>

4
src/EventHub.Web/Pages/Events/Detail.cshtml

@ -52,11 +52,11 @@
<div class="detail-image">
@if (Model.Event.CoverImageContent == null)
{
<img src="/assets/eh-event.png" width="588" height="360" alt="@Model.Event.Title">
<img src="/assets/eh-event.png" class="detail-img" alt="@Model.Event.Title">
}
else
{
<img src="@($"data:image/png;base64,{Convert.ToBase64String(Model.Event.CoverImageContent)}")" alt="@Model.Event.Title">
<img class="detail-img" src="@($"data:image/png;base64,{Convert.ToBase64String(Model.Event.CoverImageContent)}")" alt="@Model.Event.Title">
}
</div>
</div>

10
src/EventHub.Web/Pages/Events/Index.cshtml

@ -39,11 +39,9 @@
</div>
<div class="container">
<div class="row mb-4">
<form method="get" id="EventListFilterForm">
<div class="col-md-auto">
<div class="row filter-select">
<div class="col-4 pr-0">
<div class="col-4">
<select id="LanguageSelect" asp-for="Language" class="form-select" aria-label="en">
<option value="" selected>Language</option>
@foreach (var language in Model.Languages)
@ -52,7 +50,7 @@
}
</select>
</div>
<div class="col-4 pr-0">
<div class="col-4">
<div class="form-label-group locationGroup">
<select id="CountrySelect" asp-for="CountryId" class="form-select" aria-label="Turkey">
<option value="" selected>Location</option>
@ -63,7 +61,7 @@
</select>
</div>
</div>
<div class="col-4 pr-0">
<div class="col-4">
<div class="form-label-group">
<input type="text" id="WhenInput" class="form-control" placeholder="When">
<label for="WhenInput">When</label>
@ -72,9 +70,7 @@
</div>
</div>
</div>
</div>
</form>
</div>
<div id="EventsAreaViewComponent" data-widget-filter="#EventListFilterForm">
@await Component.InvokeAsync(typeof(EventsAreaViewComponent), new

16
src/EventHub.Web/Pages/Events/New.cshtml

@ -10,10 +10,16 @@
@if (!Model.Organizations.Any())
{
<div class="container">
<div class="my-5 text-center">
<h3>@L["NewEventYouHaveNoOrganizationYetMessage"]</h3>
<a abp-button="Primary" href="@Url.Page("/Organizations/New")">@L["CreateAnOrganization"]</a>
<div class="container mt-5">
<div class="row">
<div class="col-lg-8 col-md-10 mx-auto ">
<div class="card" >
<div class="card-body text-center p-lg-5">
<h4 class="mb-4">@L["NewEventYouHaveNoOrganizationYetMessage"]</h4>
<a abp-button="Primary" href="@Url.Page("/Organizations/New")">@L["CreateAnOrganization"]</a>
</div>
</div>
</div>
</div>
</div>
}
@ -71,7 +77,7 @@ else
</div>
<div class="col-6">
<div>
<p class="mb-3">For horizontal format 600x300 sized upload images.</p>
<p class="mb-3">For horizontal format 600x400 sized upload images.</p>
<input type="file" id="Event_CoverImageFile" asp-for="Event.CoverImageFile" class="form-control border-0" hidden>
<label id="upload-label" for="Event_CoverImageFile" class="btn btn-primary btn-lg text-white">Choose file</label>
<span asp-validation-for="Event.CoverImageFile" class="text-danger"></span>

64
src/EventHub.Web/Pages/Index.cshtml

@ -31,18 +31,6 @@
<div class="container-fluid p-0">
<div class="main-slider">
<div class="owl-carousel owl-theme">
<div class="item">
<div class="slider-container d-flex align-items-center text-center text-light" style="background-image: url('/assets/slide.jpg')">
<div class="container">
<div class="row">
<div class="col-lg-9 col-md-11 mx-auto">
<h1>Let's Share Together</h1>
<p class="lead">Try something new, or do more of what you love.</p>
</div>
</div>
</div>
</div>
</div>
<div class="item">
<div class="slider-container d-flex align-items-center text-center text-dark" style="background-image: url('/assets/eh-banner-4.png')">
<div class="container">
@ -79,6 +67,18 @@
</div>
</div>
</div>
<div class="item">
<div class="slider-container d-flex align-items-center text-center text-light" style="background-image: url('/assets/slide.jpg')">
<div class="container">
<div class="row">
<div class="col-lg-9 col-md-11 mx-auto">
<h1>Let's Share Together</h1>
<p class="lead">Try something new, or do more of what you love.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@ -125,9 +125,9 @@
</div>
<div class="container">
<div class="row mb-4">
<div class="row">
<div class="col-md">
<h2>Upcoming Events</h2>
<h2 class=" mb-4">Upcoming Events</h2>
</div>
</div>
@ -138,8 +138,7 @@
})
</div>
<div class="container-fluid bg-white my-5 py-5">
<div class="container-fluid bg-white mt-5 py-5">
<div class="container py-3">
<div class="card-slider">
@ -149,23 +148,25 @@
{
<div class="item">
<div class="card mb-3">
<div class="row no-gutters">
<div class="col-md-5">
<div class="row no-glutters">
<div class="col-5 pr-0">
@if (Model.OnlineEvents[i].CoverImageContent is null)
{
<img src="/assets/eh-event.png" width="187" height="218" class="card-img-left">
<div class="event-thumbnail-left" style="background-image: url(/assets/eh-event.png);">
</div>
}
else
{
<img class="card-img-left" src="@($"data:image/png;base64,{Convert.ToBase64String(Model.OnlineEvents[i].CoverImageContent)}")" alt="@Model.OnlineEvents[i].Title" />
<div class="event-thumbnail-left" style="background-image: url( @($"data:image/png;base64,{Convert.ToBase64String(Model.OnlineEvents[i].CoverImageContent)}") );" alt="@Model.OnlineEvents[i].Title">
</div>
}
</div>
<div class="col-md-7">
<div class="col-7">
<div class="card-body">
<div class="event-container online-event">
<div class="event-info">
<h5>@Model.OnlineEvents[i].Title</h5>
<small>@Model.OnlineEvents[i].StartTime.ToString("MMMM dd, yyyy dddd") | @Model.OnlineEvents[i].StartTime.ToString("hh tt", CultureInfo.InvariantCulture) - @Model.OnlineEvents[i].EndTime.ToString("hh tt", CultureInfo.InvariantCulture) | Online</small>
<small>@Model.OnlineEvents[i].StartTime.ToString("MMMM dd, yyyy dddd") <br /> @Model.OnlineEvents[i].StartTime.ToString("hh tt", CultureInfo.InvariantCulture) - @Model.OnlineEvents[i].EndTime.ToString("hh tt", CultureInfo.InvariantCulture) | Online</small>
<p>@Model.OnlineEvents[i].Description</p>
</div>
<a href="@Url.Page("/Events/Detail", new {url = @Model.OnlineEvents[i].Url})" class="btn btn-link p-0">Learn More <img src="/assets/more-btn.svg"></a>
@ -177,30 +178,31 @@
@if (i + 1 <= Model.OnlineEvents.Count - 1)
{
<div class="card mb-3">
<div class="row no-gutters">
<div class="col-md-5">
<div class="row no-glutters">
<div class="col-5 pr-0">
@if (Model.OnlineEvents[i + 1].CoverImageContent is null)
{
<img src="/assets/eh-event.png" width="187" height="218" class="card-img-left">
<div class="event-thumbnail-left" style="background-image: url(/assets/eh-event.png);">
</div>
}
else
{
<img class="card-img-left" src="@($"data:image/png;base64,{Convert.ToBase64String(Model.OnlineEvents[i + 1].CoverImageContent)}")" alt="@Model.OnlineEvents[i + 1].Title" />
<div class="event-thumbnail-left" style="background-image: url( @($"data:image/png;base64,{Convert.ToBase64String(Model.OnlineEvents[i + 1].CoverImageContent)}") );" alt="@Model.OnlineEvents[i + 1].Title">
</div>
}
</div>
<div class="col-md-7">
<div class="col-7">
<div class="card-body">
<div class="event-container online-event">
<div class="event-info">
<h5>@Model.OnlineEvents[i + 1].Title</h5>
<small>@Model.OnlineEvents[i + 1].StartTime.ToString("MMMM dd, yyyy dddd") | @Model.OnlineEvents[i + 1].StartTime.ToString("hh tt", CultureInfo.InvariantCulture) - @Model.OnlineEvents[i + 1].EndTime.ToString("hh tt", CultureInfo.InvariantCulture) | Online</small>
<small>@Model.OnlineEvents[i + 1].StartTime.ToString("MMMM dd, yyyy dddd") <br /> @Model.OnlineEvents[i + 1].StartTime.ToString("hh tt", CultureInfo.InvariantCulture) - @Model.OnlineEvents[i + 1].EndTime.ToString("hh tt", CultureInfo.InvariantCulture) | Online</small>
<p>@Model.OnlineEvents[i + 1].Description</p>
</div>
<a href="@Url.Page("/Events/Detail", new {url = @Model.OnlineEvents[i + 1].Url})" class="btn btn-link p-0">Learn More <img src="/assets/more-btn.svg"></a>
</div>
</div>
</div>
</div>
</div>
</div>
}
@ -211,7 +213,7 @@
</div>
</div>
<div class="container text-center py-1">
<div class="container text-center py-5">
<h1 class="my-5 pb-5">How EventHub Works?</h1>
<div class="row my-4">
<div class="col-md-5 ml-auto">

2
src/EventHub.Web/Pages/Index.js

@ -20,7 +20,7 @@
0: {
items: 1,
},
600: {
991: {
items: 2,
},
},

10
src/EventHub.Web/Pages/Organizations/Components/OrganizationsArea/_organizationListSection.cshtml

@ -5,12 +5,14 @@
<div class="col-lg-4 col-md-6 organization">
<div class="card">
@if (organization.ProfilePictureContent == null)
{
<img src="/assets/eh-organization.png" style="max-height: 310px; min-height: 170px;" class="card-img-top" alt="@organization.Name">
{
<div class="event-thumbnail" style="background-image: url(/assets/eh-organization.png);" alt="@organization.Name">
</div>
}
else
{
<img src="@($"data:image/png;base64,{Convert.ToBase64String(organization.ProfilePictureContent)}")" style="max-height: 310px; min-height: 170px;" class="card-img-top" alt="@organization.Name">
{
<div class="event-thumbnail" style="background-image: url(@($"data:image/png;base64,{Convert.ToBase64String(organization.ProfilePictureContent)}"));" alt="@organization.Name">
</div>
}
<div class="card-body">
<div class="event-container">

2
src/EventHub.Web/Pages/Organizations/New.cshtml

@ -31,7 +31,7 @@
<div class="col-6">
<div>
<p class="mb-3">Photo size should be <span class="text-primary">max @(OrganizationConsts.MaxProfilePictureFileSize / (1024 * 1024)) MB.</span></p>
<p class="mb-3">Photo size should be <span class="text-primary">1050x596</span> and <span class="text-primary">max @(OrganizationConsts.MaxProfilePictureFileSize / (1024 * 1024)) MB.</span></p>
<input type="file" id="Organization_ProfilePictureFile" asp-for="Organization.ProfilePictureFile" class="form-control border-0" hidden>
<label id="upload-label" for="Organization_ProfilePictureFile" class="btn btn-primary btn-lg text-white">Upload</label>
<span asp-validation-for="Organization.ProfilePictureFile" class="text-danger"></span>

4
src/EventHub.Web/Pages/Organizations/Profile.cshtml

@ -20,11 +20,11 @@
<div class="detail-image">
@if (Model.Organization.ProfilePictureContent == null)
{
<img src="/assets/eh-organization.png" width="996" height="300" alt="@Model.Organization.Name">
<img class="detail-img" src="/assets/eh-organization-big.png" alt="@Model.Organization.Name">
}
else
{
<img src="@($"data:image/png;base64,{Convert.ToBase64String(Model.Organization.ProfilePictureContent)}")" alt="@Model.Organization.Name">
<img class="detail-img" src="@($"data:image/png;base64,{Convert.ToBase64String(Model.Organization.ProfilePictureContent)}")" alt="@Model.Organization.Name">
}
</div>
</div>

11
src/EventHub.Web/Pages/Users.cshtml → src/EventHub.Web/Pages/User.cshtml

@ -9,10 +9,15 @@
@inject ICurrentUser CurrentUser
@inject IClock Clock
@inject IHtmlLocalizer<EventHubResource> L
@model EventHub.Web.Pages.Members.ProfileModel
@model EventHub.Web.Pages.UserModel
@section styles {
<abp-style src="/Pages/User.css" />
}
<div class="container pt-4">
<div class="row py-4">
<div class="col-md-2">
<div class="col-md-3">
<div class="">
<ul class="card list-group">
<div class="card-body">
@ -42,7 +47,7 @@
</ul>
</div>
</div>
<div class="col-md-10">
<div class="col-md-9">
<abp-row>
<abp-column size="_8">
<ul class="nav nav-tabs profile-nav" id="profileTab">

6
src/EventHub.Web/Pages/Users.cshtml.cs → src/EventHub.Web/Pages/User.cshtml.cs

@ -7,16 +7,16 @@ using EventHub.Organizations;
using EventHub.Users;
using Microsoft.AspNetCore.Mvc;
namespace EventHub.Web.Pages.Members
namespace EventHub.Web.Pages
{
public class ProfileModel : EventHubPageModel
public class UserModel : EventHubPageModel
{
private readonly IUserAppService _userAppService;
private readonly IOrganizationAppService _organizationAppService;
public List<OrganizationInListDto> Organizations { get; set; }
public ProfileModel(
public UserModel(
IUserAppService userAppService,
IOrganizationAppService organizationAppService)
{

4
src/EventHub.Web/Pages/User.css

@ -0,0 +1,4 @@
.col-lg-4 {
flex: 0 0 50%;
max-width: 50.0%;
}

BIN
src/EventHub.Web/wwwroot/assets/eh-organization-big.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 KiB

Loading…
Cancel
Save