dispaly comparison between original and edited text in poem correction history

This commit is contained in:
Hamid Reza Mohammadi 2023-11-26 18:35:26 +03:30
parent ac6636e48e
commit 8a5bb9dc8d
4 changed files with 52 additions and 6 deletions

View File

@ -177,10 +177,21 @@ else
{
<tr>
<td>
<p style="color:red">@verse.OriginalText</p>
<p id="verse-original-@correction.Id-edit-@verse.VORder" style="color:red">@verse.OriginalText</p>
</td>
<td>
<p style="color:green">@verse.Text</p>
<p id="verse-edited-@correction.Id-edit-@verse.VORder" style="color:green">@verse.Text</p>
</td>
</tr>
<tr>
<td colspan="2">
<p id="verse-compare-@correction.Id-edit-@verse.VORder">@verse.OriginalText</p>
<script>
$(document).ready(function () {
compareCorrectionBlocks('verse-original-@correction.Id-edit-@verse.VORder', 'verse-edited-@correction.Id-edit-@verse.VORder', 'verse-compare-@correction.Id-edit-@verse.VORder');
});
</script>
</td>
</tr>

View File

@ -33,6 +33,41 @@
</script>
<script src="/lib/diff.js"></script>
<script src="/js/bk.js?version=41"></script>
<script>
function compareCorrectionBlocks(originalElemenyId, editedElementId, resultElementId) {
var a = document.getElementById(originalElemenyId);
var b = document.getElementById(editedElementId);
var result = document.getElementById(resultElementId);
var diff = JsDiff.diffChars(a.textContent, b.textContent);
var fragment = document.createDocumentFragment();
for (var i = 0; i < diff.length; i++) {
if (diff[i].added && diff[i + 1] && diff[i + 1].removed) {
var swap = diff[i];
diff[i] = diff[i + 1];
diff[i + 1] = swap;
}
var node;
if (diff[i].removed) {
node = document.createElement('del');
node.style.color = 'red';
node.appendChild(document.createTextNode(diff[i].value));
} else if (diff[i].added) {
node = document.createElement('span');
node.style.color = 'white';
node.style.backgroundColor = 'green';
node.appendChild(document.createTextNode(diff[i].value));
} else {
node = document.createTextNode(diff[i].value);
}
fragment.appendChild(node);
}
result.textContent = '';
result.appendChild(fragment);
}
</script>
</head>
<body>

View File

@ -10,11 +10,11 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider>
<PublishUrl>bin\Release\net7.0-windows\publish\</PublishUrl>
<PublishUrl>bin\Release\net8.0-windows7.0\publish\</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<_TargetId>Folder</_TargetId>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>net7.0-windows</TargetFramework>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<ProjectGuid>48f9cdfa-625f-4743-bf21-bd556f6f33e8</ProjectGuid>
<SelfContained>false</SelfContained>
</PropertyGroup>

View File

@ -10,11 +10,11 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider>
<PublishUrl>bin\Release\net7.0-windows\publish\</PublishUrl>
<PublishUrl>bin\Release\net8.0-windows7.0\publish\</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<_TargetId>Folder</_TargetId>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>net7.0-windows</TargetFramework>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<ProjectGuid>113ef3de-e8a9-40ef-9da0-8dfabb3cdd68</ProjectGuid>
<SelfContained>false</SelfContained>
</PropertyGroup>