Browse Source

Merge pull request #106 from abpframework/new-newsletters

Update Email Templates
pull/112/head
Gizem Mutu Kurt 4 years ago
committed by GitHub
parent
commit
0c0cd5fb45
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/EventHub.Admin.HttpApi.Host/EventHubAdminHttpApiHostModule.cs
  2. 2
      src/EventHub.Admin.Web/Pages/EventManagement.razor
  3. 2
      src/EventHub.Admin.Web/Pages/OrganizationManagement.razor
  4. 15
      src/EventHub.Application/Events/Registrations/EventRegistrationNotifier.cs
  5. 17
      src/EventHub.BackgroundServices/Events/EventReminderNotifier.cs
  6. 2
      src/EventHub.Domain.Shared/EventHubDomainSharedModule.cs
  7. 2
      src/EventHub.Domain.Shared/Options/EventHubUrlOptions.cs
  8. 7
      src/EventHub.Domain/Emailing/EventHubEmailTemplateRenderingEngine.cs
  9. 83
      src/EventHub.Domain/Emailing/Templates/EventRegistration.tpl
  10. 57
      src/EventHub.Domain/Emailing/Templates/EventReminder.tpl
  11. 184
      src/EventHub.Domain/Emailing/Templates/Layout.tpl
  12. 2
      src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs
  13. 1
      src/EventHub.IdentityServer/EventHubIdentityServerModule.cs
  14. 1
      src/EventHub.Web.Theme/Themes/EventHub/Components/Footer/Default.cshtml
  15. 1
      src/EventHub.Web.Theme/Themes/EventHub/Components/MainNavbar/Default.cshtml
  16. 1
      src/EventHub.Web.Theme/Themes/EventHub/Layouts/Application.cshtml
  17. 1
      src/EventHub.Web/EventHubWebModule.cs
  18. 1
      src/EventHub.Web/Menus/EventHubMenuContributor.cs
  19. 1
      src/EventHub.Web/Pages/Events/Components/CreateOrEditEventArea/_eventSection.cshtml
  20. 1
      src/EventHub.Web/Pages/Events/Components/CreateOrEditEventArea/_previewSection.cshtml
  21. 1
      src/EventHub.Web/Pages/Events/Components/EventsArea/_eventListSection.cshtml
  22. 1
      src/EventHub.Web/Pages/Events/Detail.cshtml
  23. 1
      src/EventHub.Web/Pages/Index.cshtml
  24. 1
      src/EventHub.Web/Pages/Organizations/Components/OrganizationsArea/_organizationListSection.cshtml
  25. 1
      src/EventHub.Web/Pages/Organizations/Edit.cshtml
  26. 1
      src/EventHub.Web/Pages/Organizations/Profile.cshtml
  27. 1
      src/EventHub.Web/Pages/Payment/PostCheckout.cshtml
  28. BIN
      src/EventHub.Web/wwwroot/assets/email/facebook.png
  29. BIN
      src/EventHub.Web/wwwroot/assets/email/instagram.png
  30. BIN
      src/EventHub.Web/wwwroot/assets/email/twitter.png

2
src/EventHub.Admin.HttpApi.Host/EventHubAdminHttpApiHostModule.cs

@ -6,7 +6,7 @@ using EventHub.Admin.Events;
using EventHub.Admin.Organizations;
using EventHub.Admin.Utils;
using EventHub.EntityFrameworkCore;
using EventHub.Web;
using EventHub.Options;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Cors;

2
src/EventHub.Admin.Web/Pages/EventManagement.razor

@ -2,7 +2,7 @@
@using EventHub.Admin.Events
@using EventHub.Admin.Permissions
@using EventHub.Events
@using EventHub.Web
@using EventHub.Options
@using Microsoft.AspNetCore.Authorization
@using Microsoft.Extensions.Options
@inherits EventHubComponentBase

2
src/EventHub.Admin.Web/Pages/OrganizationManagement.razor

