Skip to content

Commit 6ddefc0

Browse files
committed
UpdateinHtml-Filter
1 parent 8f7ff81 commit 6ddefc0

File tree

1 file changed

+163
-147
lines changed

1 file changed

+163
-147
lines changed

LearningHub.Nhs.WebUI/Views/Resource/_ResourceItem.cshtml

Lines changed: 163 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -4,187 +4,203 @@
44
@using LearningHub.Nhs.WebUI.Models
55
@using LearningHub.Nhs.WebUI.Models.Resource
66
@{
7-
var resourceItem = Model.ResourceItem;
8-
var canShowMoreDetails = User.Identity.IsAuthenticated;
9-
if (canShowMoreDetails && resourceItem.ResourceAccessibilityEnum == ResourceAccessibilityEnum.FullAccess)
10-
{
11-
canShowMoreDetails = !User.IsInRole("BasicUser");
12-
}
13-
14-
string GetFileLink(string filePath, string fileName)
15-
{
16-
return $"/api/resource/DownloadResource?filePath={filePath}&fileName={Uri.EscapeDataString(fileName)}";
17-
}
18-
19-
string GetDownloadResourceLink(string filePath, string fileName)
20-
{
21-
return $"/api/resource/DownloadResourceAndRecordActivity?resourceVersionId={resourceItem.ResourceVersionId}&nodePathId={resourceItem.NodePathId}&filePath={filePath}&fileName={Uri.EscapeDataString(fileName)}";
22-
}
23-
24-
string GetWeblinkNavigateLink(string url)
25-
{
26-
return $"/api/resource/NavigateToWeblinkAndRecordActivity?resourceVersionId={resourceItem.ResourceVersionId}&nodePathId={resourceItem.NodePathId}&url={Uri.EscapeDataString(url)}";
27-
}
28-
29-
string GetFileExtension(string filename)
30-
{
31-
var extension = UtilityHelper.GetFileExtension(filename);
32-
33-
if (string.IsNullOrEmpty(extension))
7+
var resourceItem = Model.ResourceItem;
8+
var canShowMoreDetails = User.Identity.IsAuthenticated;
9+
if (canShowMoreDetails && resourceItem.ResourceAccessibilityEnum == ResourceAccessibilityEnum.FullAccess)
3410
{
35-
return "-";
11+
canShowMoreDetails = !User.IsInRole("BasicUser");
3612
}
3713

38-
return extension.ToUpper();
39-
}
40-
41-
string GetSensitiveContentUrl()
42-
{
43-
if (this.ViewContext.HttpContext.Request.QueryString.Value == "")
14+
string GetFileLink(string filePath, string fileName)
4415
{
45-
return "?acceptSensitiveContent=true";
16+
return $"/api/resource/DownloadResource?filePath={filePath}&fileName={Uri.EscapeDataString(fileName)}";
4617
}
47-
else
18+
19+
string GetDownloadResourceLink(string filePath, string fileName)
4820
{
49-
return this.ViewContext.HttpContext.Request.QueryString.Value + "&acceptSensitiveContent=true";
21+
return $"/api/resource/DownloadResourceAndRecordActivity?resourceVersionId={resourceItem.ResourceVersionId}&nodePathId={resourceItem.NodePathId}&filePath={filePath}&fileName={Uri.EscapeDataString(fileName)}";
5022
}
51-
}
52-
}
5323

54-
<div>
55-
<div class="resource-main">
56-
57-
@if (canShowMoreDetails && resourceItem.SensitiveContent && Model.HasCatalogueAccess)
24+
string GetWeblinkNavigateLink(string url)
5825
{
59-
<div class="sensitive-content">
60-
<h2>
61-
Sensitive content
62-
</h2>
63-
<p class="nhsuk-body-l nhsuk-u-text-align-centre">
64-
This resource contains sensitive content which some people may find offensive or disturbing.
65-
</p>
66-
<div>
67-
<a class="nhsuk-button nhsuk-button--secondary" href="@GetSensitiveContentUrl()">Show content</a>
68-
</div>
69-
</div>
26+
return $"/api/resource/NavigateToWeblinkAndRecordActivity?resourceVersionId={resourceItem.ResourceVersionId}&nodePathId={resourceItem.NodePathId}&url={Uri.EscapeDataString(url)}";
7027
}
7128

