Browse Source

fix minor problems and enhance UX

pull/68/head
Berkan Sasmaz 5 years ago
parent
commit
566a4797ea
  1. 2
      src/EventHub.Application.Contracts/Organizations/IOrganizationAppService.cs
  2. 12
      src/EventHub.Application.Contracts/Organizations/OrganizationDto.cs
  3. 3
      src/EventHub.Application/EventHubApplicationAutoMapperProfile.cs
  4. 4
      src/EventHub.Application/Organizations/OrganizationAppService.cs
  5. 10
      src/EventHub.Domain/Events/EventUrlHelper.cs
  6. 2
      src/EventHub.Domain/Organizations/OrganizationManager.cs
  7. 4
      src/EventHub.HttpApi.Host/Controllers/Organizations/OrganizationController.cs
  8. 36
      src/EventHub.Web.Theme/Themes/EventHub/Components/Footer/Default.cshtml
  9. 18
      src/EventHub.Web.Theme/Themes/EventHub/Components/MainNavbar/Default.cshtml
  10. 4
      src/EventHub.Web.Theme/Themes/EventHub/Layouts/Account.cshtml
  11. 4
      src/EventHub.Web.Theme/Themes/EventHub/Layouts/Application.cshtml
  12. 4
      src/EventHub.Web.Theme/Themes/EventHub/Layouts/Empty.cshtml
  13. 548
      src/EventHub.Web.Theme/wwwroot/themes/eventhub/style.css
  14. 5
      src/EventHub.Web/Pages/Events/Edit.cshtml
  15. 4
      src/EventHub.Web/Pages/Events/Edit.js
  16. 7
      src/EventHub.Web/Pages/Events/New.cshtml
  17. 4
      src/EventHub.Web/Pages/Events/New.js
  18. 200
      src/EventHub.Web/Pages/Index.cshtml
  19. 52
      src/EventHub.Web/Pages/Index.js
  20. 5
      src/EventHub.Web/Pages/Organizations/Edit.cshtml
  21. 2
      src/EventHub.Web/Pages/Organizations/New.cshtml
  22. 4
      src/EventHub.Web/Pages/Organizations/New.cshtml.cs
  23. 2
      src/EventHub.Web/Pages/Organizations/Profile.cshtml
  24. 11
      src/EventHub.Web/Pages/User.cshtml

2
src/EventHub.Application.Contracts/Organizations/IOrganizationAppService.cs