@ -1,8 +1,8 @@
@page "/organizations"
@using EventHub.Admin.Organizations
@using EventHub.Admin.Permissions
@using EventHub.Options
@using EventHub.Organizations
@using EventHub.Web
@using Microsoft.AspNetCore.Authorization
@using Microsoft.Extensions.Options
@using Volo.Abp.AspNetCore.Components.Notifications

15
src/EventHub.Application/Events/Registrations/EventRegistrationNotifier.cs

@ -1,5 +1,9 @@
using System;
using System.Threading.Tasks;
using EventHub.Emailing;
using EventHub.Options;
using EventHub.Users;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Emailing;
using Volo.Abp.Identity;
@ -11,13 +15,16 @@ namespace EventHub.Events.Registrations
{
private readonly IEmailSender _emailSender;
private readonly ITemplateRenderer _templateRenderer;
private readonly EventHubUrlOptions _urlOptions;
public EventRegistrationNotifier(
IEmailSender emailSender,
ITemplateRenderer templateRenderer)
ITemplateRenderer templateRenderer,
IOptions<EventHubUrlOptions> urlOptions)
{
_emailSender = emailSender;
_templateRenderer = templateRenderer;
_urlOptions = urlOptions.Value;
}
public async Task NotifyAsync(
@ -32,9 +39,13 @@ namespace EventHub.Events.Registrations
var model = new
{
Title = @event.Title,
Description = @event.Description.TruncateWithPostfix(250, "..."),
Url = @event.Url,
FullNameOrUserName = user.GetFullNameOrUsername(),
ThumbnailUrl = $"{_urlOptions.Api.EnsureEndsWith('/')}api/eventhub/event/cover-image/{@event.Id}",
StartTime = @event.StartTime,
EndTime = @event.EndTime,
Url = @event.Url
Location = @event.IsOnline ? "Online" : $"{@event.City}, {@event.CountryName}"
};
await _emailSender.QueueAsync(

17
src/EventHub.BackgroundServices/Events/EventReminderNotifier.cs

@ -3,7 +3,11 @@ using System.Linq;
using System.Threading.Tasks;
using EventHub.Emailing;
using EventHub.Events.Registrations;
using EventHub.Localization;
using EventHub.Options;
using EventHub.Users;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Emailing;
@ -20,19 +24,25 @@ namespace EventHub.Events
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly IRepository<EventRegistration, Guid> _eventRegistrationRepository;
private readonly IAsyncQueryableExecuter _asyncExecuter;
private readonly EventHubUrlOptions _eventHubUrlOptions;
private readonly IStringLocalizer<EventHubResource> _localizer;
public EventReminderNotifier(
IEmailSender emailSender,
ITemplateRenderer templateRenderer,
IRepository<IdentityUser, Guid> userRepository,
IRepository<EventRegistration, Guid> eventRegistrationRepository,
IAsyncQueryableExecuter asyncExecuter)
IAsyncQueryableExecuter asyncExecuter,
IOptions<EventHubUrlOptions> eventHubUrlOptions,
IStringLocalizer<EventHubResource> localizer)
{
_emailSender = emailSender;
_templateRenderer = templateRenderer;
_userRepository = userRepository;
_eventRegistrationRepository = eventRegistrationRepository;
_asyncExecuter = asyncExecuter;
_localizer = localizer;
_eventHubUrlOptions = eventHubUrlOptions.Value;
}
public async Task NotifyAsync(Event @event)
@ -60,7 +70,10 @@ namespace EventHub.Events
Title = @event.Title,
StartTime = @event.StartTime,
EndTime = @event.EndTime,
Url = @event.Url
Url = @event.Url,
Address = @event.IsOnline ? _localizer["Online"] : $"{@event.City}, {@event.CountryName}",
Description = @event.Description.TruncateWithPostfix(250, "..."),
ImageUrl = _eventHubUrlOptions.Api.EnsureEndsWith('/') + $"api/eventhub/event/cover-image/{@event.Id}"
};
await _emailSender.QueueAsync(

2
src/EventHub.Domain.Shared/EventHubDomainSharedModule.cs

@ -1,5 +1,5 @@
using EventHub.Localization;
using EventHub.Web;
using EventHub.Options;
using Microsoft.Extensions.DependencyInjection;
using Payment;
using Volo.Abp.AuditLogging;

2
src/EventHub.Domain.Shared/Web/EventHubUrlOptions.cs → src/EventHub.Domain.Shared/Options/EventHubUrlOptions.cs

@ -1,6 +1,6 @@
using Microsoft.Extensions.Configuration;
namespace EventHub.Web
namespace EventHub.Options
{
public class EventHubUrlOptions
{

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

@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using EventHub.Web;
using EventHub.Options;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
@ -13,10 +13,7 @@ using Volo.Abp.TextTemplating.Scriban;
namespace EventHub.Emailing
{
[Dependency(ServiceLifetime.Transient, ReplaceServices = true)]
[ExposeServices(
typeof(ScribanTemplateRenderingEngine),
typeof(EventHubEmailTemplateRenderingEngine)
)]
[ExposeServices(typeof(ScribanTemplateRenderingEngine), typeof(EventHubEmailTemplateRenderingEngine))]
public class EventHubEmailTemplateRenderingEngine : ScribanTemplateRenderingEngine
{
private readonly EventHubUrlOptions _options;

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

@ -1,43 +1,42 @@
<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;">
<tr width="680">
<td width="680" style="width: 680px;">
<table
style="padding-bottom: 50px; padding-top: 50px; width: 680px; font-family:Arial, Helvetica, sans-serif; font-size:22px; color: #00044A; border-top: 2px solid rgba(41, 45, 51, 0.08); border-bottom: 2px solid rgba(41, 45, 51, 0.08);">
<tr>
<td>
<p style="line-height: 37px; color: #6B7E92;">Great news, {{model.full_name_or_user_name}}! You are attending to the "{{model.title}}" event.</p>
</td>
</tr>
<tr>
<td>
<table>
<tr style="vertical-align: top;">
<td style="width:232px;" width="232">
<img src="{{model.thumbnail_url}}" style="width: 232px; border-radius: 10px;">
</td>
<td style="padding-left: 15px;">
<h4 style="margin-top:0; margin-bottom: 10px;">{{model.title}}</h4>
<span style="color: #6F32E2; font-size: 16px;">{{model.start_time}} - {{model.end_time}} | {{model.location}}</span>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<p style="line-height: 37px; color: #6B7E92;">
{{model.description}}
</p>
</td>
</tr>
<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>
<tr>
<td style="text-align:center; padding-top:30px">
<a href="{{app_url}}/events/{{model.url}}" style="border-radius: 10px; padding:12px 30px; background-color: #E8345D; text-decoration: none; color: #fff;">
Details
</a>
</td>
</tr>
</table>
</td>
</tr>

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

@ -1,32 +1,25 @@
<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>
<tr width="680">
<td width="680" style="width: 680px;">
<table style="padding-bottom: 50px; padding-top: 50px; width: 680px; font-family:Arial, Helvetica, sans-serif; font-size:16px; color: #00044A; border-top: 2px solid rgba(41, 45, 51, 0.08); border-bottom: 2px solid rgba(41, 45, 51, 0.08);">
<tr>
<td>
<h1 style="margin-top: 0; font-size: 30px;">
Hey {{model.user_name}},
<br />
Just a friendly reminder to you that the event is soon! Looking forward to seeing you in the event!
</h1>
<img src="{{model.image_url}}" />
<br /><br /><br />
<h1 style="margin-top: 0; font-size: 30px;"> {{model.title}} </h1>
<span style="color: #6F32E2;">{{model.start_time}} - {{model.end_time}} | {{model.address}}</span>
<p style="font-size: 22px; line-height: 37px; color: #6B7E92;"> {{model.description}} </p>
</td>
</tr>
<tr>
<td>
<a href="{{app_url}}/events/{{model.url}}" style="display: inline-block; border-radius: 10px; padding:12px 20px; background-color: #E8345D; text-decoration: none; color: #fff;" target="_blank">Details</a>
</td>
</tr>
</table>
</td>
</tr>

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

@ -2,139 +2,63 @@
<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;
}
<meta name="viewport" content="width=device-width" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>EventHub</title>
</head>
table[class=mail-body] td a.btn {
display: block !important;
text-align: center;
}
<body style="margin:0; padding:0;" bgcolor="#fff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table border="0" width="680" cellpadding="0" cellspacing="0" class="container" align="center"
style="width:880px; max-width:680px; padding-top: 100px; padding-bottom: 100px;">
<tr width="680">
<td align="center" width="680" style="padding-bottom: 50px;">
<a href="{{app_url}}">
<img src="data:image/png;base64,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" height="36">
</a>
</td>
</tr>
table[class=mail-body] td h2 {
margin: 10px 0 !important;
}
{{ content }}
<tr>
<td width="240" align="center" style="padding-top: 40px; width: 240px;">
<table width="240" style="width: 240px;">
<tr>
<td width="240" align="center"
style="width: 240px; display: flex; justify-content: space-between;">
<a href="https://twitter.com/openeventhub" style="display: inline-block;">
<img src="{{app_url}}/assets/email/twitter.png"
style="height: 52px;">
</a>
<a href="https://www.instagram.com/openeventhub/" style="display: inline-block;">
<img src="{{app_url}}/assets/email/instagram.png" style="height: 52px;">
</a>
<a href="https://www.facebook.com/openeventhub" style="display: inline-block;">
<img src="{{app_url}}/assets/email/facebook.png" style="height: 52px;">
</a>
</td>
</tr>
</table>
</td>
</tr>
table[class=mail-body] td .cont {
padding: 30px !important;
}
}
</style>
</head>
<tr>
<td width="680" style="width: 680px;" align="center">
<table width="680" align="center" style="width: 680px; font-family:Arial, Helvetica, sans-serif; font-size:14px;">
<tr>
<td width="680" align="center" style="width: 680px; padding-top:40px; padding-bottom:40px;">
<a href="https://www.openeventhub.com/" target="_blank" style="display: block; color:#E8345D; font-size: 16px; font-weight: 600; text-decoration: none; padding-bottom: 20px;">www.openeventhub.com</a>
<span style="font-size:14px; color: rgba(41, 45, 51, 0.6);">Copyright © 2021 - All rights reserved.</span>
<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,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"
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>
<span style="display: block; padding-top: 25px;">
<a href="#" style="display: inline-block; background-color: rgba(41, 45, 51, 0.15); border-radius: 5px; text-decoration: none; color: rgba(41, 45, 51, 0.3); font-weight: 600; padding: 5px 10px; margin-right: 10px;">View in browser</a>
<a href="#" style="display: inline-block; background-color: rgba(41, 45, 51, 0.15); border-radius: 5px; text-decoration: none; color: rgba(41, 45, 51, 0.3); font-weight: 600; padding: 5px 10px ;">Unsubscribe</a>
</span>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

2
src/EventHub.HttpApi.Host/EventHubHttpApiHostModule.cs

@ -5,10 +5,10 @@ using System.IO;
using System.Linq;
using EventHub.EntityFrameworkCore;
using EventHub.Events;
using EventHub.Options;
using EventHub.Organizations;
using EventHub.Organizations.Plans;
using EventHub.Utils;
using EventHub.Web;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Cors;

1
src/EventHub.IdentityServer/EventHubIdentityServerModule.cs

@ -2,6 +2,7 @@ using System.IO;
using System.Security.Cryptography.X509Certificates;
using EventHub.EntityFrameworkCore;
using EventHub.Localization;
using EventHub.Options;
using EventHub.Utils;
using EventHub.Web;
using EventHub.Web.Theme;

1
src/EventHub.Web.Theme/Themes/EventHub/Components/Footer/Default.cshtml

@ -3,6 +3,7 @@
@using Volo.Abp.Users
@using EventHub.Web
@using System.Net
@using EventHub.Options
@inject ICurrentUser CurrentUser
@inject IOptions<EventHubUrlOptions> UrlOptions

1
src/EventHub.Web.Theme/Themes/EventHub/Components/MainNavbar/Default.cshtml

@ -6,6 +6,7 @@
@using EventHub.Localization
@using EventHub.Web
@using System.Net
@using EventHub.Options
@inject ICurrentUser CurrentUser
@inject ILanguageProvider LanguageProvider
@inject IStringLocalizer<EventHubResource> L

1
src/EventHub.Web.Theme/Themes/EventHub/Layouts/Application.cshtml

@ -12,6 +12,7 @@
@using EventHub.Web.Theme.Themes.EventHub.Components.Footer
@using EventHub.Web.Theme.Themes.EventHub.Components.MainNavbar
@using EventHub.Web.Theme.Themes.EventHub.Components.PageAlerts
@using EventHub.Options
@inject IBrandingProvider BrandingProvider
@inject IPageLayout PageLayout
@inject IOptions<EventHubUrlOptions> UrlOptions

1
src/EventHub.Web/EventHubWebModule.cs

@ -1,6 +1,7 @@
using System;
using System.IO;
using EventHub.Localization;
using EventHub.Options;
using EventHub.Web.Menus;
using EventHub.Web.Theme;
using EventHub.Web.Theme.Bundling;

1
src/EventHub.Web/Menus/EventHubMenuContributor.cs

@ -1,6 +1,7 @@
using System;
using System.Threading.Tasks;
using EventHub.Localization;
using EventHub.Options;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Account.Localization;

1
src/EventHub.Web/Pages/Events/Components/CreateOrEditEventArea/_eventSection.cshtml

@ -1,3 +1,4 @@
@using EventHub.Options
@using EventHub.Web
@using EventHub.Web.Pages.Events.Components.CreateOrEditEventArea
@using Microsoft.AspNetCore.Http

1
src/EventHub.Web/Pages/Events/Components/CreateOrEditEventArea/_previewSection.cshtml

@ -1,3 +1,4 @@
@using EventHub.Options
@using EventHub.Web
@using EventHub.Web.Pages.Events
@using EventHub.Web.Pages.Events.Components.CreateOrEditEventArea

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

@ -1,3 +1,4 @@
@using EventHub.Options
@using EventHub.Web
@using EventHub.Web.Pages.Events
@using Microsoft.Extensions.Options

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

@ -6,6 +6,7 @@
@using EventHub.Web
@using EventHub.Web.Pages.Events
@using EventHub.Events
@using EventHub.Options
@using EventHub.Web.Pages.Events.Components.AttendeesArea
@using EventHub.Web.Pages.Events.Components.EventsArea
@using EventHub.Web.Pages.Events.Components.LocationArea

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

@ -1,6 +1,7 @@
@page
@using System.Globalization
@using EventHub.Localization
@using EventHub.Options
@using EventHub.Web
@using EventHub.Web.Pages.Events.Components.EventsArea
@using Microsoft.AspNetCore.Mvc.Localization

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

@ -1,3 +1,4 @@
@using EventHub.Options
@using EventHub.Organizations
@using EventHub.Web
@using Microsoft.Extensions.Options

1
src/EventHub.Web/Pages/Organizations/Edit.cshtml

@ -1,6 +1,7 @@
@page "/organization/edit/{name}"
@inject IHtmlLocalizer<EventHubResource> L
@using EventHub.Localization
@using EventHub.Options
@using EventHub.Organizations
@using EventHub.Web
@using Microsoft.AspNetCore.Mvc.Localization

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

@ -1,6 +1,7 @@
@page "/organizations/{name}"
@inject IHtmlLocalizer<EventHubResource> L
@using EventHub.Localization
@using EventHub.Options
@using EventHub.Organizations
@using EventHub.Web
@using EventHub.Web.Pages.Events.Components.EventsArea

1
src/EventHub.Web/Pages/Payment/PostCheckout.cshtml

@ -1,5 +1,6 @@
@page
@inherits Payment.Web.Pages.PaymentPageBase
@using EventHub.Options
@using EventHub.Web
@using Microsoft.Extensions.Options
@using Payment.PaymentRequests

BIN
src/EventHub.Web/wwwroot/assets/email/facebook.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/EventHub.Web/wwwroot/assets/email/instagram.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
src/EventHub.Web/wwwroot/assets/email/twitter.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Loading…
Cancel
Save