Browse Source

Add social media links on Organization profile page

pull/41/head
Berkan Sasmaz 6 years ago
parent
commit
d69e5e00b5
  1. 17
      src/EventHub.Web/Pages/Events/Detail.cshtml
  2. 2
      src/EventHub.Web/Pages/Events/Edit.cshtml
  3. 2
      src/EventHub.Web/Pages/Organizations/Edit.cshtml
  4. 69
      src/EventHub.Web/Pages/Organizations/Profile.cshtml
  5. 10
      src/EventHub.Web/Pages/Organizations/Profile.cshtml.cs
  6. 125
      src/EventHub.Web/Pages/Profile.cshtml
  7. 17
      src/EventHub.Web/Pages/Profile.cshtml.cs
  8. 59
      src/EventHub.Web/wwwroot/assets/github.svg
  9. 67
      src/EventHub.Web/wwwroot/assets/instagram.svg
  10. 1
      src/EventHub.Web/wwwroot/assets/medium.svg

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

@ -56,24 +56,7 @@
<p>
@EventDateHelper.GetDateRangeText(Model.Event.StartTime, Model.Event.EndTime)
</p>
@await Component.InvokeAsync(typeof(AttendeesAreaViewComponent), new {eventId = Model.Event.Id})
</div>
<div class="col-md-5 pl-md-5">
<h5 class="detail-head mt-5 font-weight-bold">Share Event</h5>
<div class="share-container">
<a href="#">
<img src="/assets/twitter2.svg">
</a>
<a href="#">
<img src="/assets/in2.svg">
</a>
<a href="#">
<img src="/assets/facebook2.png">
</a>
</div>
</div>
</div>
</div>

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

@ -1,4 +1,4 @@
@page "/event/edit/{url}"
@page "/Event/Edit/{url}"
@inject IHtmlLocalizer<EventHubResource> L
@using EventHub.Localization
@using Microsoft.AspNetCore.Mvc.Localization

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

@ -1,4 +1,4 @@
@page "/organization/edit/{name}"
@page "/Organization/Edit/{name}"
@inject IHtmlLocalizer<EventHubResource> L
@using EventHub.Localization
@using EventHub.Organizations

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