@ -8,7 +8,7 @@ namespace EventHub.Organizations
{
public interface IOrganizationAppService : IApplicationService
{
Task CreateAsync(CreateOrganizationDto input);
Task<OrganizationDto> CreateAsync(CreateOrganizationDto input);
Task<PagedResultDto<OrganizationInListDto>> GetListAsync(OrganizationListFilterDto input);

12
src/EventHub.Application.Contracts/Organizations/OrganizationDto.cs

@ -0,0 +1,12 @@
using System;
using Volo.Abp.Application.Dtos;
namespace EventHub.Organizations
{
public class OrganizationDto : EntityDto<Guid>
{
public string Name { get; set; }
public string DisplayName { get; set; }
}
}

3
src/EventHub.Application/EventHubApplicationAutoMapperProfile.cs

@ -17,7 +17,8 @@ namespace EventHub
{
CreateMap<Organization, OrganizationInListDto>();
CreateMap<Organization, OrganizationProfileDto>();
CreateMap<Organization, OrganizationDto>();
CreateMap<IdentityUser, OrganizationMemberDto>();
CreateMap<Event, EventDto>();

4
src/EventHub.Application/Organizations/OrganizationAppService.cs

@ -38,7 +38,7 @@ namespace EventHub.Organizations
}
[Authorize]
public async Task CreateAsync(CreateOrganizationDto input)
public async Task<OrganizationDto> CreateAsync(CreateOrganizationDto input)
{
var organization = await _organizationManager.CreateAsync(
CurrentUser.GetId(),
@ -60,6 +60,8 @@ namespace EventHub.Organizations
{
await SaveProfilePictureAsync(organization.Id, input.ProfilePictureStreamContent);
}
return ObjectMapper.Map<Organization, OrganizationDto>(organization);
}
public async Task<PagedResultDto<OrganizationInListDto>> GetListAsync(OrganizationListFilterDto input)

10
src/EventHub.Domain/Events/EventUrlHelper.cs

@ -5,21 +5,27 @@ namespace EventHub.Events
{
internal static class EventUrlHelper
{
private static string AllowedUrlChars = "abcdefghijklmnopqrstuvwxyz0123456789";
private static string AllowedUrlChars = "abcdefghijklmnopqrstuvwxyz0123456789-";
public static string ConvertTitleToUrlPart(string title)
{
var normalizedTitle = title
.Trim()
.Replace(' ', '-')
.ToKebabCase()
.ToLowerInvariant();
var urlPartBuilder = new StringBuilder();
char previousChar = ' ';
foreach (var c in normalizedTitle)
{
if (AllowedUrlChars.Contains(c))
{
if (previousChar == '-' && c == '-')
{
continue;
}
urlPartBuilder.Append(c);
}
@ -27,6 +33,8 @@ namespace EventHub.Events
{
break;
}
previousChar = c;
}
return urlPartBuilder.ToString();

2
src/EventHub.Domain/Organizations/OrganizationManager.cs

@ -21,6 +21,8 @@ namespace EventHub.Organizations
string displayName,
string description)
{
name = name.Trim().Replace(' ', '-').ToKebabCase().ToLowerInvariant();;
if (await _organizationRepository.AnyAsync(o => o.Name == name))
{
throw new BusinessException(EventHubErrorCodes.OrganizationNameAlreadyExists)

4
src/EventHub.HttpApi.Host/Controllers/Organizations/OrganizationController.cs

@ -28,9 +28,9 @@ namespace EventHub.Controllers.Organizations
}
[HttpPost]
public async Task CreateAsync([FromForm] CreateOrganizationDto input)
public async Task<OrganizationDto> CreateAsync([FromForm] CreateOrganizationDto input)
{
await _organizationAppService.CreateAsync(input);
return await _organizationAppService.CreateAsync(input);
}
[HttpGet]

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

@ -13,7 +13,7 @@
EventHub
</a>
</div>
<div class="col-md">
@if (!CurrentUser.IsAuthenticated)
{
@ -45,23 +45,23 @@
</div>
</div>
</div>
</footer>
<footer class="footer-bottom">
<div class="container">
<div class="row">
<div class="col-md-auto">
<span class="copyright">© 2021 EventHub</span>
</div>
<div class="col-md text-center text-md-right">
<a href="@UrlOptions.Value.Www/terms-service">
Terms of Service
</a>
<span>
<img src="/assets/seperator2.svg" class="mx-3">
</span>
<a href="@UrlOptions.Value.Www/privacy-policy">
Privacy Policy
</a>
<div class="footer-bottom">
<div class="container">
<div class="row">
<div class="col-md-auto">
<span class="copyright">© 2021 EventHub</span>
</div>
<div class="col-md text-center text-md-right">
<a href="@UrlOptions.Value.Www/terms-service">
Terms of Service
</a>
<span>
<img src="/assets/seperator2.svg" class="mx-3">
</span>
<a href="@UrlOptions.Value.Www/privacy-policy">
Privacy Policy
</a>
</div>
</div>
</div>
</div>

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

@ -20,7 +20,7 @@
<nav class="navbar navbar-expand-lg navbar-light bg-light static-top">
<div class="container">
<a class="navbar-brand font-weight-bold" href="@Url.Page("/index")">
<img src="/assets/eventhub-logo.svg" class="logo" />
<img src="/assets/eventhub-logo.svg" class="logo"/>
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
@ -43,9 +43,18 @@
{
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link event-link" href="@UrlOptions.Value.Www@Url.Page("/events/new")">+ Create an Event</a>
<div class="dropdown">
<a class="nav-link event-link" type="button" id="createDropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Create
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="@UrlOptions.Value.Www@Url.Page("/organizations/new")">Organization</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="@UrlOptions.Value.Www@Url.Page("/events/new")">Event</a>
</div>
</div>
</li>
</ul>
</ul>
}
<ul class="navbar-nav">
@ -97,13 +106,14 @@
</nav>
@functions{
public string GetPageActiveClassOrEmpty(ViewContext viewContext, string pageUrl)
{
if (!UrlOptions.Value.Www.Contains(Context.Request.Host.ToString()))
{
return "";
}
var activeRoute = viewContext?.RouteData.Values["page"]?.ToString()?.ToLowerInvariant();
pageUrl = pageUrl.ToLowerInvariant();

4
src/EventHub.Web.Theme/Themes/EventHub/Layouts/Account.cshtml

@ -86,7 +86,9 @@
}
@(await Component.InvokeAsync<PageAlertsViewComponent>())
@await Component.InvokeLayoutHookAsync(LayoutHooks.PageContent.First, StandardLayouts.Account)
@RenderBody()
<div class="render-wrapper">
@RenderBody()
</div>
@await Component.InvokeLayoutHookAsync(LayoutHooks.PageContent.Last, StandardLayouts.Account)
</abp-column>
</abp-row>

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

@ -75,7 +75,9 @@
@(await Component.InvokeAsync<MainNavbarViewComponent>())
@(await Component.InvokeAsync<PageAlertsViewComponent>())
@await Component.InvokeLayoutHookAsync(LayoutHooks.PageContent.First, StandardLayouts.Application)
@RenderBody()
<div class="render-wrapper">
@RenderBody()
</div>
@await Component.InvokeLayoutHookAsync(LayoutHooks.PageContent.Last, StandardLayouts.Application)
@(await Component.InvokeAsync<FooterViewComponent>())
<abp-script-bundle name="@EventHubThemeBundles.Scripts.Global"/>

4
src/EventHub.Web.Theme/Themes/EventHub/Layouts/Empty.cshtml

@ -57,7 +57,9 @@
<div class="@containerClass">
@(await Component.InvokeAsync<PageAlertsViewComponent>())
@await Component.InvokeLayoutHookAsync(LayoutHooks.PageContent.First, StandardLayouts.Empty)
@RenderBody()
<div class="render-wrapper">
@RenderBody()
</div>
@await Component.InvokeLayoutHookAsync(LayoutHooks.PageContent.Last, StandardLayouts.Empty)
</div>

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

File diff suppressed because it is too large

5
src/EventHub.Web/Pages/Events/Edit.cshtml

@ -53,9 +53,8 @@
</div>
</div>
<div class="col-md-12">
<div class="form-label-group">
<textarea rows="3" type="text" id="inputDescription" asp-for="Event.Description" class="form-control" placeholder="Description"></textarea>
<label for="inputDescription">Description</label>
<div class="form-label-group form-floating">
<textarea rows="5" type="text" id="inputDescription" asp-for="Event.Description" class="form-control" placeholder="Description"></textarea>
<span asp-validation-for="Event.Description" class="text-danger"></span>
</div>
</div>

4
src/EventHub.Web/Pages/Events/Edit.js

@ -13,9 +13,13 @@ $(function () {
$('#Event_IsOnline').on('change', '', function () {
var isOnline = $("#Event_IsOnline option:selected").val()
if (isOnline === "True") {
$("#Event_CountryId").attr("required", false);
$("#inputCity").attr("required", false);
$(".event-link-group").show();
$(".event-location-group").hide();
} else {
$("#Event_CountryId").attr("required", true);
$("#inputCity").attr("required", true);
$(".event-link-group").hide();
$(".event-location-group").show();
}

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

@ -37,7 +37,10 @@ else
<div class="col-md-6">
<div class="form-label-group">
<select asp-for="Event.OrganizationId" asp-items="Model.Organizations" class="form-select">
<option selected value="">Organization</option>
@if (Model.Organizations.Count > 1)
{
<option selected value="">Pick an organization</option>
}
</select>
<span asp-validation-for="Event.OrganizationId" class="text-danger"></span>
</div>
@ -65,7 +68,7 @@ else
</div>
<div class="col-md-12">
<div class="form-label-group">
<textarea rows="3" type="text" id="inputDescription" asp-for="Event.Description" class="form-control" placeholder="Description"></textarea>
<textarea rows="5" type="text" id="inputDescription" asp-for="Event.Description" class="form-control" placeholder="Description"></textarea>
<span asp-validation-for="Event.Description" class="text-danger"></span>
</div>
</div>

4
src/EventHub.Web/Pages/Events/New.js

@ -13,9 +13,13 @@ $(function () {
$('#Event_IsOnline').on('change', '', function () {
var isOnline = $("#Event_IsOnline option:selected").val()
if (isOnline === "True") {
$("#Event_CountryId").attr("required", false);
$("#inputCity").attr("required", false);
$(".event-link-group").show();
$(".event-location-group").hide();
} else {
$("#Event_CountryId").attr("required", true);
$("#inputCity").attr("required", true);
$(".event-link-group").hide();
$(".event-location-group").show();
}

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

@ -31,53 +31,16 @@
<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-dark" style="background-image: url('/assets/eh-banner-4.png')">
<div class="container">
<div class="row">
<div class="col-lg-9 col-md-11 mx-auto">
<h1>.Net Foundation Week</h1>
<p class="lead">
Lorem ipsum is placeholder text commonly used in the graphic!!
</p>
<div>
<a href="#" class="btn btn-primary">Join Now</a>
<a href="#" class="btn btn-link">More Details</a>
</div>
</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-5.png')">
<div class="container">
<div class="row">
<div class="col-lg-9 col-md-11 mx-auto">
<h1>.Net Foundation Week</h1>
<p class="lead">
Lorem ipsum is placeholder text commonly used in the graphic!
</p>
<div>
<a href="#" class="btn btn-primary">Join Now</a>
<a href="#" class="btn btn-link">More Details</a>
</div>
</div>
</div>
</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 class="slider-container d-flex align-items-center text-center text-dark" style="background-image: url('/assets/eh-banner-4.png')">
<div class="container">
<div class="row">
<div class="col-lg-9 col-md-11 mx-auto">
<img src="/assets/eventhub-logo.svg" >
<p class="lead mt-2">
Benefit from a community of millions.
</p>
<div>
<a href="@Url.Page("/Events/New")" class="btn btn-primary">Join Now</a>
</div>
</div>
</div>
@ -126,100 +89,101 @@
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md">
<h2 class=" mb-4">Upcoming Events</h2>
<div class="container">
<div class="row">
<div class="col-md">
<h2 class=" mb-4">Upcoming Events</h2>
</div>
</div>
</div>
@await Component.InvokeAsync(typeof(EventsAreaViewComponent), new
{
minDate = Clock.Now,
maxResultCount = 15
})
</div>
@await Component.InvokeAsync(typeof(EventsAreaViewComponent), new
{
minDate = Clock.Now,
maxResultCount = 15
})
</div>
<div class="container-fluid bg-white mt-5 py-5">
<div class="container py-3">
<div class="card-slider">
<div class="container-fluid bg-white mt-5 py-5">
<div class="container py-3">
<div class="card-slider">
<h2 class="mb-4">Online Events</h2>
<div class="owl-carousel owl-theme">
@for (var i = 0; i < Model.OnlineEvents.Count; i += 2)
{
<div class="item">
<div class="card mb-3">
<div class="row no-glutters">
<div class="col-5 pr-0">
<div class="event-thumbnail-left" style="background-image: url( @(UrlOptions.Value.Api.EnsureEndsWith('/') + $"api/eventhub/event/cover-image/{Model.OnlineEvents[i].Id}") );" alt="@Model.OnlineEvents[i].Title">
</div>
</div>
<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") <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>
</div>
</div>
</div>
</div>
</div>
@if (i + 1 <= Model.OnlineEvents.Count - 1)
{
<h2 class="mb-4">Online Events</h2>
<div class="owl-carousel owl-theme">
@for (var i = 0; i < Model.OnlineEvents.Count; i += 2)
{
<div class="item">
<div class="card mb-3">
<div class="row no-glutters">
<div class="col-5 pr-0">
<div class="event-thumbnail-left" style="background-image: url( @(UrlOptions.Value.Api.EnsureEndsWith('/') + $"api/eventhub/event/cover-image/{Model.OnlineEvents[i + 1].Id}") );" alt="@Model.OnlineEvents[i + 1].Title">
<div class="event-thumbnail-left" style="background-image: url( @(UrlOptions.Value.Api.EnsureEndsWith('/') + $"api/eventhub/event/cover-image/{Model.OnlineEvents[i].Id}") );" alt="@Model.OnlineEvents[i].Title">
</div>
</div>
<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") <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>
<h5>@Model.OnlineEvents[i].Title</h5>
<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 + 1].Url})" class="btn btn-link p-0">Learn More <img src="/assets/more-btn.svg"></a>
<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>
</div>
</div>
</div>
</div>
</div>
</div>
}
</div>
}
@if (i + 1 <= Model.OnlineEvents.Count - 1)
{
<div class="card mb-3">
<div class="row no-glutters">
<div class="col-5 pr-0">
<div class="event-thumbnail-left" style="background-image: url( @(UrlOptions.Value.Api.EnsureEndsWith('/') + $"api/eventhub/event/cover-image/{Model.OnlineEvents[i + 1].Id}") );" alt="@Model.OnlineEvents[i + 1].Title">
</div>
</div>
<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") <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>
}
</div>
</div>
</div>
</div>
</div>
<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">
<div class="px-5">
<h3>Explore groups</h3>
<p class="lead">
List who is organizing local events
with one click.
</p>
@if (!CurrentUser.IsAuthenticated)
{
<a href="@UrlOptions.Value.Account/Account/Register?returnUrl=@UrlOptions.Value.Www" class="btn btn-link btn-lg">Join EventHub</a>
}
<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">
<div class="px-5">
<h3>Explore groups</h3>
<p class="lead">
List who is organizing local events
with one click.
</p>
@if (!CurrentUser.IsAuthenticated)
{
<a href="@UrlOptions.Value.Account/Account/Register?returnUrl=@UrlOptions.Value.Www" class="btn btn-link btn-lg">Join EventHub</a>
}
</div>
</div>
</div>
<div class="col-md-5 mr-auto border-left">
<div class="px-5">
<h3>Start an Event</h3>
<p class="lead">Create your own Eventhub group and benefit from a community of millions.</p>
<a href="@Url.Page("/Events/New")" class="btn btn-link btn-lg">Start</a>
<div class="col-md-5 mr-auto border-left">
<div class="px-5">
<h3>Start an Event</h3>
<p class="lead">Create your own Eventhub group and benefit from a community of millions.</p>
<a href="@Url.Page("/Events/New")" class="btn btn-link btn-lg">Start</a>
</div>
</div>
</div>
</div>

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

@ -1,32 +1,4 @@
$(function () {
$('.main-slider .owl-carousel').owlCarousel({
loop: true,
center: true,
margin: 0,
padding: 0,
nav: true,
items: 1,
dots: false,
});
$('.card-slider .owl-carousel').owlCarousel({
loop: false,
center: false,
margin: 30,
padding: 0,
nav: true,
slideBy: 2,
responsive: {
0: {
items: 1,
},
991: {
items: 2,
},
},
dots: true,
});
function cb(start, end) {
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
}
@ -49,22 +21,22 @@
}
}, cb);
$inputWhen.on('apply.daterangepicker', function(ev, picker) {
$inputWhen.on('apply.daterangepicker', function (ev, picker) {
$(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY'));
minDate = picker.startDate.format('MM/DD/YYYY')
maxDate = picker.endDate.format('MM/DD/YYYY')
});
$inputWhen.on('cancel.daterangepicker', function(ev, picker) {
$inputWhen.on('cancel.daterangepicker', function (ev, picker) {
$(this).val('');
minDate = ""
maxDate = ""
});
function isNullOrEmpty(str){
function isNullOrEmpty(str) {
return str === null || str.match(/^ *$/) !== null;
}
$('#SearchButton').on('click', '', function () {
var language = $('#LanguageSelect').find(":selected").val();
var countryId = $('#CountrySelect').find(":selected").val();
@ -72,29 +44,29 @@
console.log(countryId)
var location = "/Events?"
if (minDate.length > 0 && !isNullOrEmpty(minDate)){
if (minDate.length > 0 && !isNullOrEmpty(minDate)) {
location += "MinDate=" + minDate
}
if (maxDate.length > 0 && !isNullOrEmpty(maxDate)){
if (maxDate.length > 0 && !isNullOrEmpty(maxDate)) {
location += "&MaxDate=" + maxDate
}
if (!isNullOrEmpty(language)){
if (!isNullOrEmpty(language)) {
location += "&Language=" + language
}
if (!isNullOrEmpty(countryId)){
if(countryId === "00000000-0000-0000-0000-000000000000"){
if (!isNullOrEmpty(countryId)) {
if (countryId === "00000000-0000-0000-0000-000000000000") {
location += "&IsOnline=true"
}else{
} else {
location += "&CountryId=" + countryId + "&IsOnline=false"
}
}
if (!isNullOrEmpty(location) && location !== "/Events?"){
if (!isNullOrEmpty(location) && location !== "/Events?") {
window.location.replace(location)
}else{
} else {
abp.notify.error("Please select a filter", "Search")
}
});

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

@ -61,9 +61,8 @@
</div>
<div class="col-md-12">
<div class="form-label-group">
<textarea rows="3" type="text" id="inputDescription" asp-for="Organization.Description" class="form-control" placeholder="Description*" required=""></textarea>
<label for="inputDescription">Description*</label>
<div class="form-label-group form-floating">
<textarea rows="5" type="text" id="inputDescription" asp-for="Organization.Description" class="form-control" placeholder="Description*" required=""></textarea>
<span asp-validation-for="Organization.Description" class="text-danger"></span>
</div>
</div>

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

@ -57,7 +57,7 @@
</div>
<div class="col-md-12">
<div class="form-label-group">
<textarea rows="3" type="text" id="inputDescription" asp-for="Organization.Description" class="form-control" placeholder="Description*" required=""></textarea>
<textarea rows="5" type="text" id="inputDescription" asp-for="Organization.Description" class="form-control" placeholder="Description*" required=""></textarea>
<span asp-validation-for="Organization.Description" class="text-danger"></span>
</div>
</div>

4
src/EventHub.Web/Pages/Organizations/New.cshtml.cs

@ -47,10 +47,10 @@ namespace EventHub.Web.Pages.Organizations
createOrganizationDto.ProfilePictureStreamContent = new RemoteStreamContent(memoryStream, fileName: Organization.ProfilePictureFile.FileName, contentType: Organization.ProfilePictureFile.ContentType);
}
await _organizationAppService.CreateAsync(createOrganizationDto);
var organization = await _organizationAppService.CreateAsync(createOrganizationDto);
await memoryStream.DisposeAsync();
return RedirectToPage("./Profile", new {name = Organization.Name});
return RedirectToPage("./Profile", new {name = organization.Name});
}
catch (Exception exception)
{

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

@ -59,7 +59,7 @@
@if (Model.IsOrganizationOwner)
{
<a href="/organization/edit/@Model.Organization.Name" class="btn btn-primary mt-4 text-white">
<i class="far fa-edit"></i> edit
<i class="far fa-edit"></i> Edit
</a>
}
@await Component.InvokeAsync(typeof(JoinAreaViewComponent), new {organizationId = Model.Organization.Id})

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

@ -62,17 +62,6 @@
</li>
</ul>
</abp-column>
@if (CurrentUser.IsAuthenticated)
{
@if (CurrentUser.Id == Model.User.Id)
{
<abp-column size="_4">
<div class="text-right">
<a abp-button="Primary" size="Small" href="@Url.Page("/Organizations/New")">@L["CreateAnOrganization"]</a>
</div>
</abp-column>
}
}
</abp-row>
<div class="tab-content profile-content py-4">
<div id="UpcomingEvents" class="tab-pane fade show active">

Loading…
Cancel
Save