Skip to content

Commit

Permalink
Merge pull request #354 from dorthl/mian
Browse files Browse the repository at this point in the history
fix
  • Loading branch information
dorthl committed Aug 1, 2023
2 parents 5bac660 + c02cd26 commit 6c632d1
Show file tree
Hide file tree
Showing 25 changed files with 115 additions and 203 deletions.
6 changes: 1 addition & 5 deletions src/Blogifier.Admin/Blogifier.Admin.csproj
Expand Up @@ -11,13 +11,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AutoMapper" Version="12.0.1" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.1" />
<PackageReference Include="Blazored.Typeahead" Version="4.7.0" />
<PackageReference Include="ChartJs.Blazor.Fork" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="7.0.9" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="7.0.9" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="7.0.9" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="7.0.9" PrivateAssets="all" />
<PackageReference Include="Microsoft.Extensions.Localization" Version="7.0.9" />
<PackageReference Include="Sotsera.Blazor.Toaster" Version="3.0.0" />
</ItemGroup>
Expand Down
11 changes: 4 additions & 7 deletions src/Blogifier.Admin/Components/PostEditorComponent.razor
Expand Up @@ -2,7 +2,6 @@
@inject IJSRuntime _jsruntime
@inject NavigationManager _navigation
@inject IToaster _toaster
@inject IMapper _mapper

<div class="bfeditor">
<div class="bfeditor-header">
Expand Down Expand Up @@ -79,13 +78,13 @@