72-
<!-- Content Object -->
73-
@if (Model.HasCatalogueAccess && !resourceItem.SensitiveContent)
29+
string GetFileExtension(string filename)
7430
{
75-
<div>
31+
var extension = UtilityHelper.GetFileExtension(filename);
7632

77-
@* Image *@
78-
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.Image)
33+
if (string.IsNullOrEmpty(extension))
7934
{
80-
<div class="nhsuk-card nhsuk-bg-light-blue">
81-
<div class="nhsuk-card__content nhsuk-u-padding-bottom-1">
82-
<div class="image-container">
83-
<img class="img-main" src="@GetFileLink(resourceItem.ImageDetails.File.FilePath, resourceItem.ImageDetails.File.FileName)" alt="@resourceItem.Title" />
84-
</div>
85-
<div>
86-
<a class="nhsuk-button nhsuk-u-margin-top-4" href="@GetFileLink(resourceItem.ImageDetails.File.FilePath, resourceItem.ImageDetails.File.FileName)">Download this image</a>
87-
</div>
88-
</div>
89-
</div>
35+
return "-";
9036
}
9137

92-
@* Weblink *@
93-
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.WebLink)
94-
{
95-
<div class="nhsuk-card nhsuk-bg-light-blue">
96-
<div class="nhsuk-card__content">
97-
<p class="nhsuk-body-l nhsuk-u-margin-bottom-3">Visit site:</p>
98-
@{
99-
string displayText = resourceItem.WebLinkDetails.DisplayText;
38+
return extension.ToUpper();
39+
}
10040

101-
if (string.IsNullOrEmpty(displayText))
102-
{
103-
displayText = resourceItem.WebLinkDetails.Url;
104-
}
105-
}
106-
<p class="nhsuk-body-l word-break__break-word"><a href="@GetWeblinkNavigateLink(resourceItem.WebLinkDetails.Url)" target="_blank">@displayText</a></p>
107-
</div>
108-
</div>
41+
string GetSensitiveContentUrl()
42+
{
43+
if (this.ViewContext.HttpContext.Request.QueryString.Value == "")
44+
{
45+
return "?acceptSensitiveContent=true";
10946
}
47+
else
48+
{
49+
return this.ViewContext.HttpContext.Request.QueryString.Value + "&acceptSensitiveContent=true";
50+
}
51+
}
52+
}
53+
54+
<div>
55+
<div class="resource-main">
11056

111-
@* Generic File *@
112-
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.GenericFile)
57+
@if (canShowMoreDetails && resourceItem.SensitiveContent && Model.HasCatalogueAccess)
11358
{
114-
<div class="resource-panel-container">
115-
<div class="nhsuk-card nhsuk-bg-light-blue">
116-
<div class="nhsuk-card__content">
117-
<p class="nhsuk-body-l nhsuk-u-margin-bottom-3">Download:</p>
118-
<p class="nhsuk-body-l word-break__break-word">
119-
<span class="nhsuk-u-margin-right-4 pill @UtilityHelper.GetPillColour(resourceItem.GenericFileDetails.File.FileName)">@GetFileExtension(resourceItem.GenericFileDetails.File.FileName)</span>
120-
<a class="nhsuk-u-margin-right-4" href="@GetDownloadResourceLink(resourceItem.GenericFileDetails.File.FilePath, resourceItem.GenericFileDetails.File.FileName)">@resourceItem.GenericFileDetails.File.FileName</a> (@resourceItem.GenericFileDetails.File.FileSizeKb KB)
59+
<div class="sensitive-content">
60+
<h2>
61+
Sensitive content
62+
</h2>
63+
<p class="nhsuk-body-l nhsuk-u-text-align-centre">
64+
This resource contains sensitive content which some people may find offensive or disturbing.
12165
</p>
122-
</div>
66+
<div>
67+
<a class="nhsuk-button nhsuk-button--secondary" href="@GetSensitiveContentUrl()">Show content</a>
68+
</div>
12369
</div>
124-
125-
</div>
12670
}
12771

