#125 ability to view an earlier version of a page

This commit is contained in:
Hamid Reza Mohammadi 2021-05-31 19:17:15 +04:30
parent 6fc5f955ec
commit c1e346ec50
3 changed files with 152 additions and 1 deletions

View File

@ -0,0 +1,98 @@
@page
@model GanjooRazor.Areas.Admin.Pages.EarlierVersionModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
Layout = "_AdminLayout";
ViewData["Title"] = "نسخهٔ قدیمی";
}
<h1>@ViewData["Title"]</h1>
<p>@Model.LastMessage</p>
@if(Model.EarlierVersion != null)
{
<table style="width:100%" class="noborder">
<tr>
<td>
<span class="inputlabel">عنوان: </span>
</td>
<td>
<input asp-for="EarlierVersion.Title" />
</td>
</tr>
<tr>
<td>
<span class="inputlabel">نامک: </span>
</td>
<td>
<input style="text-align:left;direction:ltr;" asp-for="EarlierVersion.UrlSlug" />
</td>
</tr>
<tr>
<td>
<span class="inputlabel">متن: </span>
</td>
<td>
<textarea asp-for="EarlierVersion.HtmlText" tabindex="4" rows="20" cols="80"></textarea>
</td>
</tr>
<tr>
<td>
<span class="inputlabel">منبع (شعر): </span>
</td>
<td>
<table>
<tr>
<td><span>نام:</span> <input asp-for="EarlierVersion.SourceName" /></td>
</tr>
<tr>
<td><span>نشانی:</span> <input style="text-align:left;direction:ltr;" asp-for="EarlierVersion.SourceUrlSlug" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<span class="inputlabel">دسته‌بندی کهن (شعر): </span>
</td>
<td>
<table>
<tr>
<td><span>نام:</span> <input asp-for="EarlierVersion.OldTag" /></td>
</tr>
<tr>
<td><span>نشانی:</span> <input style="text-align:left;direction:ltr;" asp-for="EarlierVersion.OldTagPageUrl" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<span class="inputlabel">وزن (شعر): </span>
</td>
<td>
<input asp-for="EarlierVersion.Rhythm" />
</td>
</tr>
<tr>
<td>
<span class="inputlabel">حروف قافیه (شعر): </span>
</td>
<td>
<input asp-for="EarlierVersion.RhymeLetters" />
</td>
</tr>
<tr>
<td>
<span class="inputlabel">توضیح این ویرایش: </span>
</td>
<td>
<input asp-for="EarlierVersion.Note" />
</td>
</tr>
</table>
}

View File

@ -0,0 +1,53 @@
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Newtonsoft.Json;
using RMuseum.Models.Ganjoor.ViewModels;
using System.Net.Http;
using System.Threading.Tasks;
namespace GanjooRazor.Areas.Admin.Pages
{
public class EarlierVersionModel : PageModel
{
/// <summary>
/// last message
/// </summary>
public string LastMessage { get; set; }
/// <summary>
/// model
/// </summary>
[BindProperty]
public GanjoorModifyPageViewModel EarlierVersion { get; set; }
public async Task<IActionResult> OnGetAsync()
{
LastMessage = "";
using (HttpClient secureClient = new HttpClient())
{
if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
{
var response = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/oldversion/{Request.Query["id"]}");
if (!response.IsSuccessStatusCode)
{
LastMessage = await response.Content.ReadAsStringAsync();
}
response.EnsureSuccessStatusCode();
EarlierVersion = JsonConvert.DeserializeObject<GanjoorModifyPageViewModel>(await response.Content.ReadAsStringAsync());
}
else
{
LastMessage = "لطفا از گنجور خارج و مجددا به آن وارد شوید.";
}
}
return Page();
}
}
}

View File

@ -23,7 +23,7 @@
{
<tr id="tr-@olderVersion.Id">
<td>
<a href="/Admin/ViewPageHistory?id=@olderVersion.Id">@olderVersion.Id</a>
<a href="/Admin/EarlierVersion?id=@olderVersion.Id">@olderVersion.Id</a>
</td>
<td>
@olderVersion.RecordDate.ToFriendlyPersianDateTextify()