@code {

[Parameter] public PostEditorDto Post { get; set; } = default!;
[Parameter] public FrontPostEditorDto Post { get; set; } = default!;
[Parameter] public EventCallback<FrontPostEditorDto> OnSaveCallback { get; set; }
[Parameter] public EventCallback<int> OnRemoveCallback { get; set; }

private EditorComponent _editorComponent = default!;

public async Task SetPostInfoAsync(PostEditorDto post)
public async Task SetPostInfoAsync(FrontPostEditorDto post)
{
var headTitle = _localizer["edit"] + " - " + post.Title;
await _jsruntime.InvokeVoidAsync("commonJsFunctions.setTitle", headTitle);
Expand All @@ -106,10 +105,8 @@
if (string.IsNullOrEmpty(Post.Cover)) Post.Cover = BlogifierSharedConstant.DefaultCover;
if (string.IsNullOrEmpty(Post.Description)) Post.Description = Post.Title;
Post.State = postState;

var post = _mapper.Map<FrontPostEditorDto>(Post);
post.Files = frontFiles;
await OnSaveCallback.InvokeAsync(post);
Post.Files = frontFiles;
await OnSaveCallback.InvokeAsync(Post);
}

protected async Task SaveAsync()
Expand Down
9 changes: 4 additions & 5 deletions src/Blogifier.Admin/Pages/Blogs/BlogsView.razor
Expand Up @@ -3,7 +3,6 @@
@layout BlogsLayout

@inject HttpClient _http
@inject IMapper _mapper
@inject NavigationManager _navigation
@inject IStringLocalizer<Resource> _localizer
@inject IJSRuntime _jsruntime
Expand All @@ -22,8 +21,8 @@

protected async Task LoadAsync()
{
var result = await _http.GetFromJsonAsync<List<PostItemDto>>($"api/post/items/{(int)FilterValue}/{(int)PostType.Post}");
Posts = _mapper.Map<List<FrontPostItemDto>>(result);
var result = await _http.GetFromJsonAsync<List<FrontPostItemDto>>($"api/post/items/{(int)FilterValue}/{(int)PostType.Post}");
Posts = result!;
}

public void CheckAll(object? checkValue)
Expand Down Expand Up @@ -77,8 +76,8 @@
protected async Task SearchPosts()
{
if (string.IsNullOrEmpty(SearchTerm)) SearchTerm = "*";
var result = await _http.GetFromJsonAsync<List<PostItemDto>>($"api/post/items/search/{SearchTerm}");
Posts = _mapper.Map<List<FrontPostItemDto>>(result);
var result = await _http.GetFromJsonAsync<List<FrontPostItemDto>>($"api/post/items/search/{SearchTerm}");
Posts = result;
}

public async Task Filter(PublishedStatus filter)
Expand Down
1 change: 0 additions & 1 deletion src/Blogifier.Admin/Pages/Blogs/CategoryEditorView.razor
Expand Up @@ -3,7 +3,6 @@
@layout BlogsLayout

@inject HttpClient _http
@inject IMapper _mapper
@inject NavigationManager _navigation
@inject IStringLocalizer<Resource> _localizer
@inject IJSRuntime _jsruntime
Expand Down
5 changes: 2 additions & 3 deletions src/Blogifier.Admin/Pages/Blogs/CategoryView.razor
Expand Up @@ -3,7 +3,6 @@
@layout BlogsLayout

@inject HttpClient _http
@inject IMapper _mapper
@inject NavigationManager _navigation
@inject IStringLocalizer<Resource> _localizer
@inject IJSRuntime _jsruntime
Expand All @@ -22,8 +21,8 @@

protected async Task LoadAsync()
{
var result = await _http.GetFromJsonAsync<IEnumerable<CategoryItemDto>>($"api/category/items");
Categories = _mapper.Map<List<FrontCategoryItemDto>>(result);
var result = await _http.GetFromJsonAsync<List<FrontCategoryItemDto>>($"api/category/items");
Categories = result;
}

protected void CheckAll(object? checkValue)
Expand Down
9 changes: 3 additions & 6 deletions src/Blogifier.Admin/Pages/Blogs/EditorView.razor
Expand Up @@ -5,7 +5,6 @@
@inject NavigationManager _navigation
@inject IToaster _toaster
@inject ToasterService _toasterService
@inject IMapper _mapper

<PageTitleComponent Title="@_localizer["new-post"]" />
<PostEditorComponent @ref="_postEditorComponent" Post="@Post" OnSaveCallback="OnSaveAsync" OnRemoveCallback="OnRemoveAsync" />
Expand All @@ -16,7 +15,7 @@

private PostEditorComponent _postEditorComponent = default!;

protected PostEditorDto Post { get; set; } = new PostEditorDto
protected FrontPostEditorDto Post { get; set; } = new FrontPostEditorDto
{
Title = string.Empty,
Description = string.Empty,
Expand All @@ -31,16 +30,14 @@
{
if (!string.IsNullOrEmpty(Slug))
{
Post = (await _httpClient.GetFromJsonAsync<PostEditorDto>($"api/post/byslug/{Slug}"))!;
Post = (await _httpClient.GetFromJsonAsync<FrontPostEditorDto>($"api/post/byslug/{Slug}"))!;
if (Post.Categories == null) Post.Categories = new List<CategoryDto>();
await _postEditorComponent.SetPostInfoAsync(Post);
}
}

protected async Task OnSaveAsync(FrontPostEditorDto input)
protected async Task OnSaveAsync(FrontPostEditorDto post)
{
var post = _mapper.Map<PostEditorDto>(input);

if (post.Id == 0)
{
var response = await _httpClient.PostAsJsonAsync<PostEditorDto>($"api/post/add", post);
Expand Down
9 changes: 3 additions & 6 deletions src/Blogifier.Admin/Pages/Blogs/ImportView.razor
Expand Up @@ -4,7 +4,6 @@
@inject IStringLocalizer<Resource> _localizer
@inject IToaster _toaster
@inject IJSRuntime _jsRuntime
@inject IMapper _mapper

<PageTitleComponent Title="@_localizer["import"]" />

Expand Down Expand Up @@ -98,9 +97,8 @@ else
protected async Task OnAnalysis()
{
Status = null;
var result = await _http.GetFromJsonAsync<ImportDto>($"api/import/rss?feedUrl={ImportRss.FeedUrl}");
var front = _mapper.Map<FrontImportDto>(result);
Import = front;
var result = await _http.GetFromJsonAsync<FrontImportDto>($"api/import/rss?feedUrl={ImportRss.FeedUrl}");
Import = result;
}

protected async Task OnImport()
Expand All @@ -109,8 +107,7 @@ else
foreach (var post in Import!.Posts!)
{
if (!post.Selected) continue;
var inputPost = _mapper.Map<PostEditorDto>(post);
request.Posts.Add(inputPost);
request.Posts.Add(post);
}
if (!request.Posts.Any()) return;

Expand Down
125 changes: 63 additions & 62 deletions src/Blogifier.Admin/Pages/HomeView.razor
@@ -1,9 +1,10 @@
@using ChartJs.Blazor
@*@using ChartJs.Blazor
@using ChartJs.Blazor.Common
@using ChartJs.Blazor.Common.Enums
@using ChartJs.Blazor.Util
@using ChartJs.Blazor.BarChart
@using System.Drawing
*@

@page "/admin"

Expand All @@ -13,7 +14,7 @@

@code {

protected BarConfig _config = default!;
//protected BarConfig _config = default!;
protected List<OptionItem> _dateOptions = default!;
protected List<PostVisit> _visits = default!;
protected bool _hideGraph = false;
Expand All @@ -22,17 +23,17 @@

protected override async Task OnInitializedAsync()
{
_config = new BarConfig
{
Options = new BarOptions
{
Responsive = true,
Legend = new Legend
{
Position = Position.Top
}
}
};
//_config = new BarConfig
//{
// Options = new BarOptions
// {
// Responsive = true,
// Legend = new Legend
// {
// Position = Position.Top
// }
// }
//};
_dateOptions = new List<OptionItem>
{
new OptionItem { Id = 1, Title = _localizer["today"] },
Expand All @@ -41,58 +42,58 @@
new OptionItem { Id = 4, Title = _localizer["30-days"] },
new OptionItem { Id = 5, Title = _localizer["90-days"] },
};
Load();
//Load();
_analytics = await _http.GetFromJsonAsync<AnalyticsDto>("api/analytics");
}

protected void Load()
{
var dataset = new BarDataset<int>()
{
Label = "Latest Post Views",
BackgroundColor = ColorUtil.FromDrawingColor(Color.FromArgb(98, 42, 255)),
BorderWidth = 0
};

if (_analytics == null || _analytics.LatestPostViews == null)
{
LoadData(dataset, TestData());
}
else
{
_hideList = _analytics.DisplayType == AnalyticsListType.Graph;
_hideGraph = _analytics.DisplayType == AnalyticsListType.List;

LoadData(dataset, _analytics.LatestPostViews);
}

if (_config.Data.Datasets.Count > 0)
{
_config.Data.Datasets.Clear();
}

_config.Data.Datasets.Add(dataset);
}



protected void LoadData(IDataset<int> dataset, BarChartModel model)
{
_visits = new List<PostVisit>();
var labels = model.Labels.ToList();
var values = model.Data.ToList();

_config.Data.Labels.Clear();

for (int i = 0; i < labels.Count; i++)
{
_config.Data.Labels.Add(labels[i]);
dataset.Add(values[i]);

_visits.Add(new PostVisit { Name = labels[i], Value = values[i] });
}
_visits = _visits.OrderByDescending(v => v.Value).ToList();
}
//protected void Load()
//{
// var dataset = new BarDataset<int>()
// {
// Label = "Latest Post Views",
// BackgroundColor = ColorUtil.FromDrawingColor(Color.FromArgb(98, 42, 255)),
// BorderWidth = 0
// };
// if (_analytics == null || _analytics.LatestPostViews == null)
// {
// LoadData(dataset, TestData());
// }
// else
// {
// _hideList = _analytics.DisplayType == AnalyticsListType.Graph;
// _hideGraph = _analytics.DisplayType == AnalyticsListType.List;
// LoadData(dataset, _analytics.LatestPostViews);
// }
// if (_config.Data.Datasets.Count > 0)
// {
// _config.Data.Datasets.Clear();
// }
// _config.Data.Datasets.Add(dataset);
//}


//protected void LoadData(IDataset<int> dataset, BarChartModel model)
//{
// _visits = new List<PostVisit>();
// var labels = model.Labels.ToList();
// var values = model.Data.ToList();
// //_config.Data.Labels.Clear();
// for (int i = 0; i < labels.Count; i++)
// {
// _config.Data.Labels.Add(labels[i]);
// dataset.Add(values[i]);
// _visits.Add(new PostVisit { Name = labels[i], Value = values[i] });
// }
// _visits = _visits.OrderByDescending(v => v.Value).ToList();
//}
protected async Task ToggleAnalyticsView(bool isGraph)
{
Expand Down
4 changes: 2 additions & 2 deletions src/Blogifier.Admin/Pages/Pages/EditorView.razor
Expand Up @@ -14,7 +14,7 @@

[Parameter] public string? Slug { get; set; }

protected PostEditorDto Post { get; set; } = new PostEditorDto
protected FrontPostEditorDto Post { get; set; } = new FrontPostEditorDto
{
Title = string.Empty,
Description = string.Empty,
Expand All @@ -28,7 +28,7 @@
{
if (!string.IsNullOrEmpty(Slug))
{
Post = (await _httpClient.GetFromJsonAsync<PostEditorDto>($"api/post/byslug/{Slug}"))!;
Post = (await _httpClient.GetFromJsonAsync<FrontPostEditorDto>($"api/post/byslug/{Slug}"))!;
if (Post.Categories == null) Post.Categories = new List<CategoryDto>();
}
}
Expand Down
9 changes: 4 additions & 5 deletions src/Blogifier.Admin/Pages/Pages/PagesView.razor
@@ -1,7 +1,6 @@
@page "/admin/pages/"

@inject HttpClient _http
@inject IMapper _mapper
@inject NavigationManager _navigation
@inject IStringLocalizer<Resource> _localizer
@inject IJSRuntime _jsruntime
Expand All @@ -21,8 +20,8 @@

protected async Task LoadAsync()
{
var result = await _http.GetFromJsonAsync<List<PostItemDto>>($"api/post/items/{(int)FilterValue}/{(int)PostType.Page}");
Posts = _mapper.Map<List<FrontPostItemDto>>(result);
var result = await _http.GetFromJsonAsync<List<FrontPostItemDto>>($"api/post/items/{(int)FilterValue}/{(int)PostType.Page}");
Posts = result;
}

public void CheckAll(object? checkValue)
Expand Down Expand Up @@ -78,8 +77,8 @@
protected async Task SearchPosts()
{
if (string.IsNullOrEmpty(SearchTerm)) SearchTerm = "*";
var result = await _http.GetFromJsonAsync<List<PostItemDto>>($"api/post/items/search/{SearchTerm}");
Posts = _mapper.Map<List<FrontPostItemDto>>(result);
var result = await _http.GetFromJsonAsync<List<FrontPostItemDto>>($"api/post/items/search/{SearchTerm}");
Posts = result;
}

public async Task Filter(PublishedStatus filter)
Expand Down
5 changes: 2 additions & 3 deletions src/Blogifier.Admin/Pages/Settings/Users/EditorView.razor
Expand Up @@ -5,7 +5,6 @@
@inject HttpClient _http
@inject NavigationManager _navigation
@inject IStringLocalizer<Resource> _localizer
@inject IMapper _mapper
@inject IToaster _toaster

@if (!IsUpdate)
Expand Down Expand Up @@ -85,8 +84,8 @@ else
{
if (!string.IsNullOrEmpty(Id))
{
var result = await _http.GetFromJsonAsync<UserInfoDto>($"api/user/{Id}");
User = _mapper.Map<UserEditorDto>(result);
var result = await _http.GetFromJsonAsync<UserEditorDto>($"api/user/{Id}");
User = result!;
IsUpdate = true;
}
}
Expand Down

0 comments on commit 6c632d1

Please sign in to comment.