128-
@* Article *@
129-
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.Article)
72+
<!-- Content Object -->
73+
@if (Model.HasCatalogueAccess && !resourceItem.SensitiveContent)
13074
{
131-
<div class="nhsuk-u-margin-bottom-7">@Html.Raw(resourceItem.ArticleDetails.Description)</div>
132-
133-
@if (resourceItem.ArticleDetails.Files != null && resourceItem.ArticleDetails.Files.Count > 0)
134-
{
135-
<div class="nhsuk-card">
136-
<div class="nhsuk-card__content">
137-
<h2 class="nhsuk-card__heading">Documents</h2>
138-
@foreach (var file in resourceItem.ArticleDetails.Files)
75+
<div>
76+
77+
@* Image *@
78+
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.Image)
13979
{
140-
<p class="nhsuk-u-margin-bottom-2 word-break__break-word">
141-
<span class="nhsuk-u-margin-right-3 pill pill--small @UtilityHelper.GetPillColour(file.FileName)">@GetFileExtension(file.FileName)</span>
142-
<a class="nhsuk-u-margin-right-3" href="@GetFileLink(file.FilePath, file.FileName)">@file.FileName</a> (@file.FileSizeKb KB)
143-
</p>
80+
<div class="nhsuk-card nhsuk-bg-light-blue">
81+
<div class="nhsuk-card__content nhsuk-u-padding-bottom-1">
82+
<div class="image-container">
83+
<img class="img-main" src="@GetFileLink(resourceItem.ImageDetails.File.FilePath, resourceItem.ImageDetails.File.FileName)" alt="@resourceItem.Title" />
84+
</div>
85+
<div>
86+
<a class="nhsuk-button nhsuk-u-margin-top-4" href="@GetFileLink(resourceItem.ImageDetails.File.FilePath, resourceItem.ImageDetails.File.FileName)">Download this image</a>
87+
</div>
88+
</div>
89+
</div>
14490
}
145-
</div>
146-
</div>
147-
}
148-
}
14991

150-
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.Video || resourceItem.ResourceTypeEnum == ResourceTypeEnum.Audio || resourceItem.ResourceTypeEnum == ResourceTypeEnum.Scorm ||
151-
resourceItem.ResourceTypeEnum == ResourceTypeEnum.Case || resourceItem.ResourceTypeEnum == ResourceTypeEnum.Assessment)
152-
{
153-
if (resourceItem.ResourceTypeEnum == ResourceTypeEnum.Case)
154-
{
155-
<hr />
156-
}
92+
@* Weblink *@
93+
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.WebLink)
94+
{
95+
<div class="nhsuk-card nhsuk-bg-light-blue">
96+
<div class="nhsuk-card__content">
97+
<p class="nhsuk-body-l nhsuk-u-margin-bottom-3">Visit site:</p>
98+
@{
99+
string displayText = resourceItem.WebLinkDetails.DisplayText;
100+
101+
if (string.IsNullOrEmpty(displayText))
102+
{
103+
displayText = resourceItem.WebLinkDetails.Url;
104+
}
105+
}
106+
<p class="nhsuk-body-l word-break__break-word"><a href="@GetWeblinkNavigateLink(resourceItem.WebLinkDetails.Url)" target="_blank">@displayText</a></p>
107+
</div>
108+
</div>
109+
}
157110

158-
@* Video/Audio/Scorm/Case/Assessment require JavaScript - use Vue.js resource app. *@
111+
@* Generic File *@
112+
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.GenericFile)
113+
{
114+
<div class="resource-panel-container">
115+
<div class="nhsuk-card nhsuk-bg-light-blue">
116+
<div class="nhsuk-card__content">
117+
<p class="nhsuk-body-l nhsuk-u-margin-bottom-3">Download:</p>
118+
<p class="nhsuk-body-l word-break__break-word">
119+
<span class="nhsuk-u-margin-right-4 pill @UtilityHelper.GetPillColour(resourceItem.GenericFileDetails.File.FileName)">@GetFileExtension(resourceItem.GenericFileDetails.File.FileName)</span>
120+
<a class="nhsuk-u-margin-right-4" href="@GetDownloadResourceLink(resourceItem.GenericFileDetails.File.FilePath, resourceItem.GenericFileDetails.File.FileName)">@resourceItem.GenericFileDetails.File.FileName</a> (@resourceItem.GenericFileDetails.File.FileSizeKb KB)
121+
</p>
122+
</div>
123+
</div>
124+
125+
</div>
126+
}
159127