@ -65,27 +65,60 @@
</a>
}
@await Component.InvokeAsync(typeof(JoinAreaViewComponent), new {organizationId = Model.Organization.Id})
@await Component.InvokeAsync(typeof(MembersAreaViewComponent),
@await Component.InvokeAsync(typeof(MembersAreaViewComponent),
new
{
organizationId = Model.Organization.Id,
organizationId = Model.Organization.Id,
isPagination = true,
maxResultCount = 15
})
<h5 class="detail-head mt-5 font-weight-bold">Share Organizations</h5>
<div class="share-container">
<a href="https://twitter.com/@Model.Organization.TwitterUsername">
<img src="/assets/twitter2.svg">
</a>
@* ToDo: Social Links *@
<a href="https://www.linkedin.com/in/@Model.Organization.Website">
<img src="/assets/in2.svg">
</a>
<a href="https://www.facebook.com/@Model.Organization.FacebookUsername">
<img src="/assets/facebook2.png">
</a>
</div>
@if (Model.IsShowSocialMediaContent)
{
<h5 class="detail-head mt-5 font-weight-bold">Share Organizations</h5>
<div class="share-container">
@if (!Model.Organization.Website.IsNullOrWhiteSpace())
{
<span>
WEBSITE:
<a href="@Model.Organization.Website">
@Model.Organization.Website
</a>
</span>
}
<br>
@if (!Model.Organization.TwitterUsername.IsNullOrWhiteSpace())
{
<a href="https://twitter.com/@Model.Organization.TwitterUsername">
<img width="40" height="40" src="/assets/twitter2.svg">
</a>
}
@if (!Model.Organization.GitHubUsername.IsNullOrWhiteSpace())
{
<a href="https://www.github.com/@Model.Organization.GitHubUsername">
<img width="40" height="40" src="/assets/github.svg">
</a>
}
@if (!Model.Organization.FacebookUsername.IsNullOrWhiteSpace())
{
<a href="https://www.facebook.com/@Model.Organization.FacebookUsername">
<img width="40" height="40" src="/assets/facebook2.png">
</a>
}
@if (!Model.Organization.InstagramUsername.IsNullOrWhiteSpace())
{
<a href="https://www.instagram.com/@Model.Organization.InstagramUsername">
<img width="40" height="40" src="/assets/instagram.svg">
</a>
}
@if (!Model.Organization.MediumUsername.IsNullOrWhiteSpace())
{
<a href="https://www.medium.com/@@@Model.Organization.MediumUsername">
<img width="40" height="40" src="/assets/medium.svg">
</a>
}
</div>
}
</div>
</div>
</div>
@ -124,10 +157,10 @@
</div>
</div>
<div id="members-section" class="tab-pane fade">
@await Component.InvokeAsync(typeof(MembersAreaViewComponent),
@await Component.InvokeAsync(typeof(MembersAreaViewComponent),
new
{
organizationId = Model.Organization.Id,
organizationId = Model.Organization.Id,
isPagination = true,
maxResultCount = 18,
isMoreDetail = true

10
src/EventHub.Web/Pages/Organizations/Profile.cshtml.cs

@ -1,4 +1,5 @@
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
using EventHub.Organizations;
using EventHub.Organizations.Memberships;
using Microsoft.AspNetCore.Mvc;
@ -13,6 +14,8 @@ namespace EventHub.Web.Pages.Organizations
public OrganizationProfileDto Organization { get; private set; }
public bool IsOrganizationOwner { get; private set; }
public bool IsShowSocialMediaContent { get; set; } = false;
private readonly IOrganizationAppService _organizationAppService;
@ -33,6 +36,11 @@ namespace EventHub.Web.Pages.Organizations
private async Task GetProfileAsync()
{
Organization = await _organizationAppService.GetProfileAsync(Name);
if (!Organization.Website.IsNullOrWhiteSpace() || !Organization.TwitterUsername.IsNullOrWhiteSpace() || !Organization.GitHubUsername.IsNullOrWhiteSpace() || !Organization.FacebookUsername.IsNullOrWhiteSpace() || !Organization.InstagramUsername.IsNullOrWhiteSpace() || !Organization.MediumUsername.IsNullOrWhiteSpace())
{
IsShowSocialMediaContent = true;
}
}
}
}

125
src/EventHub.Web/Pages/Profile.cshtml

@ -10,12 +10,9 @@
<div class="container pt-4">
<div class="row py-4">
<div class="col-md">
<ul class="nav nav-tabs profile-nav" id="myTab">
<ul class="nav nav-tabs profile-nav" id="profileTab">
<li class="nav-item">
<a href="#MyProfile" class="nav-link active" data-toggle="tab">My Profile</a>
</li>
<li class="nav-item">
<a href="#MyOrganizations" class="nav-link" data-toggle="tab">My Organizations</a>
<a href="#MyOrganizations" class="nav-link active" data-toggle="tab">My Organizations</a>
</li>
<li class="nav-item">
<a href="#MyPastEvents" class="nav-link" data-toggle="tab">My Past Events</a>
@ -25,123 +22,7 @@
</li>
</ul>
<div class="tab-content profile-content py-4">
<div id="MyProfile" class="tab-pane fade show active">
<div class="row">
<div class="col-md-4">
<div class="card">
<div class="card-body text-center">
<h3 class="text-left">Profile Photo</h3>
<img src="assets/big-avatar.png">
<p class="mt-3">
You should note that the photo to be added does not exceed <span class="text-primary">30 MB</span> in <span class="text-primary">JPEG</span> or <span class="text-primary">PNG</span> format.
</p>
<a href="#" class="btn btn-primary btn-lg mt-2">
Update Profile Photo
</a>
</div>
</div>
</div>
<div class="col-md-8">
<div class="card">
<div class="card-body" style="min-height: 496px">
<h3 class="mb-4">Profile Informations</h3>
<div class="form">
<div class="row">
<div class="col-md-6">
<div class="form-label-group">
<input type="Name" id="inputName" class="form-control" placeholder="Name" required="">
<label for="inputName">Name</label>
</div>
</div>
<div class="col-md-6">
<div class="form-label-group">
<input type="Surname" id="inputSurname" class="form-control" placeholder="Surname" required="">
<label for="inputSurname">Surname</label>
</div>
</div>
<div class="col-md-6">
<div class="form-label-group">
<input type="Email" id="inputEmail" class="form-control" placeholder="Email" required="">
<label for="inputEmail">E-mail Address</label>
</div>
</div>
<div class="col-md-6">
<div class="form-label-group">
<input type="location" id="inputLocation" class="form-control" placeholder="Location" required="">
<label for="inputLocation">Location</label>
</div>
</div>
<div class="col-md-6">
<div class="form-label-group">
<input type="Company" id="inputCompany" class="form-control" placeholder="Company" required="">
<label for="inputCompany">Company</label>
</div>
</div>
<div class="col-md-6">
<div class="form-label-group">
<input type="Title" id="inputTitle" class="form-control" placeholder="Title" required="">
<label for="inputTitle">Title</label>
</div>
</div>
<div class="col-md-12">
<div class="form-label-group">
<input type="Bio" id="inputBio" class="form-control" placeholder="Bio" required="">
<label for="inputBio">Bio</label>
</div>
</div>
<div class="col-md-12 text-right">
<a href="#" class="btn btn-primary btn-lg">
Update Information
</a>
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<h3 class="mb-4">Change Password</h3>
<div class="form">
<div class="row">
<div class="col-md-6">
<div class="form-label-group">
<input type="OldPassword" id="inputName" class="form-control" placeholder="Old Password" required="">
<label for="inputOldPassword">Old Password</label>
</div>
</div>
<div class="col-md-6">
</div>
<div class="col-md-6">
<div class="form-label-group">
<input type="NewPassword" id="inputName" class="form-control" placeholder="New Password" required="">
<label for="inputNewPassword">New Password</label>
</div>
</div>
<div class="col-md-6">
<div class="form-label-group">
<input type="NewPassword2" id="inputName" class="form-control" placeholder="New Password (Again)" required="">
<label for="inputNewPassword2">New Password (Again)</label>
</div>
</div>
<div class="col-md-12 text-right">
<a href="#" class="btn btn-primary btn-lg">
Update Information
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="MyOrganizations" class="tab-pane fade">
<div id="MyOrganizations" class="tab-pane fade show active">
<div class="row">
<div class="col">
<div class="card">

17
src/EventHub.Web/Pages/Profile.cshtml.cs

@ -1,23 +1,10 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using EventHub.Organizations;
namespace EventHub.Web.Pages
{
public class ProfileModel : EventHubPageModel
{
private readonly IOrganizationAppService _organizationAppService;
public IReadOnlyList<OrganizationInListDto> MyOrganizations { get; set; }
public ProfileModel(IOrganizationAppService organizationAppService)
public void OnGet()
{
_organizationAppService = organizationAppService;
}
public async Task OnGetAsync()
{
MyOrganizations = (await _organizationAppService.GetMyOrganizationsAsync()).Items;
}
}
}

59
src/EventHub.Web/wwwroot/assets/github.svg

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="438.549px" height="438.549px" viewBox="0 0 438.549 438.549" style="enable-background:new 0 0 438.549 438.549;"
xml:space="preserve">
<g>
<path d="M409.132,114.573c-19.608-33.596-46.205-60.194-79.798-79.8C295.736,15.166,259.057,5.365,219.271,5.365
c-39.781,0-76.472,9.804-110.063,29.408c-33.596,19.605-60.192,46.204-79.8,79.8C9.803,148.168,0,184.854,0,224.63
c0,47.78,13.94,90.745,41.827,128.906c27.884,38.164,63.906,64.572,108.063,79.227c5.14,0.954,8.945,0.283,11.419-1.996
c2.475-2.282,3.711-5.14,3.711-8.562c0-0.571-0.049-5.708-0.144-15.417c-0.098-9.709-0.144-18.179-0.144-25.406l-6.567,1.136
c-4.187,0.767-9.469,1.092-15.846,1c-6.374-0.089-12.991-0.757-19.842-1.999c-6.854-1.231-13.229-4.086-19.13-8.559
c-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559
c-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-0.951-2.568-2.098-3.711-3.429c-1.142-1.331-1.997-2.663-2.568-3.997
c-0.572-1.335-0.098-2.43,1.427-3.289c1.525-0.859,4.281-1.276,8.28-1.276l5.708,0.853c3.807,0.763,8.516,3.042,14.133,6.851
c5.614,3.806,10.229,8.754,13.846,14.842c4.38,7.806,9.657,13.754,15.846,17.847c6.184,4.093,12.419,6.136,18.699,6.136
c6.28,0,11.704-0.476,16.274-1.423c4.565-0.952,8.848-2.383,12.847-4.285c1.713-12.758,6.377-22.559,13.988-29.41
c-10.848-1.14-20.601-2.857-29.264-5.14c-8.658-2.286-17.605-5.996-26.835-11.14c-9.235-5.137-16.896-11.516-22.985-19.126
c-6.09-7.614-11.088-17.61-14.987-29.979c-3.901-12.374-5.852-26.648-5.852-42.826c0-23.035,7.52-42.637,22.557-58.817
c-7.044-17.318-6.379-36.732,1.997-58.24c5.52-1.715,13.706-0.428,24.554,3.853c10.85,4.283,18.794,7.952,23.84,10.994
c5.046,3.041,9.089,5.618,12.135,7.708c17.705-4.947,35.976-7.421,54.818-7.421s37.117,2.474,54.823,7.421l10.849-6.849
c7.419-4.57,16.18-8.758,26.262-12.565c10.088-3.805,17.802-4.853,23.134-3.138c8.562,21.509,9.325,40.922,2.279,58.24
c15.036,16.18,22.559,35.787,22.559,58.817c0,16.178-1.958,30.497-5.853,42.966c-3.9,12.471-8.941,22.457-15.125,29.979
c-6.191,7.521-13.901,13.85-23.131,18.986c-9.232,5.14-18.182,8.85-26.84,11.136c-8.662,2.286-18.415,4.004-29.263,5.146
c9.894,8.562,14.842,22.077,14.842,40.539v60.237c0,3.422,1.19,6.279,3.572,8.562c2.379,2.279,6.136,2.95,11.276,1.995
c44.163-14.653,80.185-41.062,108.068-79.226c27.88-38.161,41.825-81.126,41.825-128.906
C438.536,184.851,428.728,148.168,409.132,114.573z"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

67
src/EventHub.Web/wwwroot/assets/instagram.svg

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 551.034 551.034" style="enable-background:new 0 0 551.034 551.034;" xml:space="preserve">
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="275.517" y1="4.57" x2="275.517" y2="549.72" gradientTransform="matrix(1 0 0 -1 0 554)">
<stop offset="0" style="stop-color:#E09B3D"/>
<stop offset="0.3" style="stop-color:#C74C4D"/>
<stop offset="0.6" style="stop-color:#C21975"/>
<stop offset="1" style="stop-color:#7024C4"/>
</linearGradient>
<path style="fill:url(#SVGID_1_);" d="M386.878,0H164.156C73.64,0,0,73.64,0,164.156v222.722
c0,90.516,73.64,164.156,164.156,164.156h222.722c90.516,0,164.156-73.64,164.156-164.156V164.156
C551.033,73.64,477.393,0,386.878,0z M495.6,386.878c0,60.045-48.677,108.722-108.722,108.722H164.156
c-60.045,0-108.722-48.677-108.722-108.722V164.156c0-60.046,48.677-108.722,108.722-108.722h222.722
c60.045,0,108.722,48.676,108.722,108.722L495.6,386.878L495.6,386.878z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="275.517" y1="4.57" x2="275.517" y2="549.72" gradientTransform="matrix(1 0 0 -1 0 554)">
<stop offset="0" style="stop-color:#E09B3D"/>
<stop offset="0.3" style="stop-color:#C74C4D"/>
<stop offset="0.6" style="stop-color:#C21975"/>
<stop offset="1" style="stop-color:#7024C4"/>
</linearGradient>
<path style="fill:url(#SVGID_2_);" d="M275.517,133C196.933,133,133,196.933,133,275.516s63.933,142.517,142.517,142.517
S418.034,354.1,418.034,275.516S354.101,133,275.517,133z M275.517,362.6c-48.095,0-87.083-38.988-87.083-87.083
s38.989-87.083,87.083-87.083c48.095,0,87.083,38.988,87.083,87.083C362.6,323.611,323.611,362.6,275.517,362.6z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="418.31" y1="4.57" x2="418.31" y2="549.72" gradientTransform="matrix(1 0 0 -1 0 554)">
<stop offset="0" style="stop-color:#E09B3D"/>
<stop offset="0.3" style="stop-color:#C74C4D"/>
<stop offset="0.6" style="stop-color:#C21975"/>
<stop offset="1" style="stop-color:#7024C4"/>
</linearGradient>
<circle style="fill:url(#SVGID_3_);" cx="418.31" cy="134.07" r="34.15"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

1
src/EventHub.Web/wwwroot/assets/medium.svg

@ -0,0 +1 @@
<svg id="Bold" enable-background="new 0 0 24 24" height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m7.996 21.324c0 .695-.521.982-1.098.695l-6.228-3.113c-.188-.089-.346-.238-.475-.447s-.195-.417-.195-.622v-15.227c0-.568.341-.825 1.112-.441l6.844 3.42c.099.099.026-.581.04 15.735zm.857-14.32 7.152 11.568-7.152-3.553zm15.147.241v14.079c0 .223-.062.403-.188.541-.125.138-.295.207-.509.207s-.424-.058-.629-.174l-5.906-2.939zm-.04-1.603c0 .027-1.145 1.895-3.435 5.603s-3.632 5.88-4.025 6.512l-5.223-8.469 4.339-7.039c.236-.388.72-.456 1.045-.294l7.246 3.607c.035.017.053.044.053.08z"/></svg>

After

Width:  |  Height:  |  Size: 625 B

Loading…
Cancel
Save