160-
<div id="resourcecontainer">
161-
<router-view user-authenticated="@ViewBag.UserAuthenticated"
162-
:media-activity-playing-event-interval-seconds="@ViewBag.MediaActivityPlayingEventIntervalSeconds"
163-
:keep-user-session-alive-interval-seconds="@ViewBag.KeepUserSessionAliveIntervalSeconds" />
164-
</div>
128+
@* Article *@
129+
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.Article)
130+
{
131+
<div class="nhsuk-u-margin-bottom-7">@Html.Raw(resourceItem.ArticleDetails.Description)</div>
132+
133+
@if (resourceItem.ArticleDetails.Files != null && resourceItem.ArticleDetails.Files.Count > 0)
134+
{
135+
<div class="nhsuk-card">
136+
<div class="nhsuk-card__content">
137+
<h2 class="nhsuk-card__heading">Documents</h2>
138+
@foreach (var file in resourceItem.ArticleDetails.Files)
139+
{
140+
<p class="nhsuk-u-margin-bottom-2 word-break__break-word">
141+
<span class="nhsuk-u-margin-right-3 pill pill--small @UtilityHelper.GetPillColour(file.FileName)">@GetFileExtension(file.FileName)</span>
142+
<a class="nhsuk-u-margin-right-3" href="@GetFileLink(file.FilePath, file.FileName)">@file.FileName</a> (@file.FileSizeKb KB)
143+
</p>
144+
}
145+
</div>
146+
</div>
147+
}
148+
}
149+
@* Html Resource *@
150+
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.Html)
151+
{
152+
<div id="resourcePg" class="nhsuk-card nhsuk-bg-light-blue">
153+
<div class="nhsuk-card__content">
154+
<a v-on:click=checkUserCertificateAvailability(@resourceItem.Id) href="@($"{Context.Request.Scheme}://{Context.Request.Host}/resource/html/{resourceItem.Id}/index.html")"
155+
onclick="@($"window.open(this.href, 'scormDebugWindow', 'status=no,location=no,toolbar=no,menubar=no,dependent=no,width={resourceItem.HtmlDetails.PopupWidth},height={resourceItem.HtmlDetails.PopupHeight}'); return false;")">
156+
<button class="nhsuk-button">
157+
Launch HTML resource
158+
</button>
159+
</a>
160+
<p>This resource will launch in a new window</p>
161+
</div>
162+
</div>
163+
}
165164

166-
<partial name="_JavaScriptDisabled" />
167-
}
168-
</div>
169-
}
170165

171-
@* Description / Additional Information *@
172-
@if (resourceItem.ResourceTypeEnum != ResourceTypeEnum.Case && resourceItem.ResourceTypeEnum != ResourceTypeEnum.Assessment)
173-
{
174-
<div class="nhsuk-u-margin-bottom-7">
175-
@if (resourceItem.ResourceTypeEnum != ResourceTypeEnum.Article || (resourceItem.Catalogue.RestrictedAccess && !Model.HasCatalogueAccess))
176-
{
177-
<div>@Html.Raw(resourceItem.Description)</div>
166+
@if (canShowMoreDetails && resourceItem.ResourceTypeEnum == ResourceTypeEnum.Video || resourceItem.ResourceTypeEnum == ResourceTypeEnum.Audio || resourceItem.ResourceTypeEnum == ResourceTypeEnum.Scorm ||
167+
resourceItem.ResourceTypeEnum == ResourceTypeEnum.Case || resourceItem.ResourceTypeEnum == ResourceTypeEnum.Assessment)
168+
{
169+
if (resourceItem.ResourceTypeEnum == ResourceTypeEnum.Case)
170+
{
171+
<hr />
172+
}
173+
174+
@* Video/Audio/Scorm/Case/Assessment require JavaScript - use Vue.js resource app. *@
175+
176+
<div id="resourcecontainer">
177+
<router-view user-authenticated="@ViewBag.UserAuthenticated"
178+
:media-activity-playing-event-interval-seconds="@ViewBag.MediaActivityPlayingEventIntervalSeconds"
179+
:keep-user-session-alive-interval-seconds="@ViewBag.KeepUserSessionAliveIntervalSeconds" />
180+
</div>
181+
182+
<partial name="_JavaScriptDisabled" />
183+
}
184+
</div>
178185
}
179186

180-
@if (!string.IsNullOrEmpty(resourceItem.AdditionalInformation) && Model.HasCatalogueAccess)
187+
@* Description / Additional Information *@
188+
@if (resourceItem.ResourceTypeEnum != ResourceTypeEnum.Case && resourceItem.ResourceTypeEnum != ResourceTypeEnum.Assessment && resourceItem.ResourceTypeEnum != ResourceTypeEnum.Html)
181189
{
182-
<div class="nhsuk-inset-text">
183-
<h2>Additional information</h2>
184-
<p>@resourceItem.AdditionalInformation</p>
185-
</div>
190+
<div class="nhsuk-u-margin-bottom-7">
191+
@if (resourceItem.ResourceTypeEnum != ResourceTypeEnum.Article || (resourceItem.Catalogue.RestrictedAccess && !Model.HasCatalogueAccess))
192+
{
193+
<div>@Html.Raw(resourceItem.Description)</div>
194+
}
195+
196+
@if (!string.IsNullOrEmpty(resourceItem.AdditionalInformation) && Model.HasCatalogueAccess)
197+
{
198+
<div class="nhsuk-inset-text">
199+
<h2>Additional information</h2>
200+
<p>@resourceItem.AdditionalInformation</p>
201+
</div>
202+
}
203+
</div>
186204
}
187-
</div>
188-
}
189-
</div>
205+
</div>
190206
</div>

0 commit comments

Comments
 